michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: Cu.import("resource://services-common/observers.js"); michael@0: Cu.import("resource://services-sync/engines.js"); michael@0: Cu.import("resource://services-sync/util.js"); michael@0: Cu.import("resource://testing-common/services/sync/utils.js"); michael@0: michael@0: Svc.Prefs.set("registerEngines", "Tab,Bookmarks,Form,History"); michael@0: Cu.import("resource://services-sync/service.js"); michael@0: michael@0: function run_test() { michael@0: _("When imported, Service.onStartup is called"); michael@0: initTestLogging("Trace"); michael@0: michael@0: let xps = Cc["@mozilla.org/weave/service;1"] michael@0: .getService(Ci.nsISupports) michael@0: .wrappedJSObject; michael@0: do_check_false(xps.enabled); michael@0: michael@0: // Test fixtures michael@0: Service.identity.username = "johndoe"; michael@0: do_check_false(xps.enabled); michael@0: michael@0: Cu.import("resource://services-sync/service.js"); michael@0: michael@0: _("Service is enabled."); michael@0: do_check_eq(Service.enabled, true); michael@0: michael@0: _("Engines are registered."); michael@0: let engines = Service.engineManager.getAll(); michael@0: do_check_true(Utils.deepEquals([engine.name for each (engine in engines)], michael@0: ['tabs', 'bookmarks', 'forms', 'history'])); michael@0: michael@0: _("Observers are notified of startup"); michael@0: do_test_pending(); michael@0: michael@0: do_check_false(Service.status.ready); michael@0: do_check_false(xps.ready); michael@0: Observers.add("weave:service:ready", function (subject, data) { michael@0: do_check_true(Service.status.ready); michael@0: do_check_true(xps.ready); michael@0: michael@0: // Clean up. michael@0: Svc.Prefs.resetBranch(""); michael@0: do_test_finished(); michael@0: }); michael@0: michael@0: do_check_false(xps.enabled); michael@0: michael@0: Service.identity.account = "johndoe"; michael@0: Service.clusterURL = "http://localhost/"; michael@0: do_check_true(xps.enabled); michael@0: }