forked from mirrors/gecko-dev
220 lines
5.6 KiB
JavaScript
220 lines
5.6 KiB
JavaScript
add_task(async function testRestoreDefaultsBtn_visible() {
|
|
const before = SpecialPowers.Services.prefs.getStringPref(
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories.options",
|
|
""
|
|
);
|
|
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
// Hide Pocket prefs so we don't trigger network requests when we reset all preferences
|
|
[
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories.options",
|
|
JSON.stringify(Object.assign({}, JSON.parse(before), { hidden: true })),
|
|
],
|
|
[
|
|
"browser.newtabpage.activity-stream.discoverystream.endpointSpocsClear",
|
|
"",
|
|
],
|
|
// Set a user pref to false to force the Restore Defaults button to be visible
|
|
["browser.newtabpage.activity-stream.feeds.topsites", false],
|
|
],
|
|
});
|
|
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(
|
|
gBrowser,
|
|
"about:preferences#home",
|
|
false
|
|
);
|
|
let browser = tab.linkedBrowser;
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn") !== null
|
|
),
|
|
"Wait for the button to be added to the page"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.querySelector(
|
|
"[data-subcategory='topsites'] checkbox"
|
|
) !== null
|
|
),
|
|
"Wait for the preference checkbox to load"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn")
|
|
.hidden === false
|
|
),
|
|
"Should show the Restore Defaults btn because pref is changed"
|
|
);
|
|
|
|
await SpecialPowers.spawn(browser, [], () =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn").click()
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.querySelector(
|
|
"[data-subcategory='topsites'] checkbox"
|
|
).checked
|
|
),
|
|
"Should have checked preference"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn").style
|
|
.visibility === "hidden"
|
|
),
|
|
"Should not show the Restore Defaults btn if prefs were reset"
|
|
);
|
|
|
|
const topsitesPref = await SpecialPowers.Services.prefs.getBoolPref(
|
|
"browser.newtabpage.activity-stream.feeds.topsites"
|
|
);
|
|
Assert.ok(topsitesPref, "Topsites pref should have the default value");
|
|
|
|
await SpecialPowers.popPrefEnv();
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|
|
|
|
add_task(async function testRestoreDefaultsBtn_hidden() {
|
|
const before = SpecialPowers.Services.prefs.getStringPref(
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories.options",
|
|
""
|
|
);
|
|
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
// Hide Pocket pref so we don't trigger network requests when we reset all preferences
|
|
[
|
|
"browser.newtabpage.activity-stream.feeds.section.topstories.options",
|
|
JSON.stringify(Object.assign({}, JSON.parse(before), { hidden: true })),
|
|
],
|
|
[
|
|
"browser.newtabpage.activity-stream.discoverystream.endpointSpocsClear",
|
|
"",
|
|
],
|
|
],
|
|
});
|
|
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(
|
|
gBrowser,
|
|
"about:preferences#home",
|
|
false
|
|
);
|
|
let browser = tab.linkedBrowser;
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn") !== null
|
|
),
|
|
"Wait for the button to be added to the page"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.querySelector(
|
|
"[data-subcategory='topsites'] checkbox"
|
|
) !== null
|
|
),
|
|
"Wait for the preference checkbox to load"
|
|
);
|
|
|
|
const btnDefault = await SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn").style
|
|
.visibility
|
|
);
|
|
Assert.equal(
|
|
btnDefault,
|
|
"hidden",
|
|
"When no prefs are changed button should not show up"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.querySelector(
|
|
"[data-subcategory='topsites'] checkbox"
|
|
).checked
|
|
),
|
|
"Should have checked preference"
|
|
);
|
|
|
|
// Uncheck a pref
|
|
await SpecialPowers.spawn(browser, [], () =>
|
|
content.document
|
|
.querySelector("[data-subcategory='topsites'] checkbox")
|
|
.click()
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
!content.document.querySelector(
|
|
"[data-subcategory='topsites'] checkbox"
|
|
).checked
|
|
),
|
|
"Should have unchecked preference"
|
|
);
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() =>
|
|
SpecialPowers.spawn(
|
|
browser,
|
|
[],
|
|
() =>
|
|
content.document.getElementById("restoreDefaultHomePageBtn").style
|
|
.visibility === ""
|
|
),
|
|
"Should show the Restore Defaults btn if prefs were changed"
|
|
);
|
|
|
|
// Reset the pref
|
|
await SpecialPowers.Services.prefs.clearUserPref(
|
|
"browser.newtabpage.activity-stream.feeds.topsites"
|
|
);
|
|
|
|
await SpecialPowers.popPrefEnv();
|
|
BrowserTestUtils.removeTab(tab);
|
|
});
|