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 });