services/sync/tests/unit/test_service_startOver.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:26c21bd1b92e
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
3
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");
9
10 function BlaEngine() {
11 SyncEngine.call(this, "Bla", Service);
12 }
13 BlaEngine.prototype = {
14 __proto__: SyncEngine.prototype,
15
16 removed: false,
17 removeClientData: function() {
18 this.removed = true;
19 }
20
21 };
22
23 Service.engineManager.register(BlaEngine);
24
25
26 function run_test() {
27 initTestLogging("Trace");
28 run_next_test();
29 }
30
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();
37
38 // Verify set up.
39 do_check_eq(Service.status.checkSetup(), STATUS_OK);
40
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;
46
47 do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED);
48 });
49
50 Service.startOver();
51 do_check_true(observerCalled);
52
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);
57
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 });
63
64 add_test(function test_removeClientData() {
65 let engine = Service.engineManager.get("bla");
66
67 // No cluster URL = no removal.
68 do_check_false(engine.removed);
69 Service.startOver();
70 do_check_false(engine.removed);
71
72 Service.serverURL = "https://localhost/";
73 Service.clusterURL = Service.serverURL;
74
75 do_check_false(engine.removed);
76 Service.startOver();
77 do_check_true(engine.removed);
78
79 run_next_test();
80 });
81
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;
90
91 Service.startOver();
92
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);
99
100 run_next_test();
101 });

mercurial