services/sync/tests/unit/test_prefs_tracker.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://gre/modules/Preferences.jsm");
     5 Cu.import("resource://services-common/utils.js");
     6 Cu.import("resource://services-sync/constants.js");
     7 Cu.import("resource://services-sync/engines/prefs.js");
     8 Cu.import("resource://services-sync/service.js");
     9 Cu.import("resource://services-sync/util.js");
    11 function run_test() {
    12   let engine = Service.engineManager.get("prefs");
    13   let tracker = engine._tracker;
    15   // Don't write out by default.
    16   tracker.persistChangedIDs = false;
    18   let prefs = new Preferences();
    20   try {
    22     _("tracker.modified corresponds to preference.");
    23     do_check_eq(Svc.Prefs.get("engine.prefs.modified"), undefined);
    24     do_check_false(tracker.modified);
    26     tracker.modified = true;
    27     do_check_eq(Svc.Prefs.get("engine.prefs.modified"), true);
    28     do_check_true(tracker.modified);
    30     _("Engine's getChangedID() just returns the one GUID we have.");
    31     let changedIDs = engine.getChangedIDs();
    32     let ids = Object.keys(changedIDs);
    33     do_check_eq(ids.length, 1);
    34     do_check_eq(ids[0], CommonUtils.encodeBase64URL(Services.appinfo.ID));
    36     Svc.Prefs.set("engine.prefs.modified", false);
    37     do_check_false(tracker.modified);
    39     _("No modified state, so no changed IDs.");
    40     do_check_empty(engine.getChangedIDs());
    42     _("Initial score is 0");
    43     do_check_eq(tracker.score, 0);
    45     _("Test fixtures.");
    46     Svc.Prefs.set("prefs.sync.testing.int", true);
    48     _("Test fixtures haven't upped the tracker score yet because it hasn't started tracking yet.");
    49     do_check_eq(tracker.score, 0);
    51     _("Tell the tracker to start tracking changes.");
    52     Svc.Obs.notify("weave:engine:start-tracking");
    53     prefs.set("testing.int", 23);
    54     do_check_eq(tracker.score, SCORE_INCREMENT_XLARGE);
    55     do_check_eq(tracker.modified, true);
    57     _("Clearing changed IDs reset modified status.");
    58     tracker.clearChangedIDs();
    59     do_check_eq(tracker.modified, false);
    61     _("Resetting a pref ups the score, too.");
    62     prefs.reset("testing.int");
    63     do_check_eq(tracker.score, SCORE_INCREMENT_XLARGE * 2);
    64     do_check_eq(tracker.modified, true);
    65     tracker.clearChangedIDs();
    67     _("So does changing a pref sync pref.");
    68     Svc.Prefs.set("prefs.sync.testing.int", false);
    69     do_check_eq(tracker.score, SCORE_INCREMENT_XLARGE * 3);
    70     do_check_eq(tracker.modified, true);
    71     tracker.clearChangedIDs();
    73     _("Now that the pref sync pref has been flipped, changes to it won't be picked up.");
    74     prefs.set("testing.int", 42);
    75     do_check_eq(tracker.score, SCORE_INCREMENT_XLARGE * 3);
    76     do_check_eq(tracker.modified, false);
    77     tracker.clearChangedIDs();
    79     _("Changing some other random pref won't do anything.");
    80     prefs.set("testing.other", "blergh");
    81     do_check_eq(tracker.score, SCORE_INCREMENT_XLARGE * 3);
    82     do_check_eq(tracker.modified, false);
    84   } finally {
    85     Svc.Obs.notify("weave:engine:stop-tracking");
    86     prefs.resetBranch("");
    87   }
    88 }

mercurial