From 119c570e2870e0d4947239f59760b3120e4be7c5 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 24 Aug 2011 22:09:34 +0000 Subject: [PATCH] Followup r95332 (bug 30441 fix) -- Roan pointed out that I forgot to do a global replace (d'oh!) Now works with parameters containing multiple spaces. :) --- resources/mediawiki/mediawiki.util.js | 2 +- .../qunit/suites/resources/mediawiki/mediawiki.util.test.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/mediawiki/mediawiki.util.js b/resources/mediawiki/mediawiki.util.js index 529d7c9870..e8a1777797 100644 --- a/resources/mediawiki/mediawiki.util.js +++ b/resources/mediawiki/mediawiki.util.js @@ -228,7 +228,7 @@ if ( m && m.length > 1 ) { // Beware that decodeURIComponent is not required to understand '+' // by spec, as encodeURIComponent does not produce it. - return decodeURIComponent( m[1].replace( '+', '%20' ) ); + return decodeURIComponent( m[1].replace( /\+/g, '%20' ) ); } return null; }, diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js index ee16fe79f8..f51705d58b 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js @@ -107,7 +107,7 @@ test( 'toggleToc', function() { }); test( 'getParamValue', function() { - expect(4); + expect(5); var url1 = 'http://mediawiki.org/?foo=wrong&foo=right#&foo=bad'; @@ -119,6 +119,9 @@ test( 'getParamValue', function() { var url3 = 'example.com?' + $.param({ 'TEST': 'a b+c' }); strictEqual( mw.util.getParamValue( 'TEST', url3 ), 'a b+c', 'Bug 30441: getParamValue must understand "+" encoding of space' ); + + var url4 = 'example.com?' + $.param({ 'TEST': 'a b+c d' }); // check for sloppy code from r95332 :) + strictEqual( mw.util.getParamValue( 'TEST', url4 ), 'a b+c d', 'Bug 30441: getParamValue must understand "+" encoding of space (multiple spaces)' ); }); test( 'tooltipAccessKey', function() { -- 2.20.1