commit 0ee516bbba6d6c3b1b9e22bcfd68f142f3fcc111 parent 58ed15784f96aedbc4ad142fd8a80aa29bca759e Author: hannajones <hjones@mozilla.com> Date: Thu, 20 Nov 2025 18:48:08 +0000 Bug 1972074 - Part 4: move waitForSettingChange to head.js r=akulyk Differential Revision: https://phabricator.services.mozilla.com/D271098 Diffstat:
5 files changed, 20 insertions(+), 36 deletions(-)
diff --git a/browser/components/preferences/tests/chrome/head.js b/browser/components/preferences/tests/chrome/head.js @@ -1,3 +1,5 @@ +/** @import { Setting } from "chrome://global/content/preferences/Setting.mjs"; */ + /** * @callback TestSettingControlCommonPropertiesFunction * @param {(config: Record<string, any>) => Promise<HTMLElement>} renderTemplateFunction @@ -76,3 +78,19 @@ async function testCommonSettingControlProperties(renderTemplateFunction) { await testCommonSettingControlPropertiesSet(renderTemplateFunction); await testCommonSettingControlPropertiesUnset(renderTemplateFunction); } + +/** + * Waits for a setting to emit a "change" event. + * + * @param {Setting} setting - The setting object to watch for changes. + * @returns {Promise<void>} A promise that resolves when the setting emits a + "change" event + */ +function waitForSettingChange(setting) { + return new Promise(resolve => { + setting.on("change", function handler() { + setting.off("change", handler); + resolve(); + }); + }); +} diff --git a/browser/components/preferences/tests/chrome/test_setting_control.html b/browser/components/preferences/tests/chrome/test_setting_control.html @@ -49,15 +49,6 @@ return result.querySelector("setting-control"); } - function waitForSettingChange(setting) { - return new Promise(resolve => { - setting.on("change", function handler() { - setting.off("change", handler); - resolve(); - }); - }); - } - add_setup(async function setup() { testHelpers = new InputTestHelpers(); ({ html } = await testHelpers.setupLit()); diff --git a/browser/components/preferences/tests/chrome/test_setting_control_extension_controlled.html b/browser/components/preferences/tests/chrome/test_setting_control_extension_controlled.html @@ -18,6 +18,7 @@ /> <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> <script src="../../../../../toolkit/content/tests/widgets/lit-test-helpers.js"></script> + <script src="./head.js"></script> <script type="module" src="chrome://browser/content/preferences/widgets/setting-group.mjs" @@ -77,15 +78,6 @@ await synthesizeMouseAtCenter(elem, {}); } - function waitForSettingChange(setting) { - return new Promise(resolve => { - setting.on("change", function handler() { - setting.off("change", handler); - resolve(); - }); - }); - } - const getExtensionControlledMessageBar = control => control.querySelector(".extension-controlled-message-bar"); const getReenableExtensionMessageBar = control => diff --git a/browser/components/preferences/tests/chrome/test_setting_control_options.html b/browser/components/preferences/tests/chrome/test_setting_control_options.html @@ -11,6 +11,7 @@ <link rel="stylesheet" href="chrome://global/skin/global.css" /> <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> <script src="../../../../../toolkit/content/tests/widgets/lit-test-helpers.js"></script> + <script src="./head.js"></script> <script type="module" src="chrome://browser/content/preferences/widgets/setting-group.mjs" @@ -57,15 +58,6 @@ return result.querySelector("setting-control"); } - function waitForSettingChange(setting) { - return new Promise(resolve => { - setting.on("change", function handler() { - setting.off("change", handler); - resolve(); - }); - }); - } - add_setup(async function setup() { testHelpers = new InputTestHelpers(); ({ html } = await testHelpers.setupLit()); diff --git a/browser/components/preferences/tests/chrome/test_setting_group.html b/browser/components/preferences/tests/chrome/test_setting_group.html @@ -54,15 +54,6 @@ return testHelpers.renderTemplate(settingGroupTemplate(config)); } - function waitForSettingChange(setting) { - return new Promise(resolve => { - setting.on("change", function handler() { - setting.off("change", handler); - resolve(); - }); - }); - } - add_setup(async function setup() { testHelpers = new InputTestHelpers(); ({ html, nothing } = await testHelpers.setupLit());