зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1375775 - test cases for reusable tourset;r=mossop
MozReview-Commit-ID: IlxgYRuFpCc --HG-- extra : rebase_source : 5fb443a6181e909e6e7dad276e0e5b60ba983936
This commit is contained in:
Родитель
6a631df7f2
Коммит
345a2f81da
|
@ -4,3 +4,4 @@ support-files =
|
|||
|
||||
[browser_onboarding_notification.js]
|
||||
[browser_onboarding_tours.js]
|
||||
[browser_onboarding_tourset.js]
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
add_task(async function test_show_tour_notifications_in_order() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tourIds = TOUR_IDs;
|
||||
let tab = null;
|
||||
|
@ -43,7 +42,6 @@ add_task(async function test_show_tour_notifications_in_order() {
|
|||
|
||||
add_task(async function test_open_target_tour_from_notification() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, ABOUT_NEWTAB_URL);
|
||||
|
@ -61,7 +59,6 @@ add_task(async function test_open_target_tour_from_notification() {
|
|||
|
||||
add_task(async function test_not_show_notification_for_completed_tour() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tourIds = TOUR_IDs;
|
||||
// Make only the last tour uncompleted
|
||||
|
|
|
@ -29,11 +29,10 @@ function assertTourCompletedStyle(tourId, expectComplete, browser) {
|
|||
|
||||
add_task(async function test_hide_onboarding_tours() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tourIds = TOUR_IDs;
|
||||
let tabs = [];
|
||||
for (let url of [ABOUT_NEWTAB_URL, ABOUT_HOME_URL]) {
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
|
@ -61,11 +60,10 @@ add_task(async function test_hide_onboarding_tours() {
|
|||
|
||||
add_task(async function test_click_action_button_to_set_tour_completed() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tourIds = TOUR_IDs;
|
||||
let tabs = [];
|
||||
for (let url of [ABOUT_NEWTAB_URL, ABOUT_HOME_URL]) {
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
|
@ -91,7 +89,6 @@ add_task(async function test_click_action_button_to_set_tour_completed() {
|
|||
|
||||
add_task(async function test_set_right_tour_completed_style_on_overlay() {
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [["browser.onboarding.enabled", true]]});
|
||||
|
||||
let tourIds = TOUR_IDs;
|
||||
// Make the tours of even number as completed
|
||||
|
@ -100,7 +97,7 @@ add_task(async function test_set_right_tour_completed_style_on_overlay() {
|
|||
}
|
||||
|
||||
let tabs = [];
|
||||
for (let url of [ABOUT_NEWTAB_URL, ABOUT_HOME_URL]) {
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
add_task(async function test_onboarding_default_new_tourset() {
|
||||
resetOnboardingDefaultState();
|
||||
let tabs = [];
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
await BrowserTestUtils.synthesizeMouseAtCenter("#onboarding-overlay-icon", {}, tab.linkedBrowser);
|
||||
await promiseOnboardingOverlayOpened(tab.linkedBrowser);
|
||||
tabs.push(tab);
|
||||
}
|
||||
|
||||
let doc = content && content.document;
|
||||
let doms = doc.querySelectorAll(".onboarding-tour-item");
|
||||
is(doms.length, TOUR_IDs.length, "has exact tour numbers");
|
||||
doms.forEach((dom, idx) => {
|
||||
is(TOUR_IDs[idx], dom.id, "contain defined onboarding id");
|
||||
});
|
||||
|
||||
for (let i = tabs.length - 1; i >= 0; --i) {
|
||||
let tab = tabs[i];
|
||||
await BrowserTestUtils.removeTab(tab);
|
||||
}
|
||||
});
|
||||
|
||||
add_task(async function test_onboarding_custom_new_tourset() {
|
||||
const CUSTOM_NEW_TOURs = [
|
||||
"onboarding-tour-private-browsing",
|
||||
"onboarding-tour-addons",
|
||||
"onboarding-tour-customize",
|
||||
];
|
||||
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [
|
||||
["browser.onboarding.tour-type", "new"],
|
||||
["browser.onboarding.tourset-version", 1],
|
||||
["browser.onboarding.seen-tourset-version", 1],
|
||||
["browser.onboarding.newtour", "private,addons,customize"],
|
||||
]});
|
||||
|
||||
let tabs = [];
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
await BrowserTestUtils.synthesizeMouseAtCenter("#onboarding-overlay-icon", {}, tab.linkedBrowser);
|
||||
await promiseOnboardingOverlayOpened(tab.linkedBrowser);
|
||||
tabs.push(tab);
|
||||
}
|
||||
|
||||
let doc = content && content.document;
|
||||
let doms = doc.querySelectorAll(".onboarding-tour-item");
|
||||
is(doms.length, CUSTOM_NEW_TOURs.length, "has exact tour numbers");
|
||||
doms.forEach((dom, idx) => {
|
||||
is(CUSTOM_NEW_TOURs[idx], dom.id, "contain defined onboarding id");
|
||||
});
|
||||
|
||||
for (let i = tabs.length - 1; i >= 0; --i) {
|
||||
let tab = tabs[i];
|
||||
await BrowserTestUtils.removeTab(tab);
|
||||
}
|
||||
});
|
||||
|
||||
add_task(async function test_onboarding_custom_update_tourset() {
|
||||
const CUSTOM_UPDATE_TOURs = [
|
||||
"onboarding-tour-customize",
|
||||
"onboarding-tour-private-browsing",
|
||||
"onboarding-tour-addons",
|
||||
];
|
||||
resetOnboardingDefaultState();
|
||||
await SpecialPowers.pushPrefEnv({set: [
|
||||
["browser.onboarding.tour-type", "update"],
|
||||
["browser.onboarding.tourset-version", 1],
|
||||
["browser.onboarding.seen-tourset-version", 1],
|
||||
["browser.onboarding.updatetour", "customize,private,addons"],
|
||||
]});
|
||||
|
||||
let tabs = [];
|
||||
for (let url of URLs) {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
await BrowserTestUtils.loadURI(tab.linkedBrowser, url);
|
||||
await promiseOnboardingOverlayLoaded(tab.linkedBrowser);
|
||||
await BrowserTestUtils.synthesizeMouseAtCenter("#onboarding-overlay-icon", {}, tab.linkedBrowser);
|
||||
await promiseOnboardingOverlayOpened(tab.linkedBrowser);
|
||||
tabs.push(tab);
|
||||
}
|
||||
|
||||
let doc = content && content.document;
|
||||
let doms = doc.querySelectorAll(".onboarding-tour-item");
|
||||
is(doms.length, CUSTOM_UPDATE_TOURs.length, "has exact tour numbers");
|
||||
doms.forEach((dom, idx) => {
|
||||
is(CUSTOM_UPDATE_TOURs[idx], dom.id, "contain defined onboarding id");
|
||||
});
|
||||
|
||||
for (let i = tabs.length - 1; i >= 0; --i) {
|
||||
let tab = tabs[i];
|
||||
await BrowserTestUtils.removeTab(tab);
|
||||
}
|
||||
});
|
|
@ -5,6 +5,7 @@ let { Preferences } = Cu.import("resource://gre/modules/Preferences.jsm", {});
|
|||
|
||||
const ABOUT_HOME_URL = "about:home";
|
||||
const ABOUT_NEWTAB_URL = "about:newtab";
|
||||
const URLs = [ABOUT_HOME_URL, ABOUT_NEWTAB_URL];
|
||||
const TOUR_IDs = [
|
||||
"onboarding-tour-private-browsing",
|
||||
"onboarding-tour-addons",
|
||||
|
@ -13,10 +14,12 @@ const TOUR_IDs = [
|
|||
"onboarding-tour-default-browser",
|
||||
"onboarding-tour-sync",
|
||||
];
|
||||
const UPDATE_TOUR_IDs = [];
|
||||
|
||||
function resetOnboardingDefaultState() {
|
||||
// All the prefs should be reset to the default states
|
||||
// and no need to revert back so we don't use `SpecialPowers.pushPrefEnv` here.
|
||||
Preferences.set("browser.onboarding.enabled", true);
|
||||
Preferences.set("browser.onboarding.hidden", false);
|
||||
Preferences.set("browser.onboarding.notification.finished", false);
|
||||
Preferences.set("browser.onboarding.notification.lastPrompted", "");
|
||||
|
|
Загрузка…
Ссылка в новой задаче