tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_selectpopup_searchfocus.js (1162B)


      1 let SELECT = "<html><body><select id='one'>";
      2 for (let i = 0; i < 75; i++) {
      3  SELECT += `  <option>${i}${i}${i}${i}${i}</option>`;
      4 }
      5 SELECT +=
      6  '  <option selected="true">{"end": "true"}</option>' +
      7  "</select></body></html>";
      8 
      9 add_setup(async function () {
     10  await SpecialPowers.pushPrefEnv({
     11    set: [
     12      ["test.wait300msAfterTabSwitch", true],
     13      ["dom.forms.selectSearch", true],
     14    ],
     15  });
     16 });
     17 
     18 add_task(async function test_focus_on_search_shouldnt_close_popup() {
     19  const pageUrl = "data:text/html," + escape(SELECT);
     20  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
     21  let selectPopup = await openSelectPopup("mousedown");
     22 
     23  let searchInput = selectPopup.querySelector(
     24    ".contentSelectDropdown-searchbox"
     25  );
     26  searchInput.scrollIntoView();
     27  let searchFocused = BrowserTestUtils.waitForEvent(searchInput, "focus", true);
     28  await EventUtils.synthesizeMouseAtCenter(searchInput, {}, window);
     29  await searchFocused;
     30 
     31  is(
     32    selectPopup.state,
     33    "open",
     34    "select popup should still be open after clicking on the search field"
     35  );
     36 
     37  await hideSelectPopup("escape");
     38  BrowserTestUtils.removeTab(tab);
     39 });