mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/*
|
|
* These tests make sure that focusing the 'New Tage Page' works as expected.
|
|
*/
|
|
function runTests() {
|
|
// Handle the OSX full keyboard access setting
|
|
Services.prefs.setIntPref("accessibility.tabfocus", 7);
|
|
|
|
// Focus count in new tab page.
|
|
// 28 = 9 * 3 + 1 = 9 sites and 1 toggle button, each site has a link, a pin
|
|
// and a remove button.
|
|
let FOCUS_COUNT = 28;
|
|
|
|
// Create a new tab page.
|
|
yield setLinks("0,1,2,3,4,5,6,7,8");
|
|
setPinnedLinks("");
|
|
|
|
yield addNewTabPageTab();
|
|
gURLBar.focus();
|
|
|
|
// Count the focus with the enabled page.
|
|
yield countFocus(FOCUS_COUNT);
|
|
|
|
// Disable page and count the focus with the disabled page.
|
|
NewTabUtils.allPages.enabled = false;
|
|
yield countFocus(1);
|
|
|
|
Services.prefs.clearUserPref("accessibility.tabfocus");
|
|
NewTabUtils.allPages.enabled = true;
|
|
}
|
|
|
|
/**
|
|
* Focus the urlbar and count how many focus stops to return again to the urlbar.
|
|
*/
|
|
function countFocus(aExpectedCount) {
|
|
let focusCount = 0;
|
|
let contentDoc = getContentDocument();
|
|
|
|
window.addEventListener("focus", function onFocus() {
|
|
let focusedElement = document.commandDispatcher.focusedElement;
|
|
if (focusedElement && focusedElement.classList.contains("urlbar-input")) {
|
|
window.removeEventListener("focus", onFocus, true);
|
|
is(focusCount, aExpectedCount, "Validate focus count in the new tab page.");
|
|
executeSoon(TestRunner.next);
|
|
} else {
|
|
if (focusedElement && focusedElement.ownerDocument == contentDoc &&
|
|
focusedElement instanceof HTMLElement) {
|
|
focusCount++;
|
|
}
|
|
document.commandDispatcher.advanceFocus();
|
|
}
|
|
}, true);
|
|
|
|
document.commandDispatcher.advanceFocus();
|
|
}
|