Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const REDUCED_MOTION_PREF = "ui.prefersReducedMotion";
const DISMISS_MESSAGE_PREF =
"devtools.inspector.simple-highlighters.message-dismissed";
add_task(async function testMessageHiddenWhenPrefersReducedMotionDisabled() {
info("Disable ui.prefersReducedMotion");
await pushPref(REDUCED_MOTION_PREF, 0);
await pushPref(DISMISS_MESSAGE_PREF, false);
const tab = await addTab("data:text/html,test");
const toolbox = await gDevTools.showToolboxForTab(tab);
await wait(1000);
ok(
!getSimpleHighlightersMessage(toolbox),
"The simple highlighters notification is not displayed"
);
});
add_task(async function testMessageHiddenWhenAlreadyDismissed() {
info("Enable ui.prefersReducedMotion");
await pushPref(REDUCED_MOTION_PREF, 1);
info("Simulate already dismissed message");
await pushPref(DISMISS_MESSAGE_PREF, true);
const tab = await addTab("data:text/html,test");
const toolbox = await gDevTools.showToolboxForTab(tab);
await wait(1000);
ok(
!getSimpleHighlightersMessage(toolbox),
"The simple highlighters notification is not displayed"
);
});
// Check that the message is displayed under the expected conditions, that the
// settings button successfully opens the corresponding panel and that after
// dismissing the message once, it is no longer displayed.
add_task(async function () {
info("Enable ui.prefersReducedMotion");
await pushPref(REDUCED_MOTION_PREF, 1);
info("Simulate already dismissed message");
await pushPref(DISMISS_MESSAGE_PREF, false);
const tab = await addTab("data:text/html,test");
let toolbox = await gDevTools.showToolboxForTab(tab);
info("Check the simple-highlighters message is displayed");
let notification = await waitFor(() => getSimpleHighlightersMessage(toolbox));
ok(notification, "A notification was displayed");
info("Click on the settings button from the notification");
const onSettingsCallbackDone = toolbox.once(
"test-highlighters-settings-opened"
);
const settingsButton = notification.querySelector(".notificationButton");
settingsButton.click();
info("Wait until the open settings button callback is done");
await onSettingsCallbackDone;
is(toolbox.currentToolId, "options", "The options panel was selected");
info("Close and reopen the toolbox");
await toolbox.destroy();
toolbox = await gDevTools.showToolboxForTab(tab);
info("Check the notification is displayed again");
notification = await waitFor(() => getSimpleHighlightersMessage(toolbox));
ok(notification, "A notification was displayed after reopening the toolbox");
info("Close the notification");
const closeButton = notification.querySelector(".messageCloseButton");
closeButton.click();
info("Wait for the notification to be removed");
await waitFor(() => !getSimpleHighlightersMessage(toolbox));
info("Close and reopen the toolbox");
await toolbox.destroy();
toolbox = await gDevTools.showToolboxForTab(tab);
await wait(1000);
ok(!getSimpleHighlightersMessage(toolbox));
is(
Services.prefs.getBoolPref(DISMISS_MESSAGE_PREF),
true,
"The dismiss simple-highlighters-message preference was set to true"
);
});
function getSimpleHighlightersMessage(toolbox) {
return toolbox.doc.querySelector(
'.notification[data-key="simple-highlighters-message"]'
);
}