Bug 1631921 - Mochitests for AboutWelcomeActors & AboutWelcome Simplified r=pdahiya

Differential Revision: https://phabricator.services.mozilla.com/D71824
This commit is contained in:
emcminn 2020-04-28 21:12:08 +00:00
Родитель 7cee26a500
Коммит b0de56f2a0
3 изменённых файлов: 133 добавлений и 73 удалений

Просмотреть файл

@ -14,6 +14,7 @@ prefs =
browser.newtabpage.activity-stream.feeds.section.topstories.options={"provider_name":""}
[browser_aboutwelcome.js]
[browser_aboutwelcome_actors.js]
[browser_aboutwelcome_simplified.js]
[browser_aboutwelcome_observer.js]
[browser_as_load_location.js]

Просмотреть файл

@ -0,0 +1,132 @@
"use strict";
const SEPARATE_ABOUT_WELCOME_PREF = "browser.aboutwelcome.enabled";
const DID_SEE_ABOUT_WELCOME_PREF = "trailhead.firstrun.didSeeAboutWelcome";
const { PrivateBrowsingUtils } = ChromeUtils.import(
"resource://gre/modules/PrivateBrowsingUtils.jsm"
);
const { FxAccounts } = ChromeUtils.import(
"resource://gre/modules/FxAccounts.jsm"
);
/**
* Sets the aboutwelcome pref to enabled simplified welcome UI
*/
async function setAboutWelcomePref(value) {
return pushPrefs([SEPARATE_ABOUT_WELCOME_PREF, value]);
}
async function openAboutWelcome() {
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"about:welcome",
true
);
registerCleanupFunction(() => {
BrowserTestUtils.removeTab(tab);
});
return tab.linkedBrowser;
}
// Test events from AboutWelcomeUtils
async function test_set_message() {
Services.prefs.setBoolPref(DID_SEE_ABOUT_WELCOME_PREF, false);
await openAboutWelcome();
Assert.equal(
Services.prefs.getBoolPref(DID_SEE_ABOUT_WELCOME_PREF, false),
true,
"Pref was set"
);
}
async function test_open_awesome_bar(browser, message) {
await ContentTask.spawn(browser, message, async () => {
await ContentTaskUtils.waitForCondition(
() =>
content.document.querySelector(
"button[data-l10n-id=onboarding-start-browsing-button-label]"
),
"Wait for start browsing button to load"
);
let button = content.document.querySelector(
"button[data-l10n-id=onboarding-start-browsing-button-label]"
);
button.click();
});
Assert.ok(gURLBar.focused, "Focus should be on awesome bar");
}
async function test_open_private_browser(browser, message) {
let newWindowPromise = BrowserTestUtils.waitForNewWindow();
await ContentTask.spawn(browser, message, async () => {
await ContentTaskUtils.waitForCondition(
() =>
content.document.querySelector(
"button[data-l10n-id=onboarding-browse-privately-button]"
),
"Wait for private browsing button to load"
);
let button = content.document.querySelector(
"button[data-l10n-id=onboarding-browse-privately-button]"
);
button.click();
});
let win = await newWindowPromise;
Assert.ok(PrivateBrowsingUtils.isWindowPrivate(win));
await BrowserTestUtils.closeWindow(win);
}
// Test Fxaccounts MetricsFlowURI
add_task(function setup() {
const sandbox = sinon.createSandbox();
sandbox.stub(FxAccounts.config, "promiseMetricsFlowURI").resolves("");
registerCleanupFunction(() => {
sandbox.restore();
});
});
test_newtab(
{
async before({ pushPrefs }) {
await pushPrefs(["browser.aboutwelcome.enabled", true]);
},
test: async function test_startBrowsing() {
await ContentTaskUtils.waitForCondition(
() =>
content.document.querySelector(
"button[data-l10n-id=onboarding-start-browsing-button-label]"
),
"Wait for start browsing button to load"
);
},
after() {
ok(
FxAccounts.config.promiseMetricsFlowURI.callCount === 1,
"Stub was called"
);
Assert.equal(
FxAccounts.config.promiseMetricsFlowURI.firstCall.args[0],
"aboutwelcome",
"Called by AboutWelcomeParent"
);
},
},
"about:welcome"
);
add_task(async function test_onContentMessage() {
await setAboutWelcomePref(true);
let browser = await openAboutWelcome();
//case "SET_WELCOME_MESSAGE_SEEN"
await test_set_message();
// //case "OPEN_AWESOME_BAR"
await test_open_awesome_bar(browser, "Open awesome bar");
//case "OPEN_PRIVATE_BROWSER_WINDOW"
await test_open_private_browser(browser, "Open private window");
});

Просмотреть файл

@ -2,10 +2,6 @@
const SEPARATE_ABOUT_WELCOME_PREF = "browser.aboutwelcome.enabled";
const { FxAccounts } = ChromeUtils.import(
"resource://gre/modules/FxAccounts.jsm"
);
/**
* Sets the aboutwelcome pref to enabled simplified welcome UI
*/
@ -86,72 +82,3 @@ add_task(async function test_Separate_About_Welcome_branches() {
]
);
});
/**
* Test click of StartBrowsing button on simplified about:welcome
* page changes focus to location bar
*/
test_newtab(
{
async before({ pushPrefs }) {
await pushPrefs(["browser.aboutwelcome.enabled", true]);
},
test: async function test_startBrowsing() {
await ContentTaskUtils.waitForCondition(
() =>
content.document.querySelector(
"button[data-l10n-id=onboarding-start-browsing-button-label]"
),
"Wait for start browsing button to load"
);
const startBrowsingButton = content.document.querySelector(
"button[data-l10n-id=onboarding-start-browsing-button-label]"
);
startBrowsingButton.click();
},
after() {
ok(
gURLBar.focused,
"Start Browsing click should move focus to awesome bar"
);
},
},
"about:welcome"
);
add_task(function setup() {
const sandbox = sinon.createSandbox();
sandbox.stub(FxAccounts.config, "promiseMetricsFlowURI").resolves("");
registerCleanupFunction(() => {
sandbox.restore();
});
});
test_newtab(
{
async before({ pushPrefs }) {
await pushPrefs(["browser.aboutwelcome.enabled", true]);
},
test: async function test_startBrowsing() {
await ContentTaskUtils.waitForCondition(
() => content.document.querySelector(".start-button"),
"Wait for start browsing button to load"
);
},
after() {
ok(
FxAccounts.config.promiseMetricsFlowURI.callCount === 1,
"Stub was called"
);
Assert.equal(
FxAccounts.config.promiseMetricsFlowURI.firstCall.args[0],
"aboutwelcome",
"Called by AboutWelcomeParent"
);
},
},
"about:welcome"
);