diff options
Diffstat (limited to 'browser/components/newtab/tests/xpcshell/test_NewTabSearchProvider.js')
-rw-r--r-- | browser/components/newtab/tests/xpcshell/test_NewTabSearchProvider.js | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/browser/components/newtab/tests/xpcshell/test_NewTabSearchProvider.js b/browser/components/newtab/tests/xpcshell/test_NewTabSearchProvider.js deleted file mode 100644 index 3e60b282a..000000000 --- a/browser/components/newtab/tests/xpcshell/test_NewTabSearchProvider.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; - -/* global XPCOMUtils, NewTabSearchProvider, run_next_test, ok, equal, do_check_true, do_get_profile, Services */ -/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */ - -const Cu = Components.utils; -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "NewTabSearchProvider", - "resource:///modules/NewTabSearchProvider.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "ContentSearch", - "resource:///modules/ContentSearch.jsm"); - -// ensure a profile exists -do_get_profile(); - -function run_test() { - run_next_test(); -} - -function hasProp(obj) { - return function(aProp) { - ok(obj.hasOwnProperty(aProp), `expect to have property ${aProp}`); - }; -} - -add_task(function* test_search() { - ContentSearch.init(); - let observerPromise = new Promise(resolve => { - Services.obs.addObserver(function observer(aSubject, aTopic, aData) { - if (aData === "init-complete" && aTopic === "browser-search-service") { - Services.obs.removeObserver(observer, "browser-search-service"); - resolve(); - } - }, "browser-search-service", false); - }); - Services.search.init(); - yield observerPromise; - do_check_true(Services.search.isInitialized); - - // get initial state of search and check it has correct properties - let state = yield NewTabSearchProvider.search.asyncGetState(); - let stateProps = hasProp(state); - ["engines", "currentEngine"].forEach(stateProps); - - // check that the current engine is correct and has correct properties - let {currentEngine} = state; - equal(currentEngine.name, Services.search.currentEngine.name, "Current engine has been correctly set"); - var engineProps = hasProp(currentEngine); - ["name", "placeholder", "iconBuffer"].forEach(engineProps); - - // create dummy test engines to test observer - Services.search.addEngineWithDetails("TestSearch1", "", "", "", "GET", - "http://example.com/?q={searchTerms}"); - Services.search.addEngineWithDetails("TestSearch2", "", "", "", "GET", - "http://example.com/?q={searchTerms}"); - - // set one of the dummy test engines to the default engine - Services.search.defaultEngine = Services.search.getEngineByName("TestSearch1"); - - // test that the event emitter is working by setting a new current engine "TestSearch2" - let engineName = "TestSearch2"; - NewTabSearchProvider.search.init(); - - // event emitter will fire when current engine is changed - let promise = new Promise(resolve => { - NewTabSearchProvider.search.once("browser-search-engine-modified", (name, data) => { // jshint ignore:line - resolve([name, data.name]); - }); - }); - - // set a new current engine - Services.search.currentEngine = Services.search.getEngineByName(engineName); - let expectedEngineName = Services.search.currentEngine.name; - - // emitter should fire and return the new engine - let [eventName, actualEngineName] = yield promise; - equal(eventName, "browser-search-engine-modified", `emitter sent the correct event ${eventName}`); - equal(expectedEngineName, actualEngineName, `emitter set the correct engine ${expectedEngineName}`); - NewTabSearchProvider.search.uninit(); -}); |