test_extension_storage_tracker_kinto.js (1414B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 Services.prefs.setBoolPref("webextensions.storage.sync.kinto", true); 7 8 const { ExtensionStorageEngine } = ChromeUtils.importESModule( 9 "resource://services-sync/engines/extension-storage.sys.mjs" 10 ); 11 const { Service } = ChromeUtils.importESModule( 12 "resource://services-sync/service.sys.mjs" 13 ); 14 const { extensionStorageSyncKinto: extensionStorageSync } = 15 ChromeUtils.importESModule( 16 "resource://gre/modules/ExtensionStorageSyncKinto.sys.mjs" 17 ); 18 19 let engine; 20 21 add_task(async function setup() { 22 await Service.engineManager.register(ExtensionStorageEngine); 23 engine = Service.engineManager.get("extension-storage"); 24 do_get_profile(); // so we can use FxAccounts 25 loadWebExtensionTestFunctions(); 26 }); 27 28 add_task(async function test_changing_extension_storage_changes_score() { 29 const tracker = engine._tracker; 30 const extension = { id: "my-extension-id" }; 31 tracker.start(); 32 await withContext(async function (context) { 33 await extensionStorageSync.set(extension, { a: "b" }, context); 34 }); 35 Assert.equal(tracker.score, SCORE_INCREMENT_MEDIUM); 36 37 tracker.resetScore(); 38 await withContext(async function (context) { 39 await extensionStorageSync.remove(extension, "a", context); 40 }); 41 Assert.equal(tracker.score, SCORE_INCREMENT_MEDIUM); 42 43 await tracker.stop(); 44 });