forked from mirrors/gecko-dev
		
	 bd38b39f8a
			
		
	
	
		bd38b39f8a
		
	
	
	
	
		
			
			This converts the tabmodalprompt binding to a class, to be constructed along side with the element by TabModalPromptBox. TabModalPromptBox will keep the instances in a map and pass it to the callers, instead of the element. The tests and callers can access the class instance by passing the element reference to the map. Differential Revision: https://phabricator.services.mozilla.com/D15505 --HG-- rename : toolkit/components/prompts/content/tabprompts.xml => toolkit/components/prompts/content/tabprompts.jsm extra : moz-landing-system : lando
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const URL =
 | |
|   "https://example.com/browser/dom/tests/browser/prevent_return_key.html";
 | |
| 
 | |
| // Wait for alert dialog and dismiss it immediately.
 | |
| function awaitAndCloseAlertDialog() {
 | |
|   return new Promise(resolve => {
 | |
|     function onDialogShown(node) {
 | |
|       Services.obs.removeObserver(onDialogShown, "tabmodal-dialog-loaded");
 | |
|       let button = node.querySelector(".tabmodalprompt-button0");
 | |
|       button.click();
 | |
|       resolve();
 | |
|     }
 | |
|     Services.obs.addObserver(onDialogShown, "tabmodal-dialog-loaded");
 | |
|   });
 | |
| }
 | |
| 
 | |
| add_task(async function() {
 | |
|   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, URL);
 | |
|   let browser = tab.linkedBrowser;
 | |
| 
 | |
|   // Focus and enter random text on input.
 | |
|   await ContentTask.spawn(browser, null, async function() {
 | |
|     let input = content.document.getElementById("input");
 | |
|     input.focus();
 | |
|     input.value = "abcd";
 | |
|   });
 | |
| 
 | |
|   // Send return key (cross process) to submit the form implicitly.
 | |
|   let dialogShown = awaitAndCloseAlertDialog();
 | |
|   EventUtils.synthesizeKey("KEY_Enter");
 | |
|   await dialogShown;
 | |
| 
 | |
|   // Check that the form should not have been submitted.
 | |
|   await ContentTask.spawn(browser, null, async function() {
 | |
|     let result = content.document.getElementById("result").innerHTML;
 | |
|     info("submit result: " + result);
 | |
|     is(result, "not submitted", "form should not have submitted");
 | |
|   });
 | |
| 
 | |
|   gBrowser.removeCurrentTab();
 | |
| });
 |