diff options
Diffstat (limited to 'browser/components/preferences/in-content/tests/browser_change_app_handler.js')
-rw-r--r-- | browser/components/preferences/in-content/tests/browser_change_app_handler.js | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/browser/components/preferences/in-content/tests/browser_change_app_handler.js b/browser/components/preferences/in-content/tests/browser_change_app_handler.js deleted file mode 100644 index f66cdfd37..000000000 --- a/browser/components/preferences/in-content/tests/browser_change_app_handler.js +++ /dev/null @@ -1,98 +0,0 @@ -var gMimeSvc = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService); -var gHandlerSvc = Cc["@mozilla.org/uriloader/handler-service;1"].getService(Ci.nsIHandlerService); - -SimpleTest.requestCompleteLog(); - -function setupFakeHandler() { - let info = gMimeSvc.getFromTypeAndExtension("text/plain", "foo.txt"); - ok(info.possibleLocalHandlers.length, "Should have at least one known handler"); - let handler = info.possibleLocalHandlers.queryElementAt(0, Ci.nsILocalHandlerApp); - - let infoToModify = gMimeSvc.getFromTypeAndExtension("text/x-test-handler", null); - infoToModify.possibleApplicationHandlers.appendElement(handler, false); - - gHandlerSvc.store(infoToModify); -} - -add_task(function*() { - setupFakeHandler(); - yield openPreferencesViaOpenPreferencesAPI("applications", null, {leaveOpen: true}); - info("Preferences page opened on the applications pane."); - let win = gBrowser.selectedBrowser.contentWindow; - - let container = win.document.getElementById("handlersView"); - let ourItem = container.querySelector("richlistitem[type='text/x-test-handler']"); - ok(ourItem, "handlersView is present"); - ourItem.scrollIntoView(); - container.selectItem(ourItem); - ok(ourItem.selected, "Should be able to select our item."); - - let list = yield waitForCondition(() => win.document.getAnonymousElementByAttribute(ourItem, "class", "actionsMenu")); - info("Got list after item was selected"); - - let chooseItem = list.firstChild.querySelector(".choose-app-item"); - let dialogLoadedPromise = promiseLoadSubDialog("chrome://global/content/appPicker.xul"); - let cmdEvent = win.document.createEvent("xulcommandevent"); - cmdEvent.initCommandEvent("command", true, true, win, 0, false, false, false, false, null); - chooseItem.dispatchEvent(cmdEvent); - - let dialog = yield dialogLoadedPromise; - info("Dialog loaded"); - - let dialogDoc = dialog.document; - let dialogList = dialogDoc.getElementById("app-picker-listbox"); - dialogList.selectItem(dialogList.firstChild); - let selectedApp = dialogList.firstChild.handlerApp; - dialogDoc.documentElement.acceptDialog(); - - // Verify results are correct in mime service: - let mimeInfo = gMimeSvc.getFromTypeAndExtension("text/x-test-handler", null); - ok(mimeInfo.preferredApplicationHandler.equals(selectedApp), "App should be set as preferred."); - - // Check that we display this result: - list = yield waitForCondition(() => win.document.getAnonymousElementByAttribute(ourItem, "class", "actionsMenu")); - info("Got list after item was selected"); - ok(list.selectedItem, "Should have a selected item"); - ok(mimeInfo.preferredApplicationHandler.equals(list.selectedItem.handlerApp), - "App should be visible as preferred item."); - - - // Now try to 'manage' this list: - dialogLoadedPromise = promiseLoadSubDialog("chrome://browser/content/preferences/applicationManager.xul"); - - let manageItem = list.firstChild.querySelector(".manage-app-item"); - cmdEvent = win.document.createEvent("xulcommandevent"); - cmdEvent.initCommandEvent("command", true, true, win, 0, false, false, false, false, null); - manageItem.dispatchEvent(cmdEvent); - - dialog = yield dialogLoadedPromise; - info("Dialog loaded the second time"); - - dialogDoc = dialog.document; - dialogList = dialogDoc.getElementById("appList"); - let itemToRemove = dialogList.querySelector('listitem[label="' + selectedApp.name + '"]'); - dialogList.selectItem(itemToRemove); - let itemsBefore = dialogList.children.length; - dialogDoc.getElementById("remove").click(); - ok(!itemToRemove.parentNode, "Item got removed from DOM"); - is(dialogList.children.length, itemsBefore - 1, "Item got removed"); - dialogDoc.documentElement.acceptDialog(); - - // Verify results are correct in mime service: - mimeInfo = gMimeSvc.getFromTypeAndExtension("text/x-test-handler", null); - ok(!mimeInfo.preferredApplicationHandler, "App should no longer be set as preferred."); - - // Check that we display this result: - list = yield waitForCondition(() => win.document.getAnonymousElementByAttribute(ourItem, "class", "actionsMenu")); - ok(list.selectedItem, "Should have a selected item"); - ok(!list.selectedItem.handlerApp, - "No app should be visible as preferred item."); - - gBrowser.removeCurrentTab(); -}); - -registerCleanupFunction(function() { - let infoToModify = gMimeSvc.getFromTypeAndExtension("text/x-test-handler", null); - gHandlerSvc.remove(infoToModify); -}); - |