Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
4 Cu.import("resource://services-sync/constants.js");
5 Cu.import("resource://services-sync/engines.js");
6 Cu.import("resource://services-sync/service.js");
7 Cu.import("resource://services-sync/util.js");
8 Cu.import("resource://testing-common/services/sync/utils.js");
10 function BlaEngine() {
11 SyncEngine.call(this, "Bla", Service);
12 }
13 BlaEngine.prototype = {
14 __proto__: SyncEngine.prototype,
16 removed: false,
17 removeClientData: function() {
18 this.removed = true;
19 }
21 };
23 Service.engineManager.register(BlaEngine);
26 function run_test() {
27 initTestLogging("Trace");
28 run_next_test();
29 }
31 add_identity_test(this, function test_resetLocalData() {
32 yield configureIdentity();
33 Service.status.enforceBackoff = true;
34 Service.status.backoffInterval = 42;
35 Service.status.minimumNextSync = 23;
36 Service.persistLogin();
38 // Verify set up.
39 do_check_eq(Service.status.checkSetup(), STATUS_OK);
41 // Verify state that the observer sees.
42 let observerCalled = false;
43 Svc.Obs.add("weave:service:start-over", function onStartOver() {
44 Svc.Obs.remove("weave:service:start-over", onStartOver);
45 observerCalled = true;
47 do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED);
48 });
50 Service.startOver();
51 do_check_true(observerCalled);
53 // Verify the site was nuked from orbit.
54 do_check_eq(Svc.Prefs.get("username"), undefined);
55 do_check_eq(Service.identity.basicPassword, null);
56 do_check_eq(Service.identity.syncKey, null);
58 do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED);
59 do_check_false(Service.status.enforceBackoff);
60 do_check_eq(Service.status.backoffInterval, 0);
61 do_check_eq(Service.status.minimumNextSync, 0);
62 });
64 add_test(function test_removeClientData() {
65 let engine = Service.engineManager.get("bla");
67 // No cluster URL = no removal.
68 do_check_false(engine.removed);
69 Service.startOver();
70 do_check_false(engine.removed);
72 Service.serverURL = "https://localhost/";
73 Service.clusterURL = Service.serverURL;
75 do_check_false(engine.removed);
76 Service.startOver();
77 do_check_true(engine.removed);
79 run_next_test();
80 });
82 add_test(function test_reset_SyncScheduler() {
83 // Some non-default values for SyncScheduler's attributes.
84 Service.scheduler.idle = true;
85 Service.scheduler.hasIncomingItems = true;
86 Service.scheduler.numClients = 42;
87 Service.scheduler.nextSync = Date.now();
88 Service.scheduler.syncThreshold = MULTI_DEVICE_THRESHOLD;
89 Service.scheduler.syncInterval = Service.scheduler.activeInterval;
91 Service.startOver();
93 do_check_false(Service.scheduler.idle);
94 do_check_false(Service.scheduler.hasIncomingItems);
95 do_check_eq(Service.scheduler.numClients, 0);
96 do_check_eq(Service.scheduler.nextSync, 0);
97 do_check_eq(Service.scheduler.syncThreshold, SINGLE_USER_THRESHOLD);
98 do_check_eq(Service.scheduler.syncInterval, Service.scheduler.singleDeviceInterval);
100 run_next_test();
101 });