ResourceLoader: Prevent prefixless modules from overwriting others
authorHenning Snater <henning.snater@wikimedia.de>
Mon, 27 May 2013 15:13:59 +0000 (17:13 +0200)
committerKrinkle <krinklemail@gmail.com>
Tue, 28 May 2013 10:25:18 +0000 (10:25 +0000)
Expanding prefixless modules should not overwrite the result set
of expanded modules.

Change-Id: Ic6e0e1c9e3fe7a585d34de21c532ee5ac3e7fdc5

includes/resourceloader/ResourceLoaderContext.php
tests/phpunit/includes/ResourceLoaderTest.php

index 4588015..22ff6a7 100644 (file)
@@ -96,7 +96,7 @@ class ResourceLoaderContext {
                                $pos = strrpos( $group, '.' );
                                if ( $pos === false ) {
                                        // Prefixless modules, i.e. without dots
-                                       $retval = explode( ',', $group );
+                                       $retval = array_merge( $retval, explode( ',', $group ) );
                                } else {
                                        // We have a prefix and a bunch of suffixes
                                        $prefix = substr( $group, 0, $pos ); // 'foo'
index 68db9ad..fa228a6 100644 (file)
@@ -79,7 +79,12 @@ class ResourceLoaderTest extends MediaWikiTestCase {
                                'Regression fixed in r88706 with dotless names',
                                array( 'foo', 'bar', 'baz' ),
                                'foo,bar,baz',
-                       )
+                       ),
+                       array(
+                               'Prefixless modules after a prefixed module',
+                               array( 'single.module', 'foobar', 'foobaz' ),
+                               'single.module|foobar,foobaz',
+                       ),
                );
        }
 }