1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/services/sync/tests/unit/test_status.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,91 @@ 1.4 +Cu.import("resource://services-sync/constants.js"); 1.5 +Cu.import("resource://services-sync/status.js"); 1.6 + 1.7 +function run_test() { 1.8 + 1.9 + // Check initial states 1.10 + do_check_false(Status.enforceBackoff); 1.11 + do_check_eq(Status.backoffInterval, 0); 1.12 + do_check_eq(Status.minimumNextSync, 0); 1.13 + 1.14 + do_check_eq(Status.service, STATUS_OK); 1.15 + do_check_eq(Status.sync, SYNC_SUCCEEDED); 1.16 + do_check_eq(Status.login, LOGIN_SUCCEEDED); 1.17 + for (let name in Status.engines) { 1.18 + do_throw('Status.engines should be empty.'); 1.19 + } 1.20 + do_check_eq(Status.partial, false); 1.21 + 1.22 + 1.23 + // Check login status 1.24 + for each (let code in [LOGIN_FAILED_NO_USERNAME, 1.25 + LOGIN_FAILED_NO_PASSWORD, 1.26 + LOGIN_FAILED_NO_PASSPHRASE]) { 1.27 + Status.login = code; 1.28 + do_check_eq(Status.login, code); 1.29 + do_check_eq(Status.service, CLIENT_NOT_CONFIGURED); 1.30 + Status.resetSync(); 1.31 + } 1.32 + 1.33 + Status.login = LOGIN_FAILED; 1.34 + do_check_eq(Status.login, LOGIN_FAILED); 1.35 + do_check_eq(Status.service, LOGIN_FAILED); 1.36 + Status.resetSync(); 1.37 + 1.38 + Status.login = LOGIN_SUCCEEDED; 1.39 + do_check_eq(Status.login, LOGIN_SUCCEEDED); 1.40 + do_check_eq(Status.service, STATUS_OK); 1.41 + Status.resetSync(); 1.42 + 1.43 + 1.44 + // Check sync status 1.45 + Status.sync = SYNC_FAILED; 1.46 + do_check_eq(Status.sync, SYNC_FAILED); 1.47 + do_check_eq(Status.service, SYNC_FAILED); 1.48 + 1.49 + Status.sync = SYNC_SUCCEEDED; 1.50 + do_check_eq(Status.sync, SYNC_SUCCEEDED); 1.51 + do_check_eq(Status.service, STATUS_OK); 1.52 + 1.53 + Status.resetSync(); 1.54 + 1.55 + 1.56 + // Check engine status 1.57 + Status.engines = ["testEng1", ENGINE_SUCCEEDED]; 1.58 + do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); 1.59 + do_check_eq(Status.service, STATUS_OK); 1.60 + 1.61 + Status.engines = ["testEng2", ENGINE_DOWNLOAD_FAIL]; 1.62 + do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); 1.63 + do_check_eq(Status.engines["testEng2"], ENGINE_DOWNLOAD_FAIL); 1.64 + do_check_eq(Status.service, SYNC_FAILED_PARTIAL); 1.65 + 1.66 + Status.engines = ["testEng3", ENGINE_SUCCEEDED]; 1.67 + do_check_eq(Status.engines["testEng1"], ENGINE_SUCCEEDED); 1.68 + do_check_eq(Status.engines["testEng2"], ENGINE_DOWNLOAD_FAIL); 1.69 + do_check_eq(Status.engines["testEng3"], ENGINE_SUCCEEDED); 1.70 + do_check_eq(Status.service, SYNC_FAILED_PARTIAL); 1.71 + 1.72 + 1.73 + // Check resetSync 1.74 + Status.sync = SYNC_FAILED; 1.75 + Status.resetSync(); 1.76 + 1.77 + do_check_eq(Status.service, STATUS_OK); 1.78 + do_check_eq(Status.sync, SYNC_SUCCEEDED); 1.79 + for (name in Status.engines) { 1.80 + do_throw('Status.engines should be empty.'); 1.81 + } 1.82 + 1.83 + 1.84 + // Check resetBackoff 1.85 + Status.enforceBackoff = true; 1.86 + Status.backOffInterval = 4815162342; 1.87 + Status.backOffInterval = 42; 1.88 + Status.resetBackoff(); 1.89 + 1.90 + do_check_false(Status.enforceBackoff); 1.91 + do_check_eq(Status.backoffInterval, 0); 1.92 + do_check_eq(Status.minimumNextSync, 0); 1.93 + 1.94 +}