mw.loader: Add unit test to confirm implicit 'site' dependency for 'user'
[lhc/web/wiklou.git] / tests / qunit / suites / resources / mediawiki / mediawiki.loader.test.js
index 985ff92..64415e0 100644 (file)
                } );
        } );
 
+       QUnit.test( 'Implicit dependencies', function ( assert ) {
+               var ranUser = false,
+                       userSeesSite = false,
+                       ranSite = false;
+
+               mw.loader.implement(
+                       'site',
+                       function () {
+                               ranSite = true;
+                       }
+               );
+               mw.loader.implement(
+                       'user',
+                       function () {
+                               userSeesSite = ranSite;
+                               ranUser = true;
+                       }
+               );
+
+               assert.strictEqual( ranSite, false, 'verify site module not yet loaded' );
+               assert.strictEqual( ranUser, false, 'verify user module not yet loaded' );
+               return mw.loader.using( 'user', function () {
+                       assert.strictEqual( ranSite, true, 'ran site module' );
+                       assert.strictEqual( ranUser, true, 'ran user module' );
+                       assert.strictEqual( userSeesSite, true, 'ran site before user module' );
+
+                       // Reset
+                       mw.loader.moduleRegistry[ 'site' ].state = 'registered';
+                       mw.loader.moduleRegistry[ 'user' ].state = 'registered';
+               } );
+       } );
+
 }( mediaWiki, jQuery ) );