From 91e194556c52d2f354344f930419eef2dd6267f0 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 4 Sep 2013 05:51:59 +0200 Subject: Update to MediaWiki 1.21.2 --- extensions/Cite/.gitreview | 5 + extensions/ConfirmEdit/.gitreview | 5 + extensions/ConfirmEdit/ReCaptcha.i18n.php | 3 +- extensions/Gadgets/.gitreview | 5 + extensions/Gadgets/tests/GadgetTest.php | 81 ++ extensions/ImageMap/.gitreview | 5 + extensions/InputBox/.gitreview | 5 + extensions/Interwiki/.gitreview | 6 + extensions/LocalisationUpdate/.gitreview | 5 + extensions/LocalisationUpdate/tests/tokenTest.php | 91 ++ extensions/Nuke/.gitreview | 5 + extensions/ParserFunctions/.gitreview | 5 + .../ParserFunctions/ParserFunctions.i18n.magic.php | 4 +- .../ParserFunctions/tests/ExpressionTest.php | 76 ++ extensions/PdfHandler/.gitreview | 5 + extensions/PdfHandler/PdfHandler_body.php | 2 +- extensions/Poem/.gitreview | 5 + extensions/Renameuser/.gitreview | 5 + extensions/SpamBlacklist/.gitreview | 5 + extensions/SyntaxHighlight_GeSHi/.gitreview | 5 + .../geshi/contrib/aliased.php | 123 --- .../SyntaxHighlight_GeSHi/geshi/contrib/cssgen.php | 466 -------- .../geshi/contrib/cssgen2.php | 59 - .../geshi/contrib/example.php | 217 ---- .../geshi/contrib/langcheck.php | 769 ------------- .../geshi/contrib/langwiz.php | 1158 -------------------- extensions/TitleBlacklist/.gitreview | 5 + .../tests/ApiQueryTitleBlacklistTest.php | 110 ++ extensions/TitleBlacklist/tests/testSource | 4 + extensions/Vector/.gitreview | 5 + extensions/WikiEditor/.gitreview | 6 + extensions/WikiEditor/.jshintignore | 2 + extensions/WikiEditor/.jshintrc | 9 + .../tests/selenium/WikiDialogs_Links.php | 67 ++ .../tests/selenium/WikiDialogs_Links_Setup.php | 295 +++++ .../tests/selenium/WikiEditorConstants.php | 84 ++ .../tests/selenium/WikiEditorSeleniumConfig.php | 27 + .../tests/selenium/WikiEditorTestSuite.php | 35 + 38 files changed, 972 insertions(+), 2797 deletions(-) create mode 100644 extensions/Cite/.gitreview create mode 100644 extensions/ConfirmEdit/.gitreview create mode 100644 extensions/Gadgets/.gitreview create mode 100644 extensions/Gadgets/tests/GadgetTest.php create mode 100644 extensions/ImageMap/.gitreview create mode 100644 extensions/InputBox/.gitreview create mode 100644 extensions/Interwiki/.gitreview create mode 100644 extensions/LocalisationUpdate/.gitreview create mode 100644 extensions/LocalisationUpdate/tests/tokenTest.php create mode 100644 extensions/Nuke/.gitreview create mode 100644 extensions/ParserFunctions/.gitreview create mode 100644 extensions/ParserFunctions/tests/ExpressionTest.php create mode 100644 extensions/PdfHandler/.gitreview create mode 100644 extensions/Poem/.gitreview create mode 100644 extensions/Renameuser/.gitreview create mode 100644 extensions/SpamBlacklist/.gitreview create mode 100644 extensions/SyntaxHighlight_GeSHi/.gitreview delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/cssgen.php delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/cssgen2.php delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/example.php delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/langcheck.php delete mode 100644 extensions/SyntaxHighlight_GeSHi/geshi/contrib/langwiz.php create mode 100644 extensions/TitleBlacklist/.gitreview create mode 100644 extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php create mode 100644 extensions/TitleBlacklist/tests/testSource create mode 100644 extensions/Vector/.gitreview create mode 100644 extensions/WikiEditor/.gitreview create mode 100644 extensions/WikiEditor/.jshintignore create mode 100644 extensions/WikiEditor/.jshintrc create mode 100644 extensions/WikiEditor/tests/selenium/WikiDialogs_Links.php create mode 100644 extensions/WikiEditor/tests/selenium/WikiDialogs_Links_Setup.php create mode 100644 extensions/WikiEditor/tests/selenium/WikiEditorConstants.php create mode 100644 extensions/WikiEditor/tests/selenium/WikiEditorSeleniumConfig.php create mode 100644 extensions/WikiEditor/tests/selenium/WikiEditorTestSuite.php (limited to 'extensions') diff --git a/extensions/Cite/.gitreview b/extensions/Cite/.gitreview new file mode 100644 index 00000000..6ae9db41 --- /dev/null +++ b/extensions/Cite/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Cite.git +defaultbranch=master diff --git a/extensions/ConfirmEdit/.gitreview b/extensions/ConfirmEdit/.gitreview new file mode 100644 index 00000000..780d35df --- /dev/null +++ b/extensions/ConfirmEdit/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/ConfirmEdit.git +defaultbranch=master diff --git a/extensions/ConfirmEdit/ReCaptcha.i18n.php b/extensions/ConfirmEdit/ReCaptcha.i18n.php index a7fffb59..e8722f93 100644 --- a/extensions/ConfirmEdit/ReCaptcha.i18n.php +++ b/extensions/ConfirmEdit/ReCaptcha.i18n.php @@ -400,13 +400,12 @@ $messages['nl-informal'] = array( ); /** Polish (polski) - * @author WTM */ $messages['pl'] = array( 'recaptcha-edit' => 'Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:', 'recaptcha-addurl' => 'Twoja edycja zawiera linki zewnętrzne. Aby uchronić nas przed robotami, proszę wpisać dwa widoczne słowa w poniższym polu:', 'recaptcha-badpass' => 'Aby uchronić nas przed złamaniem automatycznym haseł, proszę wpisać dwa widoczne słowa w poniższym polu:', - 'recaptcha-createaccount' => 'Aby uchronić nas przed automatycznym tworzeniem użytkowników, proszę wpisać dwa widoczne słowa w poniższym polu:', + 'recaptcha-createaccount' => 'Aby uchronić nas przed automatycznym stworzeniem użytkowników, proszę wpisać dwa widoczne słowa w poniższym polu:', 'recaptcha-createaccount-fail' => 'Odpowiedź na reCAPTCHA jest fałszywa lub brakująca.', 'recaptcha-create' => 'Aby uchronić nas przed tworzeniem stron przez robotów, proszę wpisać dwa widoczne słowa w poniższym polu:', ); diff --git a/extensions/Gadgets/.gitreview b/extensions/Gadgets/.gitreview new file mode 100644 index 00000000..a1a8ead4 --- /dev/null +++ b/extensions/Gadgets/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Gadgets.git +defaultbranch=master diff --git a/extensions/Gadgets/tests/GadgetTest.php b/extensions/Gadgets/tests/GadgetTest.php new file mode 100644 index 00000000..c9332a6c --- /dev/null +++ b/extensions/Gadgets/tests/GadgetTest.php @@ -0,0 +1,81 @@ +assertEquals( 'Gadget', get_class( $g ) ); + + return $g; + } + + function testInvalidLines() { + $this->assertFalse( Gadget::newFromDefinition( '' ) ); + $this->assertFalse( Gadget::newFromDefinition( '' ) ); + } + + function testSimpleCases() { + $g = $this->create( '* foo bar| foo.css|foo.js|foo.bar' ); + $this->assertEquals( 'foo_bar', $g->getName() ); + $this->assertEquals( 'ext.gadget.foo_bar', $g->getModuleName() ); + $this->assertEquals( array( 'Gadget-foo.js' ), $g->getScripts() ); + $this->assertEquals( array( 'Gadget-foo.css' ), $g->getStyles() ); + $this->assertEquals( array( 'Gadget-foo.js', 'Gadget-foo.css' ), + $g->getScriptsAndStyles() ); + $this->assertEquals( array( 'Gadget-foo.js' ), $g->getLegacyScripts() ); + $this->assertFalse( $g->supportsResourceLoader() ); + $this->assertTrue( $g->hasModule() ); + } + + function testRLtag() { + $g = $this->create( '*foo [ResourceLoader]|foo.js|foo.css' ); + $this->assertEquals( 'foo', $g->getName() ); + $this->assertTrue( $g->supportsResourceLoader() ); + $this->assertEquals( 0, count( $g->getLegacyScripts() ) ); + } + + function testDependencies() { + $g = $this->create( '* foo[ResourceLoader|dependencies=jquery.ui]|bar.js' ); + $this->assertEquals( array( 'Gadget-bar.js' ), $g->getScripts() ); + $this->assertTrue( $g->supportsResourceLoader() ); + $this->assertEquals( array( 'jquery.ui' ), $g->getDependencies() ); + } + + function testPreferences() { + global $wgUser, $wgOut, $wgTitle; + + // This test makes call to the parser which requires valids Outputpage + // and Title objects. Set them up there, they will be released at the + // end of the test. + $old_wgOut = $wgOut; + $old_wgTitle = $wgTitle; + $wgTitle = Title::newFromText( 'Parser test for Gadgets extension' ); + + // Proceed with test setup: + $prefs = array(); + $context = new RequestContext(); + $wgOut = $context->getOutput(); + $wgOut->setTitle( Title::newFromText( 'test' ) ); + + Gadget::loadStructuredList( '* foo | foo.js +==keep-section1== +* bar| bar.js +==remove-section== +* baz [rights=embezzle] |baz.js +==keep-section2== +* quux [rights=read] | quux.js' ); + $this->assertTrue( GadgetHooks::getPreferences( $wgUser, $prefs ), 'GetPrefences hook should return true' ); + + $options = $prefs['gadgets']['options']; + $this->assertFalse( isset( $options['<gadget-section-remove-section>'] ), 'Must not show empty sections' ); + $this->assertTrue( isset( $options['<gadget-section-keep-section1>'] ) ); + $this->assertTrue( isset( $options['<gadget-section-keep-section2>'] ) ); + + // Restore globals + $wgOut = $old_wgOut; + $wgTitle = $old_wgTitle; + } +} diff --git a/extensions/ImageMap/.gitreview b/extensions/ImageMap/.gitreview new file mode 100644 index 00000000..2629c9d9 --- /dev/null +++ b/extensions/ImageMap/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/ImageMap.git +defaultbranch=master diff --git a/extensions/InputBox/.gitreview b/extensions/InputBox/.gitreview new file mode 100644 index 00000000..9d0c704d --- /dev/null +++ b/extensions/InputBox/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/InputBox.git +defaultbranch=master diff --git a/extensions/Interwiki/.gitreview b/extensions/Interwiki/.gitreview new file mode 100644 index 00000000..fcc03f61 --- /dev/null +++ b/extensions/Interwiki/.gitreview @@ -0,0 +1,6 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Interwiki.git +defaultbranch=master +defaultrebase=0 \ No newline at end of file diff --git a/extensions/LocalisationUpdate/.gitreview b/extensions/LocalisationUpdate/.gitreview new file mode 100644 index 00000000..da37d04d --- /dev/null +++ b/extensions/LocalisationUpdate/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/LocalisationUpdate.git +defaultbranch=master diff --git a/extensions/LocalisationUpdate/tests/tokenTest.php b/extensions/LocalisationUpdate/tests/tokenTest.php new file mode 100644 index 00000000..1112313c --- /dev/null +++ b/extensions/LocalisationUpdate/tests/tokenTest.php @@ -0,0 +1,91 @@ +getVars(); + $retval = @$vars[$varname]; + } catch( Exception $e ) { + print $e . "\n"; + $retval = null; + } + return $retval; +} + +function quickTokenExtractArray( $php, $varname ) { + $reader = new QuickArrayReader("getVar( $varname ); +} + + +if( count( $args ) ) { + $sources = $args; +} else { + $sources = + array_merge( + glob("$IP/extensions/*/*.i18n.php"), + glob("$IP/languages/messages/Messages*.php") ); +} + +foreach( $sources as $sourceFile ) { + $rel = basename( $sourceFile ); + $out = str_replace( '/', '-', $rel ); + + $sourceData = file_get_contents( $sourceFile ); + + if( preg_match( '!extensions/!', $sourceFile ) ) { + $sourceData = LocalisationUpdate::cleanupExtensionFile( $sourceData ); + $items = 'langs'; + } else { + $sourceData = LocalisationUpdate::cleanupFile( $sourceData ); + $items = 'messages'; + } + + file_put_contents( "$out.txt", $sourceData ); + + $start = microtime(true); + $eval = evalExtractArray( $sourceData, 'messages' ); + $deltaEval = microtime(true) - $start; + + $start = microtime(true); + $quick = quickTokenExtractArray( $sourceData, 'messages' ); + $deltaQuick = microtime(true) - $start; + + $start = microtime(true); + $token = confExtractArray( $sourceData, 'messages' ); + $deltaToken = microtime(true) - $start; + + $hashEval = md5(serialize($eval)); + $hashToken = md5(serialize($token)); + $hashQuick = md5(serialize($quick)); + $countEval = count( (array)$eval); + $countToken = count( (array)$token ); + $countQuick = count( (array)$quick ); + + printf( "%s %s %d $items - %0.1fms - eval\n", $rel, $hashEval, $countEval, $deltaEval * 1000 ); + printf( "%s %s %d $items - %0.1fms - QuickArrayReader\n", $rel, $hashQuick, $countQuick, $deltaQuick * 1000 ); + printf( "%s %s %d $items - %0.1fms - ConfEditor\n", $rel, $hashToken, $countToken, $deltaToken * 1000 ); + + if( $hashEval !== $hashToken || $hashEval !== $hashQuick ) { + echo "FAILED on $rel\n"; + file_put_contents( "$out-eval.txt", var_export( $eval, true ) ); + file_put_contents( "$out-token.txt", var_export( $token, true ) ); + file_put_contents( "$out-quick.txt", var_export( $quick, true ) ); + #die("check eval.txt and token.txt\n"); + } + echo "\n"; +} + +echo "ok\n"; + diff --git a/extensions/Nuke/.gitreview b/extensions/Nuke/.gitreview new file mode 100644 index 00000000..c623aede --- /dev/null +++ b/extensions/Nuke/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Nuke.git +defaultbranch=master diff --git a/extensions/ParserFunctions/.gitreview b/extensions/ParserFunctions/.gitreview new file mode 100644 index 00000000..decb9867 --- /dev/null +++ b/extensions/ParserFunctions/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/ParserFunctions.git +defaultbranch=master diff --git a/extensions/ParserFunctions/ParserFunctions.i18n.magic.php b/extensions/ParserFunctions/ParserFunctions.i18n.magic.php index 1a37cf9e..4fdb83eb 100644 --- a/extensions/ParserFunctions/ParserFunctions.i18n.magic.php +++ b/extensions/ParserFunctions/ParserFunctions.i18n.magic.php @@ -96,8 +96,8 @@ $magicWords['br'] = array( /** Chechen (нохчийн) */ $magicWords['ce'] = array( - 'time' => array( 0, 'хан' ), - 'replace' => array( 0, 'хийцарна', 'замена' ), + 'time' => array( 0, 'хан', 'time' ), + 'replace' => array( 0, 'хийцарна', 'замена', 'replace' ), ); /** Czech (česky) */ diff --git a/extensions/ParserFunctions/tests/ExpressionTest.php b/extensions/ParserFunctions/tests/ExpressionTest.php new file mode 100644 index 00000000..169a9cb4 --- /dev/null +++ b/extensions/ParserFunctions/tests/ExpressionTest.php @@ -0,0 +1,76 @@ +parser = new ExprParser(); + } + + /** + * @dataProvider provideExpressions + */ + function testExpression( $input, $expected ) { + $this->assertEquals( + $expected, + $this->parser->doExpression( $input ) + ); + } + + function provideExpressions() { + return array( + array( '1 or 0', '1' ), + array( 'not (1 and 0)', '1' ), + array( 'not 0', '1' ), + array( '4 < 5', '1' ), + array( '-5 < 2', '1' ), + array( '-2 <= -2', '1' ), + array( '4 > 3', '1' ), + array( '4 > -3', '1' ), + array( '5 >= 2', '1' ), + array( '2 >= 2', '1' ), + array( '1 != 2', '1' ), + array( '-4 * -4 = 4 * 4', '1' ), + array( 'not (1 != 1)', '1' ), + array( '1 + 1', '2' ), + array( '-1 + 1', '0' ), + array( '+1 + 1', '2' ), + array( '4 * 4', '16' ), + array( '(1/3) * 3', '1' ), + array( '3 / 1.5', '2' ), + array( '3 / 0.2', '15' ), + array( '3 / ( 2.0 * 0.1 )', '15' ), + array( '3 / ( 2.0 / 10 )', '15' ), + array( '3 / (- 0.2 )', '-15' ), + array( '3 / abs( 0.2 )', '15' ), + array( '3 mod 2', '1' ), + array( '1e4', '10000' ), + array( '1e-2', '0.01' ), + array( '4.0 round 0', '4' ), + array( 'ceil 4', '4' ), + array( 'floor 4', '4' ), + array( '4.5 round 0', '5' ), + array( '4.2 round 0', '4' ), + array( '-4.2 round 0', '-4' ), + array( '-4.5 round 0', '-5' ), + array( '-2.0 round 0', '-2' ), + array( 'ceil -3', '-3' ), + array( 'floor -6.0', '-6' ), + array( 'ceil 4.2', '5' ), + array( 'ceil -4.5', '-4' ), + array( 'floor -4.5', '-5' ), + array( 'abs(-2)', '2' ), + array( 'ln(exp(1))', '1' ), + array( 'trunc(4.5)', '4' ), + array( 'trunc(-4.5)', '-4' ), + array( '123 fmod (2^64-1)', '123' ), + array( '5.7 mod 1.3', '0' ), + array( '5.7 fmod 1.3', '0.5' ), + ); + } +} + diff --git a/extensions/PdfHandler/.gitreview b/extensions/PdfHandler/.gitreview new file mode 100644 index 00000000..f5eca40e --- /dev/null +++ b/extensions/PdfHandler/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/PdfHandler.git +defaultbranch=master diff --git a/extensions/PdfHandler/PdfHandler_body.php b/extensions/PdfHandler/PdfHandler_body.php index 8fa6719b..73ce1b58 100644 --- a/extensions/PdfHandler/PdfHandler_body.php +++ b/extensions/PdfHandler/PdfHandler_body.php @@ -315,7 +315,7 @@ class PdfHandler extends ImageHandler { */ function pageCount( $image ) { $data = $this->getMetaArray( $image ); - if ( !$data || !isset( $data['Pages'] ) ) { + if ( !$data ) { return false; } return intval( $data['Pages'] ); diff --git a/extensions/Poem/.gitreview b/extensions/Poem/.gitreview new file mode 100644 index 00000000..aac78b2b --- /dev/null +++ b/extensions/Poem/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Poem.git +defaultbranch=master diff --git a/extensions/Renameuser/.gitreview b/extensions/Renameuser/.gitreview new file mode 100644 index 00000000..0d757141 --- /dev/null +++ b/extensions/Renameuser/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/Renameuser.git +defaultbranch=master diff --git a/extensions/SpamBlacklist/.gitreview b/extensions/SpamBlacklist/.gitreview new file mode 100644 index 00000000..d74ae8f9 --- /dev/null +++ b/extensions/SpamBlacklist/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/SpamBlacklist.git +defaultbranch=master diff --git a/extensions/SyntaxHighlight_GeSHi/.gitreview b/extensions/SyntaxHighlight_GeSHi/.gitreview new file mode 100644 index 00000000..cb9e4b44 --- /dev/null +++ b/extensions/SyntaxHighlight_GeSHi/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/SyntaxHighlight_GeSHi.git +defaultbranch=master diff --git a/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php b/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php deleted file mode 100644 index cee31289..00000000 --- a/extensions/SyntaxHighlight_GeSHi/geshi/contrib/aliased.php +++ /dev/null @@ -1,123 +0,0 @@ - - * @version $Id: aliased.php 2533 2012-08-15 18:49:04Z benbe $ - */ - -// Your config here -define("SOURCE_ROOT", "/var/www/your/source/root/"); - -// Assume you've put geshi in the include_path already -require_once("geshi.php"); - -// Get path info -$path = SOURCE_ROOT.$_SERVER['PATH_INFO']; - -// Check for dickheads trying to use '../' to get to sensitive areas -$base_path_len = strlen(SOURCE_ROOT); -$real_path = realpath($path); -if(strncmp($real_path, SOURCE_ROOT, $base_path_len)) { - exit("Access outside acceptable path."); -} - -// Check file exists -if(!file_exists($path)) { - exit("File not found ($path)."); -} - -// Prepare GeSHi instance -$geshi = new GeSHi(); -$geshi->set_language('text'); -$geshi->load_from_file($path); -$geshi->set_header_type(GESHI_HEADER_PRE); -$geshi->enable_classes(); -$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 10); -$geshi->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true); -$geshi->set_line_style('font: normal normal 95% \'Courier New\', Courier, monospace; color: #003030;', 'font-weight: bold; color: #006060;', true); -$geshi->set_code_style('color: #000020;', 'color: #000020;'); -$geshi->set_link_styles(GESHI_LINK, 'color: #000060;'); -$geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;'); -$geshi->set_header_content('Source code viewer - ' . $path . ' - ' . $geshi->get_language_name()); -$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;'); -$geshi->set_footer_content('Parsed in