|
1 Cu.import("resource://services-sync/constants.js"); |
|
2 Cu.import("resource://services-sync/status.js"); |
|
3 |
|
4 function run_test() { |
|
5 |
|
6 // Check initial states |
|
7 do_check_false(Status.enforceBackoff); |
|
8 do_check_eq(Status.backoffInterval, 0); |
|
9 do_check_eq(Status.minimumNextSync, 0); |
|
10 |
|
11 do_check_eq(Status.service, STATUS_OK); |
|
12 do_check_eq(Status.sync, SYNC_SUCCEEDED); |
|
13 do_check_eq(Status.login, LOGIN_SUCCEEDED); |
|
14 for (let name in Status.engines) { |
|
15 do_throw('Status.engines should be empty.'); |
|
16 } |
|
17 do_check_eq(Status.partial, false); |
|
18 |
|
19 |
|
20 // Check login status |
|
21 for each (let code in [LOGIN_FAILED_NO_USERNAME, |
|
22 LOGIN_FAILED_NO_PASSWORD, |
|
23 LOGIN_FAILED_NO_PASSPHRASE]) { |
|
24 Status.login = code; |
|
25 do_check_eq(Status.login, code); |
|
26 do_check_eq(Status.service, CLIENT_NOT_CONFIGURED); |
|
27 Status.resetSync(); |
|
28 } |
|
29 |
|
30 Status.login = LOGIN_FAILED; |
|
31 do_check_eq(Status.login, LOGIN_FAILED); |
|
32 do_check_eq(Status.service, LOGIN_FAILED); |
|
33 Status.resetSync(); |
|
34 |
|
35 Status.login = LOGIN_SUCCEEDED; |
|
36 do_check_eq(Status.login, LOGIN_SUCCEEDED); |
|
37 do_check_eq(Status.service, STATUS_OK); |
|
38 Status.resetSync(); |
|
39 |
|
40 |
|
41 // Check sync status |
|
42 Status.sync = SYNC_FAILED; |
|
43 do_check_eq(Status.sync, SYNC_FAILED); |
|
44 do_check_eq(Status.service, SYNC_FAILED); |
|
45 |
|
46 Status.sync = SYNC_SUCCEEDED; |
|
47 do_check_eq(Status.sync, SYNC_SUCCEEDED); |
|
48 do_check_eq(Status.service, STATUS_OK); |
|
49 |
|
50 Status.resetSync(); |
|
51 |
|
52 |
|
53 // Check engine status |
|
54 Status.engines = ["testEng1", ENGINE_SUCCEEDED]; |
|
55 do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); |
|
56 do_check_eq(Status.service, STATUS_OK); |
|
57 |
|
58 Status.engines = ["testEng2", ENGINE_DOWNLOAD_FAIL]; |
|
59 do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); |
|
60 do_check_eq(Status.engines["testEng2"], ENGINE_DOWNLOAD_FAIL); |
|
61 do_check_eq(Status.service, SYNC_FAILED_PARTIAL); |
|
62 |
|
63 Status.engines = ["testEng3", ENGINE_SUCCEEDED]; |
|
64 do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); |
|
65 do_check_eq(Status.engines["testEng2"], ENGINE_DOWNLOAD_FAIL); |
|
66 do_check_eq(Status.engines["testEng3"], ENGINE_SUCCEEDED); |
|
67 do_check_eq(Status.service, SYNC_FAILED_PARTIAL); |
|
68 |
|
69 |
|
70 // Check resetSync |
|
71 Status.sync = SYNC_FAILED; |
|
72 Status.resetSync(); |
|
73 |
|
74 do_check_eq(Status.service, STATUS_OK); |
|
75 do_check_eq(Status.sync, SYNC_SUCCEEDED); |
|
76 for (name in Status.engines) { |
|
77 do_throw('Status.engines should be empty.'); |
|
78 } |
|
79 |
|
80 |
|
81 // Check resetBackoff |
|
82 Status.enforceBackoff = true; |
|
83 Status.backOffInterval = 4815162342; |
|
84 Status.backOffInterval = 42; |
|
85 Status.resetBackoff(); |
|
86 |
|
87 do_check_false(Status.enforceBackoff); |
|
88 do_check_eq(Status.backoffInterval, 0); |
|
89 do_check_eq(Status.minimumNextSync, 0); |
|
90 |
|
91 } |