summaryrefslogtreecommitdiffstats
path: root/services/sync/tests/unit/test_block_sync.js
diff options
context:
space:
mode:
Diffstat (limited to 'services/sync/tests/unit/test_block_sync.js')
-rw-r--r--services/sync/tests/unit/test_block_sync.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/services/sync/tests/unit/test_block_sync.js b/services/sync/tests/unit/test_block_sync.js
new file mode 100644
index 000000000..f83b7b740
--- /dev/null
+++ b/services/sync/tests/unit/test_block_sync.js
@@ -0,0 +1,37 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+Cu.import("resource://services-sync/main.js");
+Cu.import("resource://services-sync/util.js");
+
+// Simple test for block/unblock.
+add_task(function *() {
+ Assert.ok(!Weave.Service.scheduler.isBlocked, "sync is not blocked.")
+ Assert.ok(!Svc.Prefs.has("scheduler.blocked-until"), "have no blocked pref");
+ Weave.Service.scheduler.blockSync();
+
+ Assert.ok(Weave.Service.scheduler.isBlocked, "sync is blocked.")
+ Assert.ok(Svc.Prefs.has("scheduler.blocked-until"), "have the blocked pref");
+
+ Weave.Service.scheduler.unblockSync();
+ Assert.ok(!Weave.Service.scheduler.isBlocked, "sync is not blocked.")
+ Assert.ok(!Svc.Prefs.has("scheduler.blocked-until"), "have no blocked pref");
+
+ // now check the "until" functionality.
+ let until = Date.now() + 1000;
+ Weave.Service.scheduler.blockSync(until);
+ Assert.ok(Weave.Service.scheduler.isBlocked, "sync is blocked.")
+ Assert.ok(Svc.Prefs.has("scheduler.blocked-until"), "have the blocked pref");
+
+ // wait for 'until' to pass.
+ yield new Promise((resolve, reject) => {
+ CommonUtils.namedTimer(resolve, 1000, {}, "timer");
+ });
+
+ // should have automagically unblocked and removed the pref.
+ Assert.ok(!Weave.Service.scheduler.isBlocked, "sync is not blocked.")
+ Assert.ok(!Svc.Prefs.has("scheduler.blocked-until"), "have no blocked pref");
+});
+
+function run_test() {
+ run_next_test();
+}