From 75417f5e3d32645859d94cec82255dc130ec4a2e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 18:55:34 +0200 Subject: Adding upstream version 2020.10.7. Signed-off-by: Daniel Baumann --- src/tests/lib/qunit_config.js | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/tests/lib/qunit_config.js (limited to 'src/tests/lib/qunit_config.js') diff --git a/src/tests/lib/qunit_config.js b/src/tests/lib/qunit_config.js new file mode 100644 index 0000000..36e58ae --- /dev/null +++ b/src/tests/lib/qunit_config.js @@ -0,0 +1,74 @@ +/* globals badger:false */ + +(function () { + +let BACKUP = {}; + +QUnit.config.autostart = false; +QUnit.config.testTimeout = 6400; + +// disable storage persistence +// unit tests shouldn't be able to affect your Badger's storage +chrome.storage.local.set = () => {}; + +// make it seem like there is nothing in storage +// unit tests shouldn't read from your Badger's storage either +chrome.storage.local.get = (keys, callback) => { + // callback has to be async + setTimeout(function () { + callback({ + // don't open the new user intro page or load seed data + private_storage: { + badgerVersion: chrome.runtime.getManifest().version, + } + }); + }, 0); +}; + +// reset state between tests +// to prevent tests affecting each other via side effects +QUnit.testStart(() => { + // back up settings and heuristic learning + // TODO any other state we should reset? tabData? + badger.storage.KEYS.forEach(item => { + let obj = badger.storage.getStore(item); + BACKUP[item] = obj.getItemClones(); + }); +}); + +QUnit.testDone(() => { + // restore original settings and heuristic learning + badger.storage.KEYS.forEach(item => { + let obj = badger.storage.getStore(item); + obj.updateObject(BACKUP[item]); + }); +}); + +// kick off tests when we have what we need from Badger +(function () { + + const WAIT_INTERVAL = 10, + MAX_WAIT = 1000; + + let elapsed = 0; + + function wait_for_badger() { + elapsed += WAIT_INTERVAL; + + if (elapsed >= MAX_WAIT) { + // give up + QUnit.start(); + } + + if (typeof badger == "object" && badger.INITIALIZED) { + QUnit.start(); + } else { + setTimeout(wait_for_badger, WAIT_INTERVAL); + } + } + + setTimeout(wait_for_badger, WAIT_INTERVAL); + +}()); + +}()); -- cgit v1.2.3