Support fragments in getUrl() of mw.Title
authorAndrew H <crazy4sb@gmail.com>
Sun, 27 Dec 2015 04:04:40 +0000 (04:04 +0000)
committerAndrew H <crazy4sb@gmail.com>
Mon, 28 Dec 2015 03:04:56 +0000 (03:04 +0000)
Now that mw.util.getUrl() supports fragments, pass it the title
including fragments.

Bug: T103715
Change-Id: I0e3665e74fd4208a7ab0a9b361803aa37f22d61b

resources/src/mediawiki/mediawiki.Title.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js

index 47250ee..033636c 100644 (file)
                 * @return {string}
                 */
                getUrl: function ( params ) {
-                       return mw.util.getUrl( this.toString(), params );
+                       var fragment = this.getFragment();
+                       if ( fragment ) {
+                               return mw.util.getUrl( this.toString() + '#' + this.getFragment(), params );
+                       } else {
+                               return mw.util.getUrl( this.toString(), params );
+                       }
                },
 
                /**
index 4bcb12e..2e63b7a 100644 (file)
 
        } );
 
-       QUnit.test( 'getUrl', 3, function ( assert ) {
+       QUnit.test( 'getUrl', 4, function ( assert ) {
                var title;
 
                // Config
 
                title = new mw.Title( 'John Doe', 3 );
                assert.equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' );
+
+               title = new mw.Title( 'John Cena#And_His_Name_Is', 3 );
+               assert.equal( title.getUrl( { meme: true } ), '/wiki/User_talk:John_Cena?meme=true#And_His_Name_Is', 'title with fragment and query parameter' );
        } );
 
        QUnit.test( 'newFromImg', 44, function ( assert ) {