summaryrefslogtreecommitdiffstats
path: root/services/sync/tests/unit/test_extension_storage_tracker.js
blob: fac51a897705d671f7ac588f167f0da39b6478af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

Cu.import("resource://services-sync/constants.js");
Cu.import("resource://services-sync/engines.js");
Cu.import("resource://services-sync/engines/extension-storage.js");
Cu.import("resource://services-sync/service.js");
Cu.import("resource://services-sync/util.js");
Cu.import("resource://gre/modules/ExtensionStorageSync.jsm");

Service.engineManager.register(ExtensionStorageEngine);
const engine = Service.engineManager.get("extension-storage");
do_get_profile();   // so we can use FxAccounts
loadWebExtensionTestFunctions();

add_task(function* test_changing_extension_storage_changes_score() {
  const tracker = engine._tracker;
  const extension = {id: "my-extension-id"};
  Svc.Obs.notify("weave:engine:start-tracking");
  yield* withSyncContext(function*(context) {
    yield ExtensionStorageSync.set(extension, {"a": "b"}, context);
  });
  do_check_eq(tracker.score, SCORE_INCREMENT_MEDIUM);

  tracker.resetScore();
  yield* withSyncContext(function*(context) {
    yield ExtensionStorageSync.remove(extension, "a", context);
  });
  do_check_eq(tracker.score, SCORE_INCREMENT_MEDIUM);

  Svc.Obs.notify("weave:engine:stop-tracking");
});

function run_test() {
  run_next_test();
}