/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Bug 1295081 Test searchbox clear button's display behavior is correct
const XHTML = `
`;
const TEST_URI = "data:application/xhtml+xml;charset=utf-8," + encodeURI(XHTML);
// Type "d" in inspector-searchbox, Enter [Back space] key and check if the
// clear button is shown correctly
add_task(async function () {
const { inspector } = await openInspectorForURL(TEST_URI);
const { searchBox, searchClearButton, search } = inspector;
await focusSearchBoxUsingShortcut(inspector.panelWin);
info("Type d and the clear button will be shown");
const command = once(searchBox, "input");
let onSearchProcessingDone =
inspector.searchSuggestions.once("processing-done");
EventUtils.synthesizeKey("c", {}, inspector.panelWin);
await command;
info("Waiting for search query to complete and getting the suggestions");
await onSearchProcessingDone;
ok(
!searchClearButton.hidden,
"The clear button is shown when some word is in searchBox"
);
onSearchProcessingDone = inspector.searchSuggestions.once("processing-done");
EventUtils.synthesizeKey("VK_BACK_SPACE", {}, inspector.panelWin);
await command;
info("Waiting for search query to complete and getting the suggestions");
await onSearchProcessingDone;
ok(
searchClearButton.hidden,
"The clear button is hidden when no word is in searchBox"
);
info("Check that clear button is keyboard accessible");
onSearchProcessingDone = inspector.searchSuggestions.once("processing-done");
EventUtils.synthesizeKey("w", {}, inspector.panelWin);
await onSearchProcessingDone;
ok(
!searchClearButton.hidden,
"The clear button is shown when some word is in searchBox"
);
info("Focus clear button with Tab");
EventUtils.synthesizeKey("VK_TAB", {}, inspector.panelWin);
is(
inspector.panelDoc.activeElement,
searchClearButton,
"Search clear button is focused"
);
info("Hit Enter to clear search input");
const onSearchCleared = search.once("search-cleared");
EventUtils.synthesizeKey("VK_RETURN", {}, inspector.panelWin);
await onSearchCleared;
is(searchBox.value, "", "input was cleared");
is(
inspector.panelDoc.activeElement,
searchBox,
"input is focused after hitting the clear button"
);
});