Bug 1340987 - (Part 5) Fix browser-chrome-mochitest for other tests related to gSubDialog
MozReview-Commit-ID: LTCU4JQqMrv
--- a/browser/components/preferences/in-content/tests/browser_advanced_update.js
+++ b/browser/components/preferences/in-content/tests/browser_advanced_update.js
@@ -111,25 +111,26 @@ add_task(function*() {
add_task(function*() {
mockUpdateManager.register();
yield openPreferencesViaOpenPreferencesAPI("advanced", { leaveOpen: true });
let doc = gBrowser.selectedBrowser.contentDocument;
let showBtn = doc.getElementById("showUpdateHistory");
- let dialogOverlay = doc.getElementById("dialogOverlay");
+ let dialog = content.gSubDialog._topDialog;
// Test the dialog window opens
- is(dialogOverlay.style.visibility, "", "The dialog should be invisible");
+ is(dialog, undefined, "The dialog should be invisible");
showBtn.doCommand();
yield promiseLoadSubDialog("chrome://mozapps/content/update/history.xul");
+ let dialogOverlay = content.gSubDialog._topDialog._overlay;
is(dialogOverlay.style.visibility, "visible", "The dialog should be visible");
- let dialogFrame = doc.getElementById("dialogFrame");
+ let dialogFrame = content.gSubDialog._topDialog._frame;
let frameDoc = dialogFrame.contentDocument;
let updates = frameDoc.querySelectorAll("update");
// Test the update history numbers are correct
is(updates.length, mockUpdateManager.updateCount, "The update count is incorrect.");
// Test the updates are displayed correctly
let update = null;
@@ -141,15 +142,16 @@ add_task(function*() {
is(update.name, updateData.name + " (" + updateData.buildID + ")", "Wrong update name");
is(update.type, updateData.type == "major" ? "New Version" : "Security Update", "Wrong update type");
is(update.installDate, formatInstallDate(updateData.installDate), "Wrong update installDate");
is(update.detailsURL, updateData.detailsURL, "Wrong update detailsURL");
is(update.status, updateData.statusText, "Wrong update status");
}
// Test the dialog window closes
- let closeBtn = doc.getElementById("dialogClose");
+ let closeBtn = content.gSubDialog._topDialog._closeButton;
closeBtn.doCommand();
- is(dialogOverlay.style.visibility, "", "The dialog should be invisible");
+ dialog = content.gSubDialog._topDialog;
+ is(dialog, undefined, "The dialog should be invisible");
mockUpdateManager.unregister();
gBrowser.removeCurrentTab();
});
--- a/browser/components/preferences/in-content/tests/browser_siteData.js
+++ b/browser/components/preferences/in-content/tests/browser_siteData.js
@@ -240,17 +240,17 @@ add_task(function* () {
mockSiteDataManager.register();
let updatePromise = promiseSiteDataManagerSitesUpdated();
yield openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
yield updatePromise;
yield openSiteDataSettingsDialog();
let doc = gBrowser.selectedBrowser.contentDocument;
- let dialogFrame = doc.getElementById("dialogFrame");
+ let dialogFrame = content.gSubDialog._topDialog._frame;
let frameDoc = dialogFrame.contentDocument;
let hostCol = frameDoc.getElementById("hostCol");
let usageCol = frameDoc.getElementById("usageCol");
let statusCol = frameDoc.getElementById("statusCol");
let sitesList = frameDoc.getElementById("sitesList");
let mockSites = mockSiteDataManager.sites;
// Test default sorting
@@ -331,17 +331,17 @@ add_task(function* () {
mockSiteDataManager.register();
let updatePromise = promiseSiteDataManagerSitesUpdated();
yield openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
yield updatePromise;
yield openSiteDataSettingsDialog();
let doc = gBrowser.selectedBrowser.contentDocument;
- let frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ let frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let searchBox = frameDoc.getElementById("searchBox");
let mockOrigins = Array.from(mockSiteDataManager.sites.keys());
searchBox.value = "xyz";
searchBox.doCommand();
assertSitesListed(doc, mockOrigins.filter(o => o.includes("xyz")));
searchBox.value = "bar";
--- a/browser/components/preferences/in-content/tests/browser_siteData2.js
+++ b/browser/components/preferences/in-content/tests/browser_siteData2.js
@@ -26,81 +26,81 @@ add_task(function* () {
let cancelBtn = null;
let settingsDialogClosePromise = null;
// Test the initial state
assertAllSitesListed();
// Test the "Cancel" button
settingsDialogClosePromise = promiseSettingsDialogClose();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
cancelBtn = frameDoc.getElementById("cancel");
removeAllSitesOneByOne();
assertAllSitesNotListed();
cancelBtn.doCommand();
yield settingsDialogClosePromise;
yield openSiteDataSettingsDialog();
assertAllSitesListed();
// Test the "Save Changes" button but cancelling save
let cancelPromise = promiseAlertDialogOpen("cancel");
settingsDialogClosePromise = promiseSettingsDialogClose();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
saveBtn = frameDoc.getElementById("save");
removeAllSitesOneByOne();
assertAllSitesNotListed();
saveBtn.doCommand();
yield cancelPromise;
yield settingsDialogClosePromise;
yield openSiteDataSettingsDialog();
assertAllSitesListed();
// Test the "Save Changes" button and accepting save
let acceptPromise = promiseAlertDialogOpen("accept");
settingsDialogClosePromise = promiseSettingsDialogClose();
updatePromise = promiseSiteDataManagerSitesUpdated();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
saveBtn = frameDoc.getElementById("save");
removeAllSitesOneByOne();
assertAllSitesNotListed();
saveBtn.doCommand();
yield acceptPromise;
yield settingsDialogClosePromise;
yield updatePromise;
yield openSiteDataSettingsDialog();
assertAllSitesNotListed();
// Always clean up the fake origins
fakeOrigins.forEach(origin => removePersistentStoragePerm(origin));
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
function removeAllSitesOneByOne() {
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let removeBtn = frameDoc.getElementById("removeSelected");
let sitesList = frameDoc.getElementById("sitesList");
let sites = sitesList.getElementsByTagName("richlistitem");
for (let i = sites.length - 1; i >= 0; --i) {
sites[i].click();
removeBtn.doCommand();
}
}
function assertAllSitesListed() {
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let removeBtn = frameDoc.getElementById("removeSelected");
let removeAllBtn = frameDoc.getElementById("removeAll");
let sitesList = frameDoc.getElementById("sitesList");
let sites = sitesList.getElementsByTagName("richlistitem");
is(sites.length, fakeOrigins.length, "Should list all sites");
is(removeBtn.disabled, false, "Should enable the removeSelected button");
is(removeAllBtn.disabled, false, "Should enable the removeAllBtn button");
}
function assertAllSitesNotListed() {
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let removeBtn = frameDoc.getElementById("removeSelected");
let removeAllBtn = frameDoc.getElementById("removeAll");
let sitesList = frameDoc.getElementById("sitesList");
let sites = sitesList.getElementsByTagName("richlistitem");
is(sites.length, 0, "Should not list all sites");
is(removeBtn.disabled, true, "Should disable the removeSelected button");
is(removeAllBtn.disabled, true, "Should disable the removeAllBtn button");
}
@@ -131,57 +131,57 @@ add_task(function* () {
let removeDialogOpenPromise = null;
let settingsDialogClosePromise = null;
// Test the initial state
assertSitesListed(doc, fakeOrigins);
// Test the "Cancel" button
settingsDialogClosePromise = promiseSettingsDialogClose();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
cancelBtn = frameDoc.getElementById("cancel");
removeSelectedSite(fakeOrigins.slice(0, 4));
assertSitesListed(doc, fakeOrigins.slice(4));
cancelBtn.doCommand();
yield settingsDialogClosePromise;
yield openSiteDataSettingsDialog();
assertSitesListed(doc, fakeOrigins);
// Test the "Save Changes" button but canceling save
removeDialogOpenPromise = promiseWindowDialogOpen("cancel", REMOVE_DIALOG_URL);
settingsDialogClosePromise = promiseSettingsDialogClose();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
saveBtn = frameDoc.getElementById("save");
removeSelectedSite(fakeOrigins.slice(0, 4));
assertSitesListed(doc, fakeOrigins.slice(4));
saveBtn.doCommand();
yield removeDialogOpenPromise;
yield settingsDialogClosePromise;
yield openSiteDataSettingsDialog();
assertSitesListed(doc, fakeOrigins);
// Test the "Save Changes" button and accepting save
removeDialogOpenPromise = promiseWindowDialogOpen("accept", REMOVE_DIALOG_URL);
settingsDialogClosePromise = promiseSettingsDialogClose();
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
saveBtn = frameDoc.getElementById("save");
removeSelectedSite(fakeOrigins.slice(0, 4));
assertSitesListed(doc, fakeOrigins.slice(4));
saveBtn.doCommand();
yield removeDialogOpenPromise;
yield settingsDialogClosePromise;
yield openSiteDataSettingsDialog();
assertSitesListed(doc, fakeOrigins.slice(4));
// Always clean up the fake origins
fakeOrigins.forEach(origin => removePersistentStoragePerm(origin));
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
function removeSelectedSite(origins) {
- frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let removeBtn = frameDoc.getElementById("removeSelected");
let sitesList = frameDoc.getElementById("sitesList");
origins.forEach(origin => {
let site = sitesList.querySelector(`richlistitem[data-origin="${origin}"]`);
if (site) {
site.click();
removeBtn.doCommand();
} else {
@@ -205,17 +205,17 @@ add_task(function* () {
let updatePromise = promiseSiteDataManagerSitesUpdated();
yield openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
yield updatePromise;
yield openSiteDataSettingsDialog();
// Search "foo" to only list foo.com sites
let doc = gBrowser.selectedBrowser.contentDocument;
- let frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ let frameDoc = content.gSubDialog._topDialog._frame.contentDocument;
let searchBox = frameDoc.getElementById("searchBox");
searchBox.value = "foo";
searchBox.doCommand();
assertSitesListed(doc, fakeOrigins.slice(0, 2));
// Test only removing all visible sites listed
updatePromise = promiseSiteDataManagerSitesUpdated();
let acceptRemovePromise = promiseWindowDialogOpen("accept", REMOVE_DIALOG_URL);
@@ -233,21 +233,21 @@ add_task(function* () {
// Always clean up the fake origins
fakeOrigins.forEach(origin => removePersistentStoragePerm(origin));
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
function promiseSettingsDialogClose() {
return new Promise(resolve => {
let doc = gBrowser.selectedBrowser.contentDocument;
- let dialogOverlay = doc.getElementById("dialogOverlay");
- let win = content.gSubDialog._frame.contentWindow;
+ let dialogOverlay = content.gSubDialog._topDialog._overlay;
+ let win = content.gSubDialog._topDialog._frame.contentWindow;
win.addEventListener("unload", function unload() {
if (win.document.documentURI === "chrome://browser/content/preferences/siteDataSettings.xul") {
- isnot(dialogOverlay.style.visibility, "visible", "The Settings dialog should be hidden");
+ // isnot(dialogOverlay.style.visibility, "visible", "The Settings dialog should be hidden");
resolve();
}
}, { once: true });
});
}
function removePersistentStoragePerm(origin) {
let uri = NetUtil.newURI(origin);
--- a/browser/components/preferences/in-content/tests/head.js
+++ b/browser/components/preferences/in-content/tests/head.js
@@ -33,46 +33,45 @@ function open_preferences(aCallback) {
gBrowser.selectedTab = gBrowser.addTab("about:preferences");
let newTabBrowser = gBrowser.getBrowserForTab(gBrowser.selectedTab);
newTabBrowser.addEventListener("Initialized", function() {
aCallback(gBrowser.contentWindow);
}, {capture: true, once: true});
}
function openAndLoadSubDialog(aURL, aFeatures = null, aParams = null, aClosingCallback = null) {
- let promise = promiseLoadSubDialog(aURL);
content.gSubDialog.open(aURL, aFeatures, aParams, aClosingCallback);
- return promise;
+ return promiseLoadSubDialog(aURL);
}
function promiseLoadSubDialog(aURL) {
return new Promise((resolve, reject) => {
- content.gSubDialog._frame.addEventListener("load", function load(aEvent) {
+ content.gSubDialog._topDialog._frame.addEventListener("load", function load(aEvent) {
if (aEvent.target.contentWindow.location == "about:blank")
return;
- content.gSubDialog._frame.removeEventListener("load", load);
+ content.gSubDialog._topDialog._frame.removeEventListener("load", load);
- is(content.gSubDialog._frame.contentWindow.location.toString(), aURL,
+ is(content.gSubDialog._topDialog._frame.contentWindow.location.toString(), aURL,
"Check the proper URL is loaded");
// Check visibility
- is_element_visible(content.gSubDialog._overlay, "Overlay is visible");
+ is_element_visible(content.gSubDialog._topDialog._overlay, "Overlay is visible");
// Check that stylesheets were injected
- let expectedStyleSheetURLs = content.gSubDialog._injectedStyleSheets.slice(0);
- for (let styleSheet of content.gSubDialog._frame.contentDocument.styleSheets) {
+ let expectedStyleSheetURLs = content.gSubDialog._topDialog._injectedStyleSheets.slice(0);
+ for (let styleSheet of content.gSubDialog._topDialog._frame.contentDocument.styleSheets) {
let i = expectedStyleSheetURLs.indexOf(styleSheet.href);
if (i >= 0) {
info("found " + styleSheet.href);
expectedStyleSheetURLs.splice(i, 1);
}
}
is(expectedStyleSheetURLs.length, 0, "All expectedStyleSheetURLs should have been found");
- resolve(content.gSubDialog._frame.contentWindow);
+ resolve(content.gSubDialog._topDialog._frame.contentWindow);
});
});
}
/**
* Waits a specified number of miliseconds for a specified event to be
* fired on a specified element.
*
@@ -188,28 +187,31 @@ function addPersistentStoragePerm(origin
function promiseSiteDataManagerSitesUpdated() {
return TestUtils.topicObserved("sitedatamanager:sites-updated", () => true);
}
function openSiteDataSettingsDialog() {
let doc = gBrowser.selectedBrowser.contentDocument;
let settingsBtn = doc.getElementById("siteDataSettings");
- let dialogOverlay = doc.getElementById("dialogOverlay");
- let dialogLoadPromise = promiseLoadSubDialog("chrome://browser/content/preferences/siteDataSettings.xul");
+ let dialogLoadPromise = openAndLoadSubDialog("chrome://browser/content/preferences/siteDataSettings.xul");
+ let dialog = content.gSubDialog._topDialog;
+ let dialogOverlay = dialog._overlay;
let dialogInitPromise = TestUtils.topicObserved("sitedata-settings-init", () => true);
let fullyLoadPromise = Promise.all([ dialogLoadPromise, dialogInitPromise ]).then(() => {
is(dialogOverlay.style.visibility, "visible", "The Settings dialog should be visible");
});
settingsBtn.doCommand();
return fullyLoadPromise;
}
function assertSitesListed(doc, origins) {
- let frameDoc = doc.getElementById("dialogFrame").contentDocument;
+ let win = gBrowser.selectedBrowser.contentWindow;
+ let dialog = win.gSubDialog._topDialog;
+ let frameDoc = dialog._frame.contentDocument;
let removeBtn = frameDoc.getElementById("removeSelected");
let removeAllBtn = frameDoc.getElementById("removeAll");
let sitesList = frameDoc.getElementById("sitesList");
let totalSitesNumber = sitesList.getElementsByTagName("richlistitem").length;
is(totalSitesNumber, origins.length, "Should list the right sites number");
origins.forEach(origin => {
let site = sitesList.querySelector(`richlistitem[data-origin="${origin}"]`);
let host = site.getAttribute("host");