summaryrefslogtreecommitdiffstats
path: root/toolkit/components/backgroundtasks/tests/xpcshell/test_manifest_with_backgroundtask.js
blob: f713fe5e782be7b1d130164ed09c4dd9a3b90812 (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
39
40
41
42
43
44
45
46
47
48
49
50
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
 * vim: sw=4 ts=4 sts=4 et
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

add_task(async function test_manifest_with_backgroundtask() {
  let bts = Cc["@mozilla.org/backgroundtasks;1"].getService(
    Ci.nsIBackgroundTasks
  );

  Assert.equal(false, bts.isBackgroundTaskMode);
  Assert.equal(null, bts.backgroundTaskName());

  bts.overrideBackgroundTaskNameForTesting("test-task");

  Assert.equal(true, bts.isBackgroundTaskMode);
  Assert.equal("test-task", bts.backgroundTaskName());

  // Load test components.
  do_load_manifest("CatBackgroundTaskRegistrationComponents.manifest");

  const expectedEntries = new Map([
    [
      "CatBackgroundTaskRegisteredComponent",
      "@unit.test.com/cat-backgroundtask-registered-component;1",
    ],
    [
      "CatBackgroundTaskAlwaysRegisteredComponent",
      "@unit.test.com/cat-backgroundtask-alwaysregistered-component;1",
    ],
  ]);

  // Verify the correct entries are registered in the "test-cat" category.
  for (let { entry, value } of Services.catMan.enumerateCategory("test-cat")) {
    ok(expectedEntries.has(entry), `${entry} is expected`);
    Assert.equal(
      value,
      expectedEntries.get(entry),
      "${entry} has correct value."
    );
    expectedEntries.delete(entry);
  }
  print("Check that all of the expected entries have been deleted.");
  Assert.deepEqual(
    Array.from(expectedEntries.keys()),
    [],
    "All expected entries have been deleted."
  );
});