forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| let SELECT = "<html><body><select id='one'>";
 | |
| for (let i = 0; i < 75; i++) {
 | |
|   SELECT += `  <option>${i}${i}${i}${i}${i}</option>`;
 | |
| }
 | |
| SELECT +=
 | |
|   '  <option selected="true">{"end": "true"}</option>' +
 | |
|   "</select></body></html>";
 | |
| 
 | |
| add_setup(async function () {
 | |
|   await SpecialPowers.pushPrefEnv({
 | |
|     set: [["dom.forms.selectSearch", true]],
 | |
|   });
 | |
| });
 | |
| 
 | |
| add_task(async function test_focus_on_search_shouldnt_close_popup() {
 | |
|   const pageUrl = "data:text/html," + escape(SELECT);
 | |
|   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl);
 | |
|   let selectPopup = await openSelectPopup("mousedown");
 | |
| 
 | |
|   let searchInput = selectPopup.querySelector(
 | |
|     ".contentSelectDropdown-searchbox"
 | |
|   );
 | |
|   searchInput.scrollIntoView();
 | |
|   let searchFocused = BrowserTestUtils.waitForEvent(searchInput, "focus", true);
 | |
|   await EventUtils.synthesizeMouseAtCenter(searchInput, {}, window);
 | |
|   await searchFocused;
 | |
| 
 | |
|   is(
 | |
|     selectPopup.state,
 | |
|     "open",
 | |
|     "select popup should still be open after clicking on the search field"
 | |
|   );
 | |
| 
 | |
|   await hideSelectPopup("escape");
 | |
|   BrowserTestUtils.removeTab(tab);
 | |
| });
 | 
