fune/browser/components/uitour/test/browser_openPreferences.js
Fischer.json 49a442f2dd Bug 1335454 - Add the ability to open the "Data Choices" options section through UITour, r=jaws
This patch does:
- Update UITour.jsm to make websites able to open to the old Prefernces advanced pane > dataChoicesTab by calling `Mozilla.UITour.openPreferences("privacy-reports")`.
- Update the comments of `Mozilla.UITour.openPreferences` to explain the old and new Preference to api users.

MozReview-Commit-ID: IdNDKiqfxKo

--HG--
extra : rebase_source : 520d3df019f37f8f6f581774b0b315a958d5246f
2017-04-23 16:27:26 +08:00

68 lines
2.8 KiB
JavaScript

"use strict";
var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
var gTestTab;
var gContentAPI;
var gContentWindow;
add_task(setup_UITourTest);
add_UITour_task(async function test_openPreferences() {
let promiseTabOpened = BrowserTestUtils.waitForNewTab(gBrowser, "about:preferences");
await gContentAPI.openPreferences();
let tab = await promiseTabOpened;
await BrowserTestUtils.removeTab(tab);
});
add_UITour_task(async function test_openInvalidPreferences() {
await gContentAPI.openPreferences(999);
try {
await waitForConditionPromise(() => {
return gBrowser.selectedBrowser.currentURI.spec.startsWith("about:preferences");
}, "Check if about:preferences opened");
ok(false, "No about:preferences tab should have opened");
} catch (ex) {
ok(true, "No about:preferences tab opened: " + ex);
}
});
add_UITour_task(async function test_openPrivacyPreferences() {
let promiseTabOpened = BrowserTestUtils.waitForNewTab(gBrowser, "about:preferences#privacy");
await gContentAPI.openPreferences("privacy");
let tab = await promiseTabOpened;
await BrowserTestUtils.removeTab(tab);
});
add_UITour_task(async function test_openOldDataChoicesTab() {
if (!AppConstants.MOZ_DATA_REPORTING) {
return;
}
await SpecialPowers.pushPrefEnv({set: [["browser.preferences.useOldOrganization", true]]});
let promiseTabOpened = BrowserTestUtils.waitForNewTab(gBrowser, "about:preferences#advanced");
await gContentAPI.openPreferences("privacy-reports");
let tab = await promiseTabOpened;
await BrowserTestUtils.waitForEvent(gBrowser.selectedBrowser, "Initialized");
let doc = gBrowser.selectedBrowser.contentDocument;
let selectedTab = doc.getElementById("advancedPrefs").selectedTab;
is(selectedTab.id, "dataChoicesTab", "Should open to the dataChoicesTab in the old Preferences");
await BrowserTestUtils.removeTab(tab);
});
add_UITour_task(async function test_openPrivacyReports() {
if (!AppConstants.MOZ_TELEMETRY_REPORTING &&
!(AppConstants.MOZ_DATA_REPORTING && AppConstants.MOZ_CRASHREPORTER)) {
return;
}
await SpecialPowers.pushPrefEnv({set: [["browser.preferences.useOldOrganization", false]]});
let promiseTabOpened = BrowserTestUtils.waitForNewTab(gBrowser, "about:preferences#privacy-reports");
await gContentAPI.openPreferences("privacy-reports");
let tab = await promiseTabOpened;
await BrowserTestUtils.waitForEvent(gBrowser.selectedBrowser, "Initialized");
let doc = gBrowser.selectedBrowser.contentDocument;
let reports = doc.querySelector("groupbox[data-subcategory='reports']");
is(doc.location.hash, "#privacy", "Should not display the reports subcategory in the location hash.");
is(reports.hidden, false, "Should open to the reports subcategory in the privacy pane in the new Preferences.");
await BrowserTestUtils.removeTab(tab);
});