Bug 1295081 - Fix inspector-searchinput-clear display behavior; r=gl
MozReview-Commit-ID: B7VCwAHYHyJ
--- a/devtools/client/inspector/inspector-search.js
+++ b/devtools/client/inspector/inspector-search.js
@@ -109,28 +109,26 @@ InspectorSearch.prototype = {
} else {
this.searchBox.classList.add("devtools-style-searchbox-no-match");
this.emit("search-result");
}
}),
_onInput: function () {
if (this.searchBox.value.length === 0) {
+ this.searchClearButton.hidden = true;
+ this.searchBox.removeAttribute("filled");
this._onSearch();
+ } else {
+ this.searchClearButton.hidden = false;
+ this.searchBox.setAttribute("filled", true);
}
},
_onKeyDown: function (event) {
- if (this.searchBox.value.length === 0) {
- this.searchClearButton.hidden = true;
- this.searchBox.removeAttribute("filled");
- } else {
- this.searchClearButton.hidden = false;
- this.searchBox.setAttribute("filled", true);
- }
if (event.keyCode === KeyCodes.DOM_VK_RETURN) {
this._onSearch(event.shiftKey);
}
const modifierKey = Services.appinfo.OS === "Darwin"
? event.metaKey : event.ctrlKey;
if (event.keyCode === KeyCodes.DOM_VK_G && modifierKey) {
this._onSearch(event.shiftKey);
--- a/devtools/client/inspector/test/browser.ini
+++ b/devtools/client/inspector/test/browser.ini
@@ -139,16 +139,17 @@ skip-if = os == "mac" # Full keyboard na
[browser_inspector_search-01.js]
[browser_inspector_search-02.js]
[browser_inspector_search-03.js]
[browser_inspector_search-04.js]
[browser_inspector_search-05.js]
[browser_inspector_search-06.js]
[browser_inspector_search-07.js]
[browser_inspector_search-08.js]
+[browser_inspector_search-clear.js]
[browser_inspector_search-filter_context-menu.js]
[browser_inspector_search_keyboard_trap.js]
[browser_inspector_search-label.js]
[browser_inspector_search-reserved.js]
[browser_inspector_search-selection.js]
[browser_inspector_search-sidebar.js]
[browser_inspector_select-docshell.js]
[browser_inspector_select-last-selected.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/test/browser_inspector_search-clear.js
@@ -0,0 +1,52 @@
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* 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 = `
+ <!DOCTYPE html>
+ <html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <body>
+ <svg:svg width="100" height="100">
+ <svg:clipPath>
+ <svg:rect x="0" y="0" width="10" height="5"></svg:rect>
+ </svg:clipPath>
+ <svg:circle cx="0" cy="0" r="5"></svg:circle>
+ </svg:svg>
+ </body>
+ </html>
+`;
+
+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(function* () {
+ let {inspector} = yield openInspectorForURL(TEST_URI);
+ let {searchBox, searchClearButton} = inspector;
+
+ yield focusSearchBoxUsingShortcut(inspector.panelWin);
+
+ info("Type d and the clear button will be shown");
+
+ let command = once(searchBox, "input");
+ EventUtils.synthesizeKey("c", {}, inspector.panelWin);
+ yield command;
+
+ info("Waiting for search query to complete and getting the suggestions");
+ yield inspector.searchSuggestions._lastQuery;
+
+ ok(!searchClearButton.hidden,
+ "The clear button is shown when some word is in searchBox");
+
+ EventUtils.synthesizeKey("VK_BACK_SPACE", {}, inspector.panelWin);
+ yield command;
+
+ info("Waiting for search query to complete and getting the suggestions");
+ yield inspector.searchSuggestions._lastQuery;
+
+ ok(searchClearButton.hidden, "The clear button is hidden when no word is in searchBox");
+});