forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
   http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
const HandlerService = Cc[
 | 
						|
  "@mozilla.org/uriloader/handler-service;1"
 | 
						|
].getService(Ci.nsIHandlerService);
 | 
						|
 | 
						|
const MIMEService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
 | 
						|
 | 
						|
// This test checks that application/xml has the handle internally option.
 | 
						|
add_task(async function applicationXmlHandleInternally() {
 | 
						|
  const mimeInfo = MIMEService.getFromTypeAndExtension(
 | 
						|
    "application/xml",
 | 
						|
    "xml"
 | 
						|
  );
 | 
						|
  HandlerService.store(mimeInfo);
 | 
						|
  registerCleanupFunction(() => {
 | 
						|
    HandlerService.remove(mimeInfo);
 | 
						|
  });
 | 
						|
 | 
						|
  await openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true });
 | 
						|
 | 
						|
  let win = gBrowser.selectedBrowser.contentWindow;
 | 
						|
 | 
						|
  let container = win.document.getElementById("handlersView");
 | 
						|
 | 
						|
  // First, find the application/xml item.
 | 
						|
  let xmlItem = container.querySelector("richlistitem[type='application/xml']");
 | 
						|
  Assert.ok(xmlItem, "application/xml is present in handlersView");
 | 
						|
  if (xmlItem) {
 | 
						|
    xmlItem.scrollIntoView({ block: "center" });
 | 
						|
    xmlItem.closest("richlistbox").selectItem(xmlItem);
 | 
						|
 | 
						|
    // Open its menu
 | 
						|
    let list = xmlItem.querySelector(".actionsMenu");
 | 
						|
    let popup = list.menupopup;
 | 
						|
    let popupShown = BrowserTestUtils.waitForEvent(popup, "popupshown");
 | 
						|
    EventUtils.synthesizeMouseAtCenter(list, {}, win);
 | 
						|
    await popupShown;
 | 
						|
 | 
						|
    let handleInternallyItem = list.querySelector(
 | 
						|
      `menuitem[action='${Ci.nsIHandlerInfo.handleInternally}']`
 | 
						|
    );
 | 
						|
 | 
						|
    ok(!!handleInternallyItem, "handle internally is present");
 | 
						|
  }
 | 
						|
 | 
						|
  gBrowser.removeCurrentTab();
 | 
						|
});
 |