summaryrefslogtreecommitdiffstats
path: root/toolkit/components/taskscheduler/tests/xpcshell/test_TaskScheduler.js
blob: 47e641530bb9c7376d1482d9839402064d2c65aa (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
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 */
"use strict";

// Cross-platform task scheduler tests.
//
// There's not much that can be done here without allowing the task to run, so this
// only touches on the basics of argument checking. On platforms without a task
// scheduler implementation, these interfaces currently do nothing else.

const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");

const { updateAppInfo } = ChromeUtils.import(
  "resource://testing-common/AppInfo.jsm"
);
updateAppInfo();

const { TaskScheduler } = ChromeUtils.import(
  "resource://gre/modules/TaskScheduler.jsm"
);

registerCleanupFunction(() => {
  TaskScheduler.deleteAllTasks();
});

add_task(async function test_gen() {
  TaskScheduler.registerTask("FOO", "xyz", TaskScheduler.MIN_INTERVAL_SECONDS, {
    disabled: true,
  });
  TaskScheduler.deleteTask("FOO");

  Assert.throws(
    () =>
      TaskScheduler.registerTask("BAR", "123", 1, {
        disabled: true,
      }),
    /Interval is too short/
  );
});