<?xml version="1.0"?> <!-- 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/. --> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <window id="409624test" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" width="600" height="600" title="409624 test"> <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/> <script type="application/javascript"><![CDATA[ const {BrowserTestUtils} = ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm"); var gFindBar = null; var gBrowser; var SimpleTest = window.arguments[0].SimpleTest; var ok = window.arguments[0].ok; var is = window.arguments[0].is; function finish() { window.close(); SimpleTest.finish(); } function startTest() { gFindBar = document.getElementById("FindToolbar"); gBrowser = document.getElementById("content"); gBrowser.addEventListener("pageshow", onPageShow, { once: true }); BrowserTestUtils.loadURIString(gBrowser, 'data:text/html,<h2>Text mozilla</h2><input id="inp" type="text" />'); } function onPageShow() { gFindBar.clear(); let textbox = gFindBar.getElement("findbar-textbox"); // Clear should work regardless of whether the editor has been lazily // initialised yet ok(!gFindBar.hasTransactions, "No transactions when findbar empty"); textbox.value = "mozilla"; ok(gFindBar.hasTransactions, "Has transactions when findbar value set without editor init"); gFindBar.clear(); is(textbox.value, '', "findbar input value cleared after clear() call without editor init"); ok(!gFindBar.hasTransactions, "No transactions after clear() call"); gFindBar.open(); let matchCaseCheckbox = gFindBar.getElement("find-case-sensitive"); if (!matchCaseCheckbox.hidden && matchCaseCheckbox.checked) matchCaseCheckbox.click(); ok(!matchCaseCheckbox.checked, "case-insensitivity correctly set"); // Simulate typical input textbox.focus(); gFindBar.clear(); sendChar("m"); ok(gFindBar.hasTransactions, "Has transactions after input"); let preSelection = gBrowser.contentWindow.getSelection(); ok(!preSelection.isCollapsed, "Found item and selected range"); gFindBar.clear(); is(textbox.value, '', "findbar input value cleared after clear() call"); let postSelection = gBrowser.contentWindow.getSelection(); ok(postSelection.isCollapsed, "item found deselected after clear() call"); let fp = gFindBar.getElement("find-previous"); ok(fp.disabled, "find-previous button disabled after clear() call"); let fn = gFindBar.getElement("find-next"); ok(fn.disabled, "find-next button disabled after clear() call"); // Test status updated after a search for text not in page textbox.focus(); sendChar("x"); gFindBar.clear(); let ftext = gFindBar.getElement("find-status"); is(ftext.textContent, "", "status text disabled after clear() call"); // Test input empty with undo stack non-empty textbox.focus(); sendChar("m"); sendKey("BACK_SPACE"); ok(gFindBar.hasTransactions, "Has transactions when undo available"); gFindBar.clear(); gFindBar.close(); finish(); } SimpleTest.waitForFocus(startTest, window); ]]></script> <browser type="content" primary="true" flex="1" id="content" messagemanagergroup="test" src="about:blank"/> <findbar id="FindToolbar" browserid="content"/> </window>