From c59ff09be9c2579f1feccd80937513a44e7e82a1 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Tue, 4 Feb 2014 21:17:48 -0800 Subject: [PATCH] qunit: Move modules exclusively for $wgEnableJavaScriptTest to test registry These modules should only be loaded when $wgEnableJavaScriptTest is true. Move these modules to the registry that is only activated in that context and rename the modules to be namespaced under 'test.' so that there is no mistake when referencing these that they are not regularly available. Change-Id: I21e69f50b006904b12fe9f79c196c903ebff4661 --- includes/resourceloader/ResourceLoader.php | 6 +++-- includes/specials/SpecialJavaScriptTest.php | 2 +- resources/Resources.php | 15 ------------ tests/qunit/QUnitTestResources.php | 27 +++++++++++++++++++-- tests/qunit/data/testrunner.js | 4 +-- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/includes/resourceloader/ResourceLoader.php b/includes/resourceloader/ResourceLoader.php index b6c9cecbe1..557c1f68e2 100644 --- a/includes/resourceloader/ResourceLoader.php +++ b/includes/resourceloader/ResourceLoader.php @@ -289,7 +289,7 @@ class ResourceLoader { // Get core test suites $testModules = array(); - $testModules['qunit'] = include "$IP/tests/qunit/QUnitTestResources.php"; + $testModules['qunit'] = array(); // Get other test suites (e.g. from extensions) wfRunHooks( 'ResourceLoaderTestModules', array( &$testModules, &$this ) ); @@ -300,9 +300,11 @@ class ResourceLoader { // on document-ready, it will run once and finish. If some tests arrive // later (possibly after QUnit has already finished) they will be ignored. $module['position'] = 'top'; - $module['dependencies'][] = 'mediawiki.tests.qunit.testrunner'; + $module['dependencies'][] = 'test.mediawiki.qunit.testrunner'; } + $testModules['qunit'] = ( include "$IP/tests/qunit/QUnitTestResources.php" ) + $testModules['qunit']; + foreach ( $testModules as $id => $names ) { // Register test modules $this->register( $testModules[$id] ); diff --git a/includes/specials/SpecialJavaScriptTest.php b/includes/specials/SpecialJavaScriptTest.php index 57d314f443..7982d5c8c0 100644 --- a/includes/specials/SpecialJavaScriptTest.php +++ b/includes/specials/SpecialJavaScriptTest.php @@ -139,7 +139,7 @@ class SpecialJavaScriptTest extends SpecialPage { $out = $this->getOutput(); - $out->addModules( 'mediawiki.tests.qunit.testrunner' ); + $out->addModules( 'test.mediawiki.qunit.testrunner' ); $qunitTestModules = $out->getResourceLoader()->getTestModuleNames( 'qunit' ); $out->addModules( $qunitTestModules ); diff --git a/resources/Resources.php b/resources/Resources.php index 394392c010..a02459f47e 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1183,21 +1183,6 @@ return array( 'styles' => 'resources/mediawiki.special/mediawiki.special.version.css', ), - /* MediaWiki Tests */ - - 'mediawiki.tests.qunit.testrunner' => array( - 'scripts' => 'tests/qunit/data/testrunner.js', - 'dependencies' => array( - 'jquery.getAttrs', - 'jquery.qunit', - 'jquery.qunit.completenessTest', - 'mediawiki.page.startup', - 'mediawiki.page.ready', - ), - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - /* MediaWiki Legacy */ 'mediawiki.legacy.ajax' => array( diff --git a/tests/qunit/QUnitTestResources.php b/tests/qunit/QUnitTestResources.php index 0ec49323c0..bd240eb002 100644 --- a/tests/qunit/QUnitTestResources.php +++ b/tests/qunit/QUnitTestResources.php @@ -1,10 +1,32 @@ array( + 'scripts' => array( + 'tests/qunit/data/testrunner.js', + ), + 'dependencies' => array( + 'jquery.getAttrs', + 'jquery.qunit', + 'jquery.qunit.completenessTest', + 'mediawiki.page.ready', + 'mediawiki.page.startup', + ), + 'position' => 'top', + 'targets' => array( 'desktop', 'mobile' ), + ), + + /* + Test suites for MediaWiki core modules + These must have a dependency on test.mediawiki.qunit.testrunner! + */ - 'mediawiki.tests.qunit.suites' => array( + 'test.mediawiki.qunit.suites' => array( 'scripts' => array( 'tests/qunit/suites/resources/startup.test.js', 'tests/qunit/suites/resources/jquery/jquery.autoEllipsis.test.js', @@ -66,6 +88,7 @@ return array( 'mediawiki.special.recentchanges', 'mediawiki.language', 'mediawiki.cldr', + 'test.mediawiki.qunit.testrunner', ), ) ); diff --git a/tests/qunit/data/testrunner.js b/tests/qunit/data/testrunner.js index 1a2bfa102d..5bdd37f552 100644 --- a/tests/qunit/data/testrunner.js +++ b/tests/qunit/data/testrunner.js @@ -315,7 +315,7 @@ * initializations defined above in this file. */ envExecCount = 0; - QUnit.module( 'mediawiki.tests.qunit.testrunner', QUnit.newMwEnvironment( { + QUnit.module( 'test.mediawiki.qunit.testrunner', QUnit.newMwEnvironment( { setup: function () { envExecCount += 1; this.mwHtmlLive = mw.html; @@ -420,7 +420,7 @@ } ); - QUnit.module( 'mediawiki.tests.qunit.testrunner-after', QUnit.newMwEnvironment() ); + QUnit.module( 'test.mediawiki.qunit.testrunner-after', QUnit.newMwEnvironment() ); QUnit.test( 'Teardown', 3, function ( assert ) { assert.equal( mw.html.escape( '<' ), '<', 'extra teardown() callback was ran.' ); -- 2.20.1