forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D53741 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Make sure that the context menu appears on form elements */
 | 
						|
 | 
						|
add_task(async function() {
 | 
						|
  await BrowserTestUtils.openNewForegroundTab(gBrowser, "data:text/html,test");
 | 
						|
 | 
						|
  let contentAreaContextMenu = document.getElementById(
 | 
						|
    "contentAreaContextMenu"
 | 
						|
  );
 | 
						|
 | 
						|
  let tests = [
 | 
						|
    { element: "input", type: "text" },
 | 
						|
    { element: "input", type: "password" },
 | 
						|
    { element: "input", type: "image" },
 | 
						|
    { element: "input", type: "button" },
 | 
						|
    { element: "input", type: "submit" },
 | 
						|
    { element: "input", type: "reset" },
 | 
						|
    { element: "input", type: "checkbox" },
 | 
						|
    { element: "input", type: "radio" },
 | 
						|
    { element: "button" },
 | 
						|
    { element: "select" },
 | 
						|
    { element: "option" },
 | 
						|
    { element: "optgroup" },
 | 
						|
  ];
 | 
						|
 | 
						|
  for (let index = 0; index < tests.length; index++) {
 | 
						|
    let test = tests[index];
 | 
						|
 | 
						|
    await SpecialPowers.spawn(
 | 
						|
      gBrowser.selectedBrowser,
 | 
						|
      [{ element: test.element, type: test.type, index }],
 | 
						|
      async function(arg) {
 | 
						|
        let element = content.document.createElement(arg.element);
 | 
						|
        element.id = "element" + arg.index;
 | 
						|
        if (arg.type) {
 | 
						|
          element.setAttribute("type", arg.type);
 | 
						|
        }
 | 
						|
        content.document.body.appendChild(element);
 | 
						|
      }
 | 
						|
    );
 | 
						|
 | 
						|
    let popupShownPromise = BrowserTestUtils.waitForEvent(
 | 
						|
      contentAreaContextMenu,
 | 
						|
      "popupshown"
 | 
						|
    );
 | 
						|
    await BrowserTestUtils.synthesizeMouseAtCenter(
 | 
						|
      "#element" + index,
 | 
						|
      { type: "contextmenu", button: 2 },
 | 
						|
      gBrowser.selectedBrowser
 | 
						|
    );
 | 
						|
    await popupShownPromise;
 | 
						|
 | 
						|
    let typeAttr = test.type ? "type=" + test.type + " " : "";
 | 
						|
    is(
 | 
						|
      gContextMenu.shouldDisplay,
 | 
						|
      true,
 | 
						|
      "context menu behavior for <" +
 | 
						|
        test.element +
 | 
						|
        " " +
 | 
						|
        typeAttr +
 | 
						|
        "> is wrong"
 | 
						|
    );
 | 
						|
 | 
						|
    let popupHiddenPromise = BrowserTestUtils.waitForEvent(
 | 
						|
      contentAreaContextMenu,
 | 
						|
      "popuphidden"
 | 
						|
    );
 | 
						|
    contentAreaContextMenu.hidePopup();
 | 
						|
    await popupHiddenPromise;
 | 
						|
  }
 | 
						|
 | 
						|
  gBrowser.removeCurrentTab();
 | 
						|
});
 |