Merge "Add support for SVGs to $wgLogoHD with PNG fallback"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 24 Oct 2017 19:06:45 +0000 (19:06 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 24 Oct 2017 19:06:46 +0000 (19:06 +0000)
19 files changed:
includes/registration/ExtensionProcessor.php
package.json
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-rtl.svg [deleted file]
tests/phpunit/includes/registration/ExtensionProcessorTest.php

index ffc7a7e..5dc0b40 100644 (file)
@@ -450,7 +450,7 @@ class ExtensionProcessor implements Processor {
                        }
                        foreach ( $info['config'] as $key => $val ) {
                                if ( $key[0] !== '@' ) {
-                                       $this->globals["$prefix$key"] = $val;
+                                       $this->addConfigGlobal( "$prefix$key", $val );
                                }
                        }
                }
@@ -478,11 +478,26 @@ class ExtensionProcessor implements Processor {
                                if ( isset( $data['path'] ) && $data['path'] ) {
                                        $value = "$dir/$value";
                                }
-                               $this->globals["$prefix$key"] = $value;
+                               $this->addConfigGlobal( "$prefix$key", $value );
                        }
                }
        }
 
+       /**
+        * Helper function to set a value to a specific global, if it isn't set already.
+        *
+        * @param string $key The config key with the prefix and anything
+        * @param mixed $value The value of the config
+        */
+       private function addConfigGlobal( $key, $value ) {
+               if ( array_key_exists( $key, $this->globals ) ) {
+                       throw new RuntimeException(
+                               "The configuration setting '$key' was already set by another extension,"
+                               . " and cannot be set again." );
+               }
+               $this->globals[$key] = $value;
+       }
+
        protected function extractServiceWiringFiles( $dir, array $info ) {
                if ( isset( $info['ServiceWiringFiles'] ) ) {
                        foreach ( $info['ServiceWiringFiles'] as $path ) {
index 96a425f..c30e150 100644 (file)
@@ -23,9 +23,9 @@
     "karma-chrome-launcher": "2.0.0",
     "karma-firefox-launcher": "1.0.1",
     "karma-mocha-reporter": "2.2.3",
-    "karma-qunit": "1.0.0",
+    "karma-qunit": "1.2.1",
     "nodemw": "0.10.1",
-    "qunitjs": "1.23.1",
+    "qunitjs": "2.4.0",
     "stylelint": "7.8.0",
     "stylelint-config-wikimedia": "0.4.1",
     "wdio-junit-reporter": "0.2.0",
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png
deleted file mode 100644 (file)
index 2a64fd0..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg
deleted file mode 100644 (file)
index b34fb38..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41333074,0,0,0.41333074,-183.39876,-197.95599)"
-     id="layer1">
-    <g
-       transform="translate(455.60433,484.94177)"
-       id="g3163">
-      <path
-         d="M 0,0.03543307 0,60.519684 43.192915,30.259842 z"
-         id="path3165"
-         style="fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none" />
-      <path
-         d="m 43.157481,0.03543307 5.633859,0 0,60.48425093 -5.633859,0 z"
-         id="path3167"
-         style="fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none" />
-    </g>
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png
deleted file mode 100644 (file)
index 78a493e..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg
deleted file mode 100644 (file)
index 529e8d0..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.4132798,0,0,0.4132798,-87.72955,-233.35372)"
-     id="layer1">
-    <path
-       d="m 272.96237,570.69005 0,60.4894 -43.19393,-30.2447 z"
-       id="path3023-7"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-    <rect
-       width="5.6406202"
-       height="60.489399"
-       x="-229.82111"
-       y="570.68774"
-       transform="scale(-1,1)"
-       id="rect3799-9"
-       style="color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png b/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png
deleted file mode 100644 (file)
index aa4fbf8..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg
deleted file mode 100644 (file)
index 9fbcf20..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-111.35036,-135.3531)"
-     id="layer1">
-    <path
-       d="m 284.11732,333.54605 0,60.4894 43.19395,-30.2447 z"
-       id="path3023-7-2"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png b/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png
deleted file mode 100644 (file)
index 83df068..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg
deleted file mode 100644 (file)
index 3130f10..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-139.69062,-163.69336)"
-     id="layer1">
-    <path
-       d="m 395.88269,402.11748 0,60.4894 -43.19395,-30.2447 z"
-       id="path3023-7-2-8"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png b/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png
deleted file mode 100644 (file)
index 8904b89..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg
deleted file mode 100644 (file)
index 57df4c0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41327999,0,0,0.41327999,-98.356798,-226.26904)"
-     id="layer1">
-    <path
-       d="m 249.89477,553.5472 0,60.4894 43.19391,-30.2447 z"
-       id="path3023"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-    <rect
-       width="5.6406202"
-       height="60.489399"
-       x="293.03604"
-       y="553.54492"
-       id="rect3799"
-       style="color:#000000;fill:#0000aa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png b/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png
deleted file mode 100644 (file)
index 71d0819..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg
deleted file mode 100644 (file)
index dbb473b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="pager-arrow-fastforward-rtl.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1366"
-     inkscape:window-height="692"
-     id="namedview8"
-     showgrid="false"
-     inkscape:zoom="17.4"
-     inkscape:cx="7.0114943"
-     inkscape:cy="15"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.07055556,0,0,0.07055556,-9.1581596,-2.7587241)"
-     id="layer1">
-    <path
-       d="m 485.26916,74.546776 0,354.317014 -253.00859,-177.15851 z"
-       id="path3023-2"
-       style="fill:#0000aa;fill-opacity:1;stroke:none"
-       inkscape:connector-curvature="0" />
-    <rect
-       width="33.039963"
-       height="354.31699"
-       x="-232.56898"
-       y="74.533081"
-       transform="scale(-1,1)"
-       id="rect3799-6"
-       style="color:#000000;fill:#0000aa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-ltr.png b/resources/src/mediawiki/images/pager-arrow-forward-ltr.png
deleted file mode 100644 (file)
index c68a4fc..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-forward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-forward-ltr.svg
deleted file mode 100644 (file)
index 1ebf9c1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-162.12666,-110.55537)"
-     id="layer1">
-    <path
-       d="m 406.97447,273.54605 0,60.4894 43.19391,-30.2447 z"
-       id="path3023-3-9"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-rtl.png b/resources/src/mediawiki/images/pager-arrow-forward-rtl.png
deleted file mode 100644 (file)
index d0a7030..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-forward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-forward-rtl.svg
deleted file mode 100644 (file)
index b494409..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-78.28671,-153.06577)"
-     id="layer1">
-    <path
-       d="m 247.31124,376.4032 0,60.4894 -43.19391,-30.2447 z"
-       id="path3023-3"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
index 7b56def..5ef30e8 100644 (file)
@@ -220,6 +220,48 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                $this->assertEquals( 'somevalue', $extracted['globals']['egBar'] );
        }
 
+       /**
+        * @covers ExtensionProcessor::addConfigGlobal()
+        * @expectedException RuntimeException
+        */
+       public function testDuplicateConfigKey1() {
+               $processor = new ExtensionProcessor;
+               $info = [
+                       'config' => [
+                               'Bar' => '',
+                       ]
+               ] + self::$default;
+               $info2 = [
+                       'config' => [
+                               'Bar' => 'g',
+                       ],
+                       'name' => 'FooBar2',
+               ];
+               $processor->extractInfo( $this->dir, $info, 1 );
+               $processor->extractInfo( $this->dir, $info2, 1 );
+       }
+
+       /**
+        * @covers ExtensionProcessor::addConfigGlobal()
+        * @expectedException RuntimeException
+        */
+       public function testDuplicateConfigKey2() {
+               $processor = new ExtensionProcessor;
+               $info = [
+                       'config' => [
+                               'Bar' => [ 'value' => 'somevalue' ],
+                       ]
+               ] + self::$default;
+               $info2 = [
+                       'config' => [
+                               'Bar' => [ 'value' => 'somevalue' ],
+                       ],
+                       'name' => 'FooBar2',
+               ];
+               $processor->extractInfo( $this->dir, $info, 2 );
+               $processor->extractInfo( $this->dir, $info2, 2 );
+       }
+
        public static function provideExtractExtensionMessagesFiles() {
                $dir = __DIR__ . '/FooBar/';
                return [