From 6f5cb7d42b8f936b5fb9b741087b7e1b6d7fa2ec Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Wed, 16 Nov 2016 17:15:04 -0800 Subject: [PATCH] resourceloader: Add tests to verify empty string works It's not explicitly supported anywhere, but I don't see a point in explicitly disallowing it. Add unit tests to verify that this works. Bug: T28804 Change-Id: I876ac43885bb27da54ef6e59b6416868ff636b84 --- .../resourceloader/ResourceLoaderTest.php | 10 ++++++++++ .../mediawiki/mediawiki.loader.test.js | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php index c24a3211e7..1ecdf21d92 100644 --- a/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php +++ b/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php @@ -51,6 +51,16 @@ class ResourceLoaderTest extends ResourceLoaderTestCase { $this->assertEquals( $module, $resourceLoader->getModule( 'test' ) ); } + /** + * @covers ResourceLoader::register + */ + public function testRegisterEmptyString() { + $module = new ResourceLoaderTestModule(); + $resourceLoader = new EmptyResourceLoader(); + $resourceLoader->register( '', $module ); + $this->assertEquals( $module, $resourceLoader->getModule( '' ) ); + } + /** * @covers ResourceLoader::register */ diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js index 7233a2ed7d..505d9a17fb 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js @@ -601,6 +601,25 @@ mw.loader.load( target ); } ); + QUnit.test( 'Empty string module name - T28804', function ( assert ) { + var done = false; + + assert.strictEqual( mw.loader.getState( '' ), null, 'State (unregistered)' ); + + mw.loader.register( '', 'v1' ); + assert.strictEqual( mw.loader.getState( '' ), 'registered', 'State (registered)' ); + assert.strictEqual( mw.loader.getVersion( '' ), 'v1', 'Version' ); + + mw.loader.implement( '', function () { + done = true; + } ); + + return mw.loader.using( '', function () { + assert.strictEqual( done, true, 'script ran' ); + assert.strictEqual( mw.loader.getState( '' ), 'ready', 'State (ready)' ); + } ); + } ); + QUnit.test( 'Executing race - T112232', 2, function ( assert ) { var done = false; -- 2.20.1