fune/browser/components/preferences/in-content-old/tests/browser_change_app_handler.js
Jared Wein 0640b9ab0f Bug 1343682 - Create temporary killswitch for preference reorg. r=mconley
This uses the pref browser.preferences.useOldOrganization=true to use the old prefs.

MozReview-Commit-ID: DQyHYSZJTKd

--HG--
rename : browser/components/preferences/in-content/advanced.js => browser/components/preferences/in-content-old/advanced.js
rename : browser/components/preferences/in-content/advanced.xul => browser/components/preferences/in-content-old/advanced.xul
rename : browser/components/preferences/in-content/applications.js => browser/components/preferences/in-content-old/applications.js
rename : browser/components/preferences/in-content/applications.xul => browser/components/preferences/in-content-old/applications.xul
rename : browser/components/preferences/in-content/containers.js => browser/components/preferences/in-content-old/containers.js
rename : browser/components/preferences/in-content/containers.xul => browser/components/preferences/in-content-old/containers.xul
rename : browser/components/preferences/in-content/content.js => browser/components/preferences/in-content-old/content.js
rename : browser/components/preferences/in-content/content.xul => browser/components/preferences/in-content-old/content.xul
rename : browser/components/preferences/in-content/jar.mn => browser/components/preferences/in-content-old/jar.mn
rename : browser/components/preferences/in-content/main.js => browser/components/preferences/in-content-old/main.js
rename : browser/components/preferences/in-content/main.xul => browser/components/preferences/in-content-old/main.xul
rename : browser/components/preferences/in-content/moz.build => browser/components/preferences/in-content-old/moz.build
rename : browser/components/preferences/in-content/preferences.js => browser/components/preferences/in-content-old/preferences.js
rename : browser/components/preferences/in-content/preferences.xul => browser/components/preferences/in-content-old/preferences.xul
rename : browser/components/preferences/in-content/privacy.js => browser/components/preferences/in-content-old/privacy.js
rename : browser/components/preferences/in-content/privacy.xul => browser/components/preferences/in-content-old/privacy.xul
rename : browser/components/preferences/in-content/search.js => browser/components/preferences/in-content-old/search.js
rename : browser/components/preferences/in-content/search.xul => browser/components/preferences/in-content-old/search.xul
rename : browser/components/preferences/in-content/security.js => browser/components/preferences/in-content-old/security.js
rename : browser/components/preferences/in-content/security.xul => browser/components/preferences/in-content-old/security.xul
rename : browser/components/preferences/in-content/subdialogs.js => browser/components/preferences/in-content-old/subdialogs.js
rename : browser/components/preferences/in-content/sync.js => browser/components/preferences/in-content-old/sync.js
rename : browser/components/preferences/in-content/sync.xul => browser/components/preferences/in-content-old/sync.xul
rename : browser/components/preferences/in-content/tests/.eslintrc.js => browser/components/preferences/in-content-old/tests/.eslintrc.js
rename : browser/components/preferences/in-content/tests/browser.ini => browser/components/preferences/in-content-old/tests/browser.ini
rename : browser/components/preferences/in-content/tests/browser_advanced_siteData.js => browser/components/preferences/in-content-old/tests/browser_advanced_siteData.js
rename : browser/components/preferences/in-content/tests/browser_advanced_update.js => browser/components/preferences/in-content-old/tests/browser_advanced_update.js
rename : browser/components/preferences/in-content/tests/browser_applications_selection.js => browser/components/preferences/in-content-old/tests/browser_applications_selection.js
rename : browser/components/preferences/in-content/tests/browser_basic_rebuild_fonts_test.js => browser/components/preferences/in-content-old/tests/browser_basic_rebuild_fonts_test.js
rename : browser/components/preferences/in-content/tests/browser_bug1018066_resetScrollPosition.js => browser/components/preferences/in-content-old/tests/browser_bug1018066_resetScrollPosition.js
rename : browser/components/preferences/in-content/tests/browser_bug1020245_openPreferences_to_paneContent.js => browser/components/preferences/in-content-old/tests/browser_bug1020245_openPreferences_to_paneContent.js
rename : browser/components/preferences/in-content/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.js => browser/components/preferences/in-content-old/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.js
rename : browser/components/preferences/in-content/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul => browser/components/preferences/in-content-old/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul
rename : browser/components/preferences/in-content/tests/browser_bug410900.js => browser/components/preferences/in-content-old/tests/browser_bug410900.js
rename : browser/components/preferences/in-content/tests/browser_bug705422.js => browser/components/preferences/in-content-old/tests/browser_bug705422.js
rename : browser/components/preferences/in-content/tests/browser_bug731866.js => browser/components/preferences/in-content-old/tests/browser_bug731866.js
rename : browser/components/preferences/in-content/tests/browser_bug795764_cachedisabled.js => browser/components/preferences/in-content-old/tests/browser_bug795764_cachedisabled.js
rename : browser/components/preferences/in-content/tests/browser_change_app_handler.js => browser/components/preferences/in-content-old/tests/browser_change_app_handler.js
rename : browser/components/preferences/in-content/tests/browser_connection.js => browser/components/preferences/in-content-old/tests/browser_connection.js
rename : browser/components/preferences/in-content/tests/browser_connection_bug388287.js => browser/components/preferences/in-content-old/tests/browser_connection_bug388287.js
rename : browser/components/preferences/in-content/tests/browser_cookies_exceptions.js => browser/components/preferences/in-content-old/tests/browser_cookies_exceptions.js
rename : browser/components/preferences/in-content/tests/browser_defaultbrowser_alwayscheck.js => browser/components/preferences/in-content-old/tests/browser_defaultbrowser_alwayscheck.js
rename : browser/components/preferences/in-content/tests/browser_healthreport.js => browser/components/preferences/in-content-old/tests/browser_healthreport.js
rename : browser/components/preferences/in-content/tests/browser_homepages_filter_aboutpreferences.js => browser/components/preferences/in-content-old/tests/browser_homepages_filter_aboutpreferences.js
rename : browser/components/preferences/in-content/tests/browser_notifications_do_not_disturb.js => browser/components/preferences/in-content-old/tests/browser_notifications_do_not_disturb.js
rename : browser/components/preferences/in-content/tests/browser_permissions_urlFieldHidden.js => browser/components/preferences/in-content-old/tests/browser_permissions_urlFieldHidden.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_1.js => browser/components/preferences/in-content-old/tests/browser_privacypane_1.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_3.js => browser/components/preferences/in-content-old/tests/browser_privacypane_3.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_4.js => browser/components/preferences/in-content-old/tests/browser_privacypane_4.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_5.js => browser/components/preferences/in-content-old/tests/browser_privacypane_5.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_8.js => browser/components/preferences/in-content-old/tests/browser_privacypane_8.js
rename : browser/components/preferences/in-content/tests/browser_proxy_backup.js => browser/components/preferences/in-content-old/tests/browser_proxy_backup.js
rename : browser/components/preferences/in-content/tests/browser_sanitizeOnShutdown_prefLocked.js => browser/components/preferences/in-content-old/tests/browser_sanitizeOnShutdown_prefLocked.js
rename : browser/components/preferences/in-content/tests/browser_searchsuggestions.js => browser/components/preferences/in-content-old/tests/browser_searchsuggestions.js
rename : browser/components/preferences/in-content/tests/browser_security.js => browser/components/preferences/in-content-old/tests/browser_security.js
rename : browser/components/preferences/in-content/tests/browser_subdialogs.js => browser/components/preferences/in-content-old/tests/browser_subdialogs.js
rename : browser/components/preferences/in-content/tests/browser_telemetry.js => browser/components/preferences/in-content-old/tests/browser_telemetry.js
rename : browser/components/preferences/in-content/tests/head.js => browser/components/preferences/in-content-old/tests/head.js
rename : browser/components/preferences/in-content/tests/privacypane_tests_perwindow.js => browser/components/preferences/in-content-old/tests/privacypane_tests_perwindow.js
rename : browser/components/preferences/in-content/tests/site_data_test.html => browser/components/preferences/in-content-old/tests/site_data_test.html
rename : browser/components/preferences/in-content/tests/subdialog.xul => browser/components/preferences/in-content-old/tests/subdialog.xul
rename : browser/components/preferences/in-content/tests/subdialog2.xul => browser/components/preferences/in-content-old/tests/subdialog2.xul
rename : browser/locales/en-US/chrome/browser/preferences/advanced.dtd => browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd
rename : browser/locales/en-US/chrome/browser/preferences/applications.dtd => browser/locales/en-US/chrome/browser/preferences-old/applications.dtd
rename : browser/locales/en-US/chrome/browser/preferences/containers.dtd => browser/locales/en-US/chrome/browser/preferences-old/containers.dtd
rename : browser/locales/en-US/chrome/browser/preferences/containers.properties => browser/locales/en-US/chrome/browser/preferences-old/containers.properties
rename : browser/locales/en-US/chrome/browser/preferences/content.dtd => browser/locales/en-US/chrome/browser/preferences-old/content.dtd
rename : browser/locales/en-US/chrome/browser/preferences/main.dtd => browser/locales/en-US/chrome/browser/preferences-old/main.dtd
rename : browser/locales/en-US/chrome/browser/preferences/preferences.dtd => browser/locales/en-US/chrome/browser/preferences-old/preferences.dtd
rename : browser/locales/en-US/chrome/browser/preferences/preferences.properties => browser/locales/en-US/chrome/browser/preferences-old/preferences.properties
rename : browser/locales/en-US/chrome/browser/preferences/privacy.dtd => browser/locales/en-US/chrome/browser/preferences-old/privacy.dtd
rename : browser/locales/en-US/chrome/browser/preferences/search.dtd => browser/locales/en-US/chrome/browser/preferences-old/search.dtd
rename : browser/locales/en-US/chrome/browser/preferences/security.dtd => browser/locales/en-US/chrome/browser/preferences-old/security.dtd
rename : browser/locales/en-US/chrome/browser/preferences/sync.dtd => browser/locales/en-US/chrome/browser/preferences-old/sync.dtd
rename : browser/locales/en-US/chrome/browser/preferences/tabs.dtd => browser/locales/en-US/chrome/browser/preferences-old/tabs.dtd
extra : rebase_source : a2e39a4526b4938d3275978ab54bd24ed8427d1a
2017-03-22 16:56:25 -04:00

98 lines
4.3 KiB
JavaScript

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