Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
let mockFxA, unmockFxA;
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [["browser.settings-redesign.enabled", true]],
});
let { mock, unmock } = await mockDefaultFxAInstance();
mockFxA = mock;
unmockFxA = unmock;
});
add_task(async function test_config_renders_with_expected_cards() {
await clearPolicies();
let {
grid,
mobilePromo,
monitorPromoCard,
vpnPromoCard,
relayPromoCard,
mdnCard,
soloCard,
thunderbirdCard,
newProductsCard,
} = await getPromoCardsSRD();
ok(grid, "The products-grid container exists");
ok(mobilePromo, "Firefox Mobile moz-promo is present");
ok(
mobilePromo.imageSrc.includes("more-from-mozilla-qr-code"),
"QR code image src is set on the moz-promo"
);
ok(monitorPromoCard, "Mozilla Monitor card is present");
is(
monitorPromoCard.localName,
"moz-card",
"Monitor card is a moz-card element"
);
ok(
monitorPromoCard.querySelector("moz-box-link"),
"Monitor card contains a moz-box-link"
);
ok(vpnPromoCard, "VPN card is present");
ok(relayPromoCard, "Relay card is present");
ok(mdnCard, "MDN card is present");
ok(soloCard, "Solo card is present");
ok(thunderbirdCard, "Thunderbird card is present");
ok(newProductsCard, "Mozilla New Products card is present");
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(async function test_vpn_hidden_when_disabled() {
await clearPolicies();
await SpecialPowers.pushPrefEnv({
set: [["browser.vpn_promo.enabled", false]],
});
let { vpnPromoCard, monitorPromoCard } = await getPromoCardsSRD();
ok(!vpnPromoCard, "The VPN promo card is not visible");
ok(monitorPromoCard, "The Monitor card is visible");
Services.prefs.clearUserPref("browser.vpn_promo.enabled");
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(async function test_vpn_hidden_in_disallowed_region() {
await clearPolicies();
setupRegions("SY");
await SpecialPowers.pushPrefEnv({
set: [["browser.vpn_promo.enabled", true]],
});
let { vpnPromoCard, monitorPromoCard } = await getPromoCardsSRD();
ok(!vpnPromoCard, "VPN promo is hidden in disallowed region");
ok(monitorPromoCard, "The Monitor card is visible");
setupRegions(initialHomeRegion, initialCurrentRegion);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(async function test_relay_hidden_with_custom_fxa() {
await clearPolicies();
unmockFxA();
let { relayPromoCard } = await getPromoCardsSRD();
ok(!relayPromoCard, "The Relay promo card is not visible");
BrowserTestUtils.removeTab(gBrowser.selectedTab);
mockFxA();
});
add_task(async function test_box_link_has_correct_utm_params() {
await clearPolicies();
let { monitorPromoCard } = await getPromoCardsSRD();
let boxLink = monitorPromoCard.querySelector("moz-box-link");
ok(boxLink, "Monitor card has a moz-box-link");
let href = boxLink.href;
ok(href, "Box link has an href");
let url = new URL(href);
Assert.ok(
url.href.startsWith("https://monitor.mozilla.org/"),
"Correct base URL"
);
Assert.equal(
url.searchParams.get("utm_source"),
"about-prefs",
"utm_source is set"
);
Assert.equal(
url.searchParams.get("utm_campaign"),
"morefrommozilla",
"utm_campaign is set"
);
Assert.equal(
url.searchParams.get("utm_medium"),
"firefox-desktop",
"utm_medium is set"
);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});