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 +}