diff options
Diffstat (limited to 'browser/components/search/test/browser_hiddenOneOffs_diacritics.js')
-rw-r--r-- | browser/components/search/test/browser_hiddenOneOffs_diacritics.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/browser/components/search/test/browser_hiddenOneOffs_diacritics.js b/browser/components/search/test/browser_hiddenOneOffs_diacritics.js new file mode 100644 index 000000000..db24c7192 --- /dev/null +++ b/browser/components/search/test/browser_hiddenOneOffs_diacritics.js @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +// Tests that keyboard navigation in the search panel works as designed. + +const searchbar = document.getElementById("searchbar"); +const textbox = searchbar._textbox; +const searchPopup = document.getElementById("PopupSearchAutoComplete"); +const searchIcon = document.getAnonymousElementByAttribute(searchbar, "anonid", + "searchbar-search-button"); + +const diacritic_engine = "Foo \u2661"; + +var Preferences = + Cu.import("resource://gre/modules/Preferences.jsm", {}).Preferences; + +add_task(function* init() { + let currentEngine = Services.search.currentEngine; + yield promiseNewEngine("testEngine_diacritics.xml", {setAsCurrent: false}); + registerCleanupFunction(() => { + Services.search.currentEngine = currentEngine; + Services.prefs.clearUserPref("browser.search.hiddenOneOffs"); + }); +}); + +add_task(function* test_hidden() { + Preferences.set("browser.search.hiddenOneOffs", diacritic_engine); + + let promise = promiseEvent(searchPopup, "popupshown"); + info("Opening search panel"); + EventUtils.synthesizeMouseAtCenter(searchIcon, {}); + yield promise; + + ok(!getOneOffs().some(x => x.getAttribute("tooltiptext") == diacritic_engine), + "Search engines with diacritics are hidden when added to hiddenOneOffs preference."); + + promise = promiseEvent(searchPopup, "popuphidden"); + info("Closing search panel"); + EventUtils.synthesizeKey("VK_ESCAPE", {}); + yield promise; +}); + +add_task(function* test_shown() { + Preferences.set("browser.search.hiddenOneOffs", ""); + + let promise = promiseEvent(searchPopup, "popupshown"); + info("Opening search panel"); + SimpleTest.executeSoon(() => { + EventUtils.synthesizeMouseAtCenter(searchIcon, {}); + }); + yield promise; + + ok(getOneOffs().some(x => x.getAttribute("tooltiptext") == diacritic_engine), + "Search engines with diacritics are shown when removed from hiddenOneOffs preference."); + + promise = promiseEvent(searchPopup, "popuphidden"); + searchPopup.hidePopup(); + yield promise; +}); |