services/sync/tests/unit/test_service_startOver.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     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");
    10 function BlaEngine() {
    11   SyncEngine.call(this, "Bla", Service);
    12 }
    13 BlaEngine.prototype = {
    14   __proto__: SyncEngine.prototype,
    16   removed: false,
    17   removeClientData: function() {
    18     this.removed = true;
    19   }
    21 };
    23 Service.engineManager.register(BlaEngine);
    26 function run_test() {
    27   initTestLogging("Trace");
    28   run_next_test();
    29 }
    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();
    38   // Verify set up.
    39   do_check_eq(Service.status.checkSetup(), STATUS_OK);
    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;
    47     do_check_eq(Service.status.service, CLIENT_NOT_CONFIGURED);
    48   });
    50   Service.startOver();
    51   do_check_true(observerCalled);
    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);
    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 });
    64 add_test(function test_removeClientData() {
    65   let engine = Service.engineManager.get("bla");
    67   // No cluster URL = no removal.
    68   do_check_false(engine.removed);
    69   Service.startOver();
    70   do_check_false(engine.removed);
    72   Service.serverURL = "https://localhost/";
    73   Service.clusterURL = Service.serverURL;
    75   do_check_false(engine.removed);
    76   Service.startOver();
    77   do_check_true(engine.removed);
    79   run_next_test();
    80 });
    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;
    91   Service.startOver();
    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);
   100   run_next_test();
   101 });

mercurial