X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fqunit%2Fsuites%2Fresources%2Fmediawiki%2Fmediawiki.Title.test.js;h=acdf2f115b5e015673f2d1840bba1d33b71d48e6;hp=8d67b4b4be3927b74e61bd77c7f640fbf9c31e75;hb=1de7117197761961736ea43b237599569eee93a2;hpb=e602b197ab5ea867799b8e790a9f7b9f877da952 diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js index 8d67b4b4be..acdf2f115b 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js @@ -1,4 +1,4 @@ -( function ( mw, $ ) { +( function () { /* eslint-disable camelcase */ var repeat = function ( input, multiplier ) { return new Array( multiplier + 1 ).join( input ); @@ -291,6 +291,38 @@ assert.strictEqual( title.toString(), 'Penguins:Flightless_yet_cute.jpg' ); } ); + QUnit.test( 'isTalkPage/getTalkPage/getSubjectPage', function ( assert ) { + var title; + + title = new mw.Title( 'User:Foo' ); + assert.strictEqual( title.isTalkPage(), false, 'Non-talk page detected as such' ); + assert.strictEqual( title.getSubjectPage().getPrefixedText(), 'User:Foo', 'getSubjectPage on a subject page is a no-op' ); + + title = title.getTalkPage(); + assert.strictEqual( title.getPrefixedText(), 'User talk:Foo', 'getTalkPage creates correct title' ); + assert.strictEqual( title.getTalkPage().getPrefixedText(), 'User talk:Foo', 'getTalkPage on a talk page is a no-op' ); + assert.strictEqual( title.isTalkPage(), true, 'Talk page is detected as such' ); + + title = title.getSubjectPage(); + assert.strictEqual( title.getPrefixedText(), 'User:Foo', 'getSubjectPage creates correct title' ); + + title = new mw.Title( 'Special:AllPages' ); + assert.strictEqual( title.isTalkPage(), false, 'Special page is not a talk page' ); + assert.strictEqual( title.getTalkPage(), null, 'getTalkPage not valid for this namespace' ); + assert.strictEqual( title.getSubjectPage().getPrefixedText(), 'Special:AllPages', 'getSubjectPage is self for special pages' ); + + title = new mw.Title( 'Category:Project:Maintenance' ); + assert.strictEqual( title.getTalkPage().getPrefixedText(), 'Category talk:Project:Maintenance', 'getTalkPage is not confused by colon in main text' ); + title = new mw.Title( 'Category talk:Project:Maintenance' ); + assert.strictEqual( title.getSubjectPage().getPrefixedText(), 'Category:Project:Maintenance', 'getSubjectPage is not confused by colon in main text' ); + + title = new mw.Title( 'Foo#Caption' ); + assert.strictEqual( title.getFragment(), 'Caption', 'Subject page has a fragment' ); + title = title.getTalkPage(); + assert.strictEqual( title.getPrefixedText(), 'Talk:Foo', 'getTalkPage creates correct title' ); + assert.strictEqual( title.getFragment(), null, 'getTalkPage does not copy the fragment' ); + } ); + QUnit.test( 'Throw error on invalid title', function ( assert ) { assert.throws( function () { return new mw.Title( '' ); @@ -735,4 +767,4 @@ } } ); -}( mediaWiki, jQuery ) ); +}() );