|
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 }); |