From: Krinkle Date: Fri, 24 Feb 2012 00:44:33 +0000 (+0000) Subject: [JSTesting] Refactor mw.loader test to be more extendable X-Git-Tag: 1.31.0-rc.0~24550 X-Git-Url: http://git.cyclocoop.org//%27%40script%40/%27?a=commitdiff_plain;h=2ee689d2cf00a502ec6bc9e39276a33119c87225;p=lhc%2Fweb%2Fwiklou.git [JSTesting] Refactor mw.loader test to be more extendable --- diff --git a/tests/qunit/data/callMwLoaderTestCallback.js b/tests/qunit/data/callMwLoaderTestCallback.js new file mode 100644 index 0000000000..3f2ee92ffe --- /dev/null +++ b/tests/qunit/data/callMwLoaderTestCallback.js @@ -0,0 +1 @@ +mw.loader.testCallback(); diff --git a/tests/qunit/data/defineTestCallback.js b/tests/qunit/data/defineTestCallback.js deleted file mode 100644 index 6fcd45951f..0000000000 --- a/tests/qunit/data/defineTestCallback.js +++ /dev/null @@ -1,4 +0,0 @@ -window.mw.loader.testCallback = function() { - start(); - ok( true, 'Implementing a module, is the callback timed properly ?'); -}; diff --git a/tests/qunit/data/testrunner.js b/tests/qunit/data/testrunner.js index fdd3116b07..87795cf46b 100644 --- a/tests/qunit/data/testrunner.js +++ b/tests/qunit/data/testrunner.js @@ -6,9 +6,9 @@ var mwTestIgnore, mwTester, addons; /** * Add bogus to url to prevent IE crazy caching * - * @param value {String} a relative path (eg. 'data/defineTestCallback.js' + * @param value {String} a relative path (eg. 'data/foo.js' * or 'data/test.php?foo=bar'). - * @return {String} Such as 'data/defineTestCallback.js?131031765087663960' + * @return {String} Such as 'data/foo.js?131031765087663960' */ QUnit.fixurl = function (value) { return value + (/\?/.test( value ) ? '&' : '?') diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js index e6934eda08..704b0e1452 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.test.js @@ -144,23 +144,31 @@ test( 'mw.msg', function() { }); test( 'mw.loader', function() { - expect(1); + expect(2); + + var isAwesomeDone; // Asynchronous ahead stop(); - mw.loader.implement( 'is.awesome', [QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/defineTestCallback.js' )], {}, {} ); + mw.loader.testCallback = function () { + start(); + strictEqual( isAwesomeDone, undefined, 'Implementing module is.awesome: isAwesomeDone should still be undefined'); + isAwesomeDone = true; + }; + + mw.loader.implement( 'is.awesome', [QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/callMwLoaderTestCallback.js' )], {}, {} ); - mw.loader.using( 'is.awesome', function() { + mw.loader.using( 'is.awesome', function () { // /sample/awesome.js declares the "mw.loader.testCallback" function // which contains a call to start() and ok() - mw.loader.testCallback(); - mw.loader.testCallback = undefined; + strictEqual(isAwesomeDone, true, "is.awesome module should've caused isAwesomeDone to be true") + delete mw.loader.testCallback; - }, function() { + }, function () { start(); - ok( false, 'Error callback fired while implementing "is.awesome" module' ); + ok( false, 'Error callback fired while loader.using "is.awesome" module' ); }); });