X-Git-Url: https://git.cyclocoop.org/admin/?a=blobdiff_plain;f=tests%2Fqunit%2Fsuites%2Fresources%2Fmediawiki%2Fmediawiki.loader.test.js;h=ae5ddb587df299473e6e2641e01cbb99b2fa3a76;hb=7e93521baaa4342b091a1bb7688d877af164e1e0;hp=05b85be3a4eafdbca5795cd3b6fe3e57d6d032ca;hpb=bfc3d64695070cd8c21eb1b88f3045de9a1a75b3;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js index 05b85be3a4..ae5ddb587d 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js @@ -1,15 +1,12 @@ ( function ( mw, $ ) { QUnit.module( 'mediawiki.loader', QUnit.newMwEnvironment( { setup: function ( assert ) { - mw.loader.store.enabled = false; - // Expose for load.mock.php mw.loader.testFail = function ( reason ) { assert.ok( false, reason ); }; }, teardown: function () { - mw.loader.store.enabled = false; // Teardown for StringSet shim test if ( this.nativeSet ) { window.Set = this.nativeSet; @@ -665,7 +662,7 @@ assert.strictEqual( mw.loader.getState( 'test.module7' ), 'registered', 'Expected "registered" state for test.module7' ); assert.strictEqual( mw.loader.getState( 'test.module8' ), 'loaded', 'Expected "loaded" state for test.module8' ); assert.strictEqual( mw.loader.getState( 'test.module9' ), 'registered', 'Expected "registered" state for test.module9' ); - mw.loader.state( 'test.module7', 'missing' ); + mw.loader.state( { 'test.module7': 'missing' } ); assert.strictEqual( mw.loader.getState( 'test.module7' ), 'missing', 'Expected "missing" state for test.module7' ); assert.strictEqual( mw.loader.getState( 'test.module8' ), 'error', 'Expected "error" state for test.module8' ); assert.strictEqual( mw.loader.getState( 'test.module9' ), 'error', 'Expected "error" state for test.module9' ); @@ -732,7 +729,7 @@ }, function ( e, badmodules ) { assert.ok( true, 'Error handler should be invoked.' ); - // As soon as server spits out state('testMissing', 'missing'); + // As soon as server sets state of 'testMissing' to 'missing' // it will bubble up and trigger the error callback. // Therefor the badmodules array is not testUsesMissing or testUsesNestedMissing. assert.deepEqual( badmodules, [ 'testMissing' ], 'Bad modules as expected.' ); @@ -855,7 +852,15 @@ QUnit.test( 'Stale response caching - T117587', function ( assert ) { var count = 0; - mw.loader.store.enabled = true; + // Enable store and stub timeout/idle scheduling + this.sandbox.stub( mw.loader.store, 'enabled', true ); + this.sandbox.stub( window, 'setTimeout', function ( fn ) { + fn(); + } ); + this.sandbox.stub( mw, 'requestIdleCallback', function ( fn ) { + fn(); + } ); + mw.loader.register( 'test.stale', 'v2' ); assert.strictEqual( mw.loader.store.get( 'test.stale' ), false, 'Not in store' ); @@ -869,7 +874,7 @@ // After implementing, registry contains version as implemented by the response. assert.strictEqual( mw.loader.getVersion( 'test.stale' ), 'v1', 'Override version' ); assert.strictEqual( mw.loader.getState( 'test.stale' ), 'ready' ); - assert.ok( mw.loader.store.get( 'test.stale' ), 'In store' ); + assert.strictEqual( typeof mw.loader.store.get( 'test.stale' ), 'string', 'In store' ); } ) .then( function () { // Reset run time, but keep mw.loader.store @@ -885,7 +890,15 @@ QUnit.test( 'Stale response caching - backcompat', function ( assert ) { var script = 0; - mw.loader.store.enabled = true; + // Enable store and stub timeout/idle scheduling + this.sandbox.stub( mw.loader.store, 'enabled', true ); + this.sandbox.stub( window, 'setTimeout', function ( fn ) { + fn(); + } ); + this.sandbox.stub( mw, 'requestIdleCallback', function ( fn ) { + fn(); + } ); + mw.loader.register( 'test.stalebc', 'v2' ); assert.strictEqual( mw.loader.store.get( 'test.stalebc' ), false, 'Not in store' ); @@ -897,7 +910,7 @@ .then( function () { assert.strictEqual( script, 1, 'module script ran' ); assert.strictEqual( mw.loader.getState( 'test.stalebc' ), 'ready' ); - assert.ok( mw.loader.store.get( 'test.stalebc' ), 'In store' ); + assert.strictEqual( typeof mw.loader.store.get( 'test.stalebc' ), 'string', 'In store' ); } ) .then( function () { // Reset run time, but keep mw.loader.store