1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/services/sync/tests/unit/test_service_startOver.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,101 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +Cu.import("resource://services-sync/constants.js"); 1.8 +Cu.import("resource://services-sync/engines.js"); 1.9 +Cu.import("resource://services-sync/service.js"); 1.10 +Cu.import("resource://services-sync/util.js"); 1.11 +Cu.import("resource://testing-common/services/sync/utils.js"); 1.12 + 1.13 +function BlaEngine() { 1.14 + SyncEngine.call(this, "Bla", Service); 1.15 +} 1.16 +BlaEngine.prototype = { 1.17 + __proto__: SyncEngine.prototype, 1.18 + 1.19 + removed: false, 1.20 + removeClientData: function() { 1.21 + this.removed = true; 1.22 + } 1.23 + 1.24 +}; 1.25 + 1.26 +Service.engineManager.register(BlaEngine); 1.27 + 1.28 + 1.29 +function run_test() { 1.30 + initTestLogging("Trace"); 1.31 + run_next_test(); 1.32 +} 1.33 + 1.34 +add_identity_test(this, function test_resetLocalData() { 1.35 + yield configureIdentity(); 1.36 + Service.status.enforceBackoff = true; 1.37 + Service.status.backoffInterval = 42; 1.38 + Service.status.minimumNextSync = 23; 1.39 + Service.persistLogin(); 1.40 + 1.41 + // Verify set up. 1.42 + do_check_eq(Service.status.checkSetup(), STATUS_OK); 1.43 + 1.44 + // Verify state that the observer sees. 1.45 + let observerCalled = false; 1.46 + Svc.Obs.add("weave:service:start-over", function onStartOver() { 1.47 + Svc.Obs.remove("weave:service:start-over", onStartOver); 1.48 + observerCalled = true; 1.49 + 1.50 + do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED); 1.51 + }); 1.52 + 1.53 + Service.startOver(); 1.54 + do_check_true(observerCalled); 1.55 + 1.56 + // Verify the site was nuked from orbit. 1.57 + do_check_eq(Svc.Prefs.get("username"), undefined); 1.58 + do_check_eq(Service.identity.basicPassword, null); 1.59 + do_check_eq(Service.identity.syncKey, null); 1.60 + 1.61 + do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED); 1.62 + do_check_false(Service.status.enforceBackoff); 1.63 + do_check_eq(Service.status.backoffInterval, 0); 1.64 + do_check_eq(Service.status.minimumNextSync, 0); 1.65 +}); 1.66 + 1.67 +add_test(function test_removeClientData() { 1.68 + let engine = Service.engineManager.get("bla"); 1.69 + 1.70 + // No cluster URL = no removal. 1.71 + do_check_false(engine.removed); 1.72 + Service.startOver(); 1.73 + do_check_false(engine.removed); 1.74 + 1.75 + Service.serverURL = "https://localhost/"; 1.76 + Service.clusterURL = Service.serverURL; 1.77 + 1.78 + do_check_false(engine.removed); 1.79 + Service.startOver(); 1.80 + do_check_true(engine.removed); 1.81 + 1.82 + run_next_test(); 1.83 +}); 1.84 + 1.85 +add_test(function test_reset_SyncScheduler() { 1.86 + // Some non-default values for SyncScheduler's attributes. 1.87 + Service.scheduler.idle = true; 1.88 + Service.scheduler.hasIncomingItems = true; 1.89 + Service.scheduler.numClients = 42; 1.90 + Service.scheduler.nextSync = Date.now(); 1.91 + Service.scheduler.syncThreshold = MULTI_DEVICE_THRESHOLD; 1.92 + Service.scheduler.syncInterval = Service.scheduler.activeInterval; 1.93 + 1.94 + Service.startOver(); 1.95 + 1.96 + do_check_false(Service.scheduler.idle); 1.97 + do_check_false(Service.scheduler.hasIncomingItems); 1.98 + do_check_eq(Service.scheduler.numClients, 0); 1.99 + do_check_eq(Service.scheduler.nextSync, 0); 1.100 + do_check_eq(Service.scheduler.syncThreshold, SINGLE_USER_THRESHOLD); 1.101 + do_check_eq(Service.scheduler.syncInterval, Service.scheduler.singleDeviceInterval); 1.102 + 1.103 + run_next_test(); 1.104 +});