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