services/sync/tests/unit/test_service_sync_locked.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/services/sync/tests/unit/test_service_sync_locked.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,36 @@
     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/service.js");
     1.8 +Cu.import("resource://services-sync/util.js");
     1.9 +
    1.10 +function run_test() {
    1.11 +  let debug = [];
    1.12 +  let info  = [];
    1.13 +
    1.14 +  function augmentLogger(old) {
    1.15 +    let d = old.debug;
    1.16 +    let i = old.info;
    1.17 +    old.debug = function(m) { debug.push(m); d.call(old, m); }
    1.18 +    old.info  = function(m) { info.push(m);  i.call(old, m); }
    1.19 +    return old;
    1.20 +  }
    1.21 +
    1.22 +  Log.repository.rootLogger.addAppender(new Log.DumpAppender());
    1.23 +
    1.24 +  augmentLogger(Service._log);
    1.25 +
    1.26 +  // Avoid daily ping
    1.27 +  Svc.Prefs.set("lastPing", Math.floor(Date.now() / 1000));
    1.28 +
    1.29 +  _("Check that sync will log appropriately if already in 'progress'.");
    1.30 +  Service._locked = true;
    1.31 +  Service.sync();
    1.32 +  Service._locked = false;
    1.33 +
    1.34 +  do_check_eq(debug[debug.length - 2],
    1.35 +              "Exception: Could not acquire lock. Label: \"service.js: login\". No traceback available");
    1.36 +  do_check_eq(info[info.length - 1],
    1.37 +              "Cannot start sync: already syncing?");
    1.38 +}
    1.39 +

mercurial