services/sync/tests/unit/test_service_startup.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_startup.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,54 @@
     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-common/observers.js");
     1.8 +Cu.import("resource://services-sync/engines.js");
     1.9 +Cu.import("resource://services-sync/util.js");
    1.10 +Cu.import("resource://testing-common/services/sync/utils.js");
    1.11 +
    1.12 +Svc.Prefs.set("registerEngines", "Tab,Bookmarks,Form,History");
    1.13 +Cu.import("resource://services-sync/service.js");
    1.14 +
    1.15 +function run_test() {
    1.16 +  _("When imported, Service.onStartup is called");
    1.17 +  initTestLogging("Trace");
    1.18 +
    1.19 +  let xps = Cc["@mozilla.org/weave/service;1"]
    1.20 +              .getService(Ci.nsISupports)
    1.21 +              .wrappedJSObject;
    1.22 +  do_check_false(xps.enabled);
    1.23 +
    1.24 +  // Test fixtures
    1.25 +  Service.identity.username = "johndoe";
    1.26 +  do_check_false(xps.enabled);
    1.27 +
    1.28 +  Cu.import("resource://services-sync/service.js");
    1.29 +
    1.30 +  _("Service is enabled.");
    1.31 +  do_check_eq(Service.enabled, true);
    1.32 +
    1.33 +  _("Engines are registered.");
    1.34 +  let engines = Service.engineManager.getAll();
    1.35 +  do_check_true(Utils.deepEquals([engine.name for each (engine in engines)],
    1.36 +                                 ['tabs', 'bookmarks', 'forms', 'history']));
    1.37 +
    1.38 +  _("Observers are notified of startup");
    1.39 +  do_test_pending();
    1.40 +
    1.41 +  do_check_false(Service.status.ready);
    1.42 +  do_check_false(xps.ready);
    1.43 +  Observers.add("weave:service:ready", function (subject, data) {
    1.44 +    do_check_true(Service.status.ready);
    1.45 +    do_check_true(xps.ready);
    1.46 +
    1.47 +    // Clean up.
    1.48 +    Svc.Prefs.resetBranch("");
    1.49 +    do_test_finished();
    1.50 +  });
    1.51 +
    1.52 +  do_check_false(xps.enabled);
    1.53 +
    1.54 +  Service.identity.account = "johndoe";
    1.55 +  Service.clusterURL = "http://localhost/";
    1.56 +  do_check_true(xps.enabled);
    1.57 +}

mercurial