[JSTesting] Refactor mw.loader test to be more extendable
authorKrinkle <krinkle@users.mediawiki.org>
Fri, 24 Feb 2012 00:44:33 +0000 (00:44 +0000)
committerKrinkle <krinkle@users.mediawiki.org>
Fri, 24 Feb 2012 00:44:33 +0000 (00:44 +0000)
tests/qunit/data/callMwLoaderTestCallback.js [new file with mode: 0644]
tests/qunit/data/defineTestCallback.js [deleted file]
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js

diff --git a/tests/qunit/data/callMwLoaderTestCallback.js b/tests/qunit/data/callMwLoaderTestCallback.js
new file mode 100644 (file)
index 0000000..3f2ee92
--- /dev/null
@@ -0,0 +1 @@
+mw.loader.testCallback();
diff --git a/tests/qunit/data/defineTestCallback.js b/tests/qunit/data/defineTestCallback.js
deleted file mode 100644 (file)
index 6fcd459..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-window.mw.loader.testCallback = function() {
-       start();
-       ok( true, 'Implementing a module, is the callback timed properly ?');
-};
index fdd3116..87795cf 100644 (file)
@@ -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 ) ? '&' : '?')
index e6934ed..704b0e1 100644 (file)
@@ -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' );
        });
 
 });