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