test_service_startup.js (1680B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const { AppConstants } = ChromeUtils.importESModule( 5 "resource://gre/modules/AppConstants.sys.mjs" 6 ); 7 8 // Svc.PrefBranch.setStringPref("services.sync.log.appender.dump", "All"); 9 Svc.PrefBranch.setStringPref("registerEngines", "Tab,Bookmarks,Form,History"); 10 11 add_task(async function run_test() { 12 validate_all_future_pings(); 13 _("When imported, Service.onStartup is called"); 14 15 let xps = Cc["@mozilla.org/weave/service;1"].getService( 16 Ci.nsISupports 17 ).wrappedJSObject; 18 Assert.ok(!xps.enabled); 19 20 // Test fixtures 21 let { Service } = ChromeUtils.importESModule( 22 "resource://services-sync/service.sys.mjs" 23 ); 24 Services.prefs.setStringPref("services.sync.username", "johndoe"); 25 Assert.ok(xps.enabled); 26 27 _("Service is enabled."); 28 Assert.equal(Service.enabled, true); 29 30 _("Observers are notified of startup"); 31 Assert.ok(!Service.status.ready); 32 Assert.ok(!xps.ready); 33 34 await promiseOneObserver("weave:service:ready"); 35 36 Assert.ok(Service.status.ready); 37 Assert.ok(xps.ready); 38 39 _("Engines are registered."); 40 let engines = Service.engineManager.getAll(); 41 if (AppConstants.MOZ_APP_NAME == "thunderbird") { 42 // Thunderbird's engines are registered later, so they're not here yet. 43 Assert.deepEqual( 44 engines.map(engine => engine.name), 45 [] 46 ); 47 } else { 48 Assert.deepEqual( 49 engines.map(engine => engine.name), 50 ["tabs", "bookmarks", "forms", "history"] 51 ); 52 } 53 54 // Clean up. 55 for (const pref of Svc.PrefBranch.getChildList("")) { 56 Svc.PrefBranch.clearUserPref(pref); 57 } 58 59 do_test_finished(); 60 });