From de07323b0116ab3d64f923301bc4eb07a8af6f27 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Sat, 24 Aug 2019 19:58:40 +0100 Subject: [PATCH] resourceloader: Add tests for mw.loader not storing private/user response This is in preparation for changing the way group indexes are transmitted between the server and client, to confirm that the behaviour doesn't break. Change-Id: I1f84c4c407a4eb69b5b9659d768c643d4a83df0d --- .../mediawiki/mediawiki.loader.test.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js index ed1288b676..e1b8d55da8 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js @@ -1003,6 +1003,50 @@ } ); } ); + QUnit.test( 'No storing of group=private responses', function ( assert ) { + var name = 'test.group.priv'; + + // 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( name, 'x', [], 'private' ); + assert.strictEqual( mw.loader.store.get( name ), false, 'Not in store' ); + + mw.loader.implement( name, function () {} ); + return mw.loader.using( name ).then( function () { + assert.strictEqual( mw.loader.getState( name ), 'ready' ); + assert.strictEqual( mw.loader.store.get( name ), false, 'Still not in store' ); + } ); + } ); + + QUnit.test( 'No storing of group=user responses', function ( assert ) { + var name = 'test.group.user'; + + // 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( name, 'y', [], 'user' ); + assert.strictEqual( mw.loader.store.get( name ), false, 'Not in store' ); + + mw.loader.implement( name, function () {} ); + return mw.loader.using( name ).then( function () { + assert.strictEqual( mw.loader.getState( name ), 'ready' ); + assert.strictEqual( mw.loader.store.get( name ), false, 'Still not in store' ); + } ); + } ); + QUnit.test( 'require()', function ( assert ) { mw.loader.register( [ [ 'test.require1', '0' ], -- 2.20.1