From 4d97253b407d6d6d818da8d06d7cf709434bbab0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Thu, 12 May 2016 00:24:04 +0200 Subject: [PATCH] mediawiki.jqueryMsg: Fix 'asciiAlphabetLiteral' definition Lack of the '^' anchor in the regex caused some inputs to be incorrectly parsed. For example, '>>="dir">asd' was parsed like 'asd'. Change-Id: Iec1a13e43d2ed34a52e625bbea129454d44ba348 --- resources/src/mediawiki/mediawiki.jqueryMsg.js | 2 +- .../resources/mediawiki/mediawiki.jqueryMsg.test.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/src/mediawiki/mediawiki.jqueryMsg.js b/resources/src/mediawiki/mediawiki.jqueryMsg.js index e905f69b71..b02fa36746 100644 --- a/resources/src/mediawiki/mediawiki.jqueryMsg.js +++ b/resources/src/mediawiki/mediawiki.jqueryMsg.js @@ -534,7 +534,7 @@ return result === null ? null : result.join( '' ); } - asciiAlphabetLiteral = makeRegexParser( /[A-Za-z]+/ ); + asciiAlphabetLiteral = makeRegexParser( /^[A-Za-z]+/ ); htmlDoubleQuoteAttributeValue = makeRegexParser( /^[^"]*/ ); htmlSingleQuoteAttributeValue = makeRegexParser( /^[^']*/ ); diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js index ee948bb806..6ee0ff45fa 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js @@ -908,7 +908,7 @@ } ); // HTML in wikitext - QUnit.test( 'HTML', 32, function ( assert ) { + QUnit.test( 'HTML', 33, function ( assert ) { mw.messages.set( 'jquerymsg-italics-msg', 'Very important' ); assertBothModes( assert, [ 'jquerymsg-italics-msg' ], mw.messages.get( 'jquerymsg-italics-msg' ), 'Simple italics unchanged' ); @@ -1048,6 +1048,13 @@ 'Self-closing tags don\'t cause a parse error' ); + mw.messages.set( 'jquerymsg-asciialphabetliteral-regression', '>>="dir">asd' ); + assert.htmlEqual( + formatParse( 'jquerymsg-asciialphabetliteral-regression' ), + '>>="dir">asd', + 'Regression test for bad "asciiAlphabetLiteral" definition' + ); + mw.messages.set( 'jquerymsg-entities1', 'A&B' ); mw.messages.set( 'jquerymsg-entities2', 'A>B' ); mw.messages.set( 'jquerymsg-entities3', 'A→B' ); -- 2.20.1