Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const HOMEPAGE_PREF = "browser.startup.homepage";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
["browser.settings-redesign.enabled", true],
["identity.fxaccounts.account.device.name", ""],
],
});
});
add_task(async function test_deleting_custom_url() {
await SpecialPowers.pushPrefEnv({
set: [
[
HOMEPAGE_PREF,
],
],
});
let { doc, tab } = await openCustomHomepageSubpage();
await TestUtils.waitForCondition(
() => doc.querySelectorAll("moz-box-item[data-url]").length === 3,
"Wait for all URLs to render"
);
let boxItems = doc.querySelectorAll("moz-box-item[data-url]");
let secondItem = Array.from(boxItems).find(
item => item.getAttribute("data-url") === "https://test.org"
);
ok(secondItem, "Found the test.org item");
let deleteButton = secondItem.querySelector(
"moz-button[data-action='delete']"
);
ok(deleteButton, "Delete button exists on the item");
deleteButton.click();
await TestUtils.waitForCondition(
() =>
Services.prefs.getStringPref(HOMEPAGE_PREF) ===
"Pref updated after deletion"
);
await TestUtils.waitForCondition(
() => doc.querySelectorAll("moz-box-item[data-url]").length === 2,
"Wait for list to update"
);
await BrowserTestUtils.removeTab(tab);
});
add_task(async function test_reordering_custom_urls() {
await SpecialPowers.pushPrefEnv({
set: [
[
HOMEPAGE_PREF,
],
],
});
let { win, doc, tab } = await openCustomHomepageSubpage();
await TestUtils.waitForCondition(
() => doc.querySelectorAll("moz-box-item[data-url]").length === 3,
"Wait for all URLs to render"
);
let boxGroupControl = await settingControlRenders(
"customHomepageBoxGroup",
win
);
let boxGroup = boxGroupControl.controlEl;
let reorderEvent = new CustomEvent("reorder", {
bubbles: true,
detail: {
draggedIndex: 0,
targetIndex: 2,
},
});
boxGroup.dispatchEvent(reorderEvent);
await TestUtils.waitForCondition(
() =>
Services.prefs.getStringPref(HOMEPAGE_PREF) ===
"Pref updated with new order"
);
await BrowserTestUtils.removeTab(tab);
});