fune/browser/base/content/test/fullscreen/browser_fullscreen_menus.js
Masayuki Nakano 0a5fcdfa8f Bug 1835570 - Map fullscreen menu items and toolbar buttons to the shortcut key correctly r=Gijs
Just forgetting to map them to new `key_enterFullScreen`.  Note that both
`key_enterFullScreen` and `key_exitFullScreen` have same shortcut keys.
Therefore, mapping only to `key_enterFullScreen` must be fine for the
toggle UIs.

This patch does not contain the tests for checking the tooltip label on
the toolbar buttons because the shortcut key information does not appear
in the DOM tree.

Differential Revision: https://phabricator.services.mozilla.com/D179357
2023-05-30 10:01:03 +00:00

72 lines
2.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_task(async function test_shortcut_key_label_in_fullscreen_menu_item() {
await SpecialPowers.pushPrefEnv({
set: [
["full-screen-api.transition-duration.enter", "0 0"],
["full-screen-api.transition-duration.leave", "0 0"],
],
});
const isMac = AppConstants.platform == "macosx";
const shortCutKeyLabel = isMac ? "\u2303\u2318F" : "F11";
const enterMenuItemId = isMac ? "enterFullScreenItem" : "fullScreenItem";
const exitMenuItemId = isMac ? "exitFullScreenItem" : "fullScreenItem";
const accelKeyLabelSelector = ".menu-accel-container > label";
const tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"https://example.org/browser/browser/base/content/test/fullscreen/fullscreen.html"
);
await SimpleTest.promiseFocus(tab.linkedBrowser);
document.getElementById(enterMenuItemId).render();
Assert.equal(
document
.getElementById(enterMenuItemId)
.querySelector(accelKeyLabelSelector)
?.getAttribute("value"),
shortCutKeyLabel,
`The menu item to enter into the fullscreen mode should show a shortcut key`
);
const fullScreenEntered = BrowserTestUtils.waitForEvent(window, "fullscreen");
EventUtils.synthesizeKey("KEY_F11", {});
info(`Waiting for entering the fullscreen mode...`);
await fullScreenEntered;
document.getElementById(exitMenuItemId).render();
Assert.equal(
document
.getElementById(exitMenuItemId)
.querySelector(accelKeyLabelSelector)
?.getAttribute("value"),
shortCutKeyLabel,
`The menu item to exiting from the fullscreen mode should show a shortcut key`
);
const fullScreenExited = BrowserTestUtils.waitForEvent(window, "fullscreen");
EventUtils.synthesizeKey("KEY_F11", {});
info(`Waiting for exiting from the fullscreen mode...`);
await fullScreenExited;
document.getElementById(enterMenuItemId).render();
Assert.equal(
document
.getElementById(enterMenuItemId)
.querySelector(accelKeyLabelSelector)
?.getAttribute("value"),
shortCutKeyLabel,
`After exiting from the fullscreen mode, the menu item to enter the fullscreen mode should show a shortcut key`
);
BrowserTestUtils.removeTab(tab);
});