http://www.mediawiki.org/wiki/Special:Code/MediaWiki/93519
Revision: 93519 Author: krinkle Date: 2011-07-30 08:08:24 +0000 (Sat, 30 Jul 2011) Log Message: ----------- Increasing coverage of mw.Title with unit tests. * QUnit Completeness Test ?\226?\128?\147 Before: Title.prototype.getNamespaceId Title.prototype.getPrefixedText Title.prototype.getExtension Title.prototype.setNameAndExtension Title.prototype.getUrl Title.prototype.exists * QUnit Completeness Test ?\226?\128?\147 After: Title.prototype.getNamespaceId Title.prototype.getPrefixedText Title.prototype.getExtension Modified Paths: -------------- trunk/phase3/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js Modified: trunk/phase3/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js =================================================================== --- trunk/phase3/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js 2011-07-30 07:41:57 UTC (rev 93518) +++ trunk/phase3/tests/qunit/suites/resources/mediawiki/mediawiki.Title.js 2011-07-30 08:08:24 UTC (rev 93519) @@ -134,3 +134,63 @@ title.setNamespace( 'Entirely Unknown' ); }); }); + +test( 'Case-sensivity', function() { + expect(3); + _titleConfig(); + + var title; + + // Default config + mw.config.set( 'wgCaseSensitiveNamespaces', [] ); + + title = new mw.Title( 'article' ); + equal( title.toString(), 'Article', 'Default config: No sensitive namespaces by default. First-letter becomes uppercase' ); + + // $wgCapitalLinks = false; + mw.config.set( 'wgCaseSensitiveNamespaces', [0, -2, 1, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15] ); + + title = new mw.Title( 'article' ); + equal( title.toString(), 'article', '$wgCapitalLinks=false: Article namespace is sensitive, first-letter case stays lowercase' ); + + title = new mw.Title( 'john', 2 ); + equal( title.toString(), 'User:John', '$wgCapitalLinks=false: User namespace is insensitive, first-letter becomes uppercase' ); +}); + +test( 'Exists', function() { + expect(3); + _titleConfig(); + + var title; + + // Empty registry, checks default to null + + title = new mw.Title( 'Some random page', 4 ); + strictEqual( title.exists(), null, 'Return null with empty existance registry' ); + + // Basic registry, checks default to boolean + mw.Title.exist.set( ['Does_exist', 'User_talk:NeilK', 'Wikipedia:Sandbox_rules'], true ); + mw.Title.exist.set( ['Does_not_exist', 'User:John', 'Foobar'], false ); + + title = new mw.Title( 'Project:Sandbox rules' ); + assertTrue( title.exists(), 'Return true for page titles marked as existing' ); + title = new mw.Title( 'Foobar' ); + assertFalse( title.exists(), 'Return false for page titles marked as inexisting' ); + +}); + +test( 'Url', function() { + expect(2); + _titleConfig(); + + var title; + + // Config + mw.config.set( 'wgArticlePath', '/wiki/$1' ); + + title = new mw.Title( 'Foobar' ); + equal( title.getUrl(), '/wiki/Foobar', 'Basic functionally, toString passing to wikiGetlink' ); + + title = new mw.Title( 'John Doe', 3 ); + equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' ); +}); \ No newline at end of file _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs