forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1866284 - Add tests for clearing the status panel when entering D…
…OM fullscreen (bug 1850993) and for not showing network status in DOM fullscreen (bug 1853896). r=mak Differential Revision: https://phabricator.services.mozilla.com/D196436
- Loading branch information
1 parent
9fbbab6
commit 2841798
Showing
2 changed files
with
97 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
95 changes: 95 additions & 0 deletions
95
browser/base/content/test/fullscreen/browser_domFS_statuspanel.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
/* Any copyright is dedicated to the Public Domain. | ||
http://creativecommons.org/publicdomain/zero/1.0/ */ | ||
|
||
"use strict"; | ||
|
||
/* Tests that the status panel gets cleared when entering DOM fullscreen | ||
* (bug 1850993), and that we don't show network statuses in DOM fullscreen | ||
* (bug 1853896). */ | ||
|
||
// DOM FS tests tends to trigger a race in the fullscreen time telemetry, | ||
// where the fullscreen enter and fullscreen exit events (which use the | ||
// same histogram ID) overlap. That causes TelemetryStopwatch to log an | ||
// error. | ||
SimpleTest.ignoreAllUncaughtExceptions(true); | ||
|
||
let statuspanel = document.getElementById("statuspanel"); | ||
let statuspanelLabel = document.getElementById("statuspanel-label"); | ||
|
||
async function withDomFsTab(beforeEnter, afterEnter) { | ||
let url = "https://example.com/"; | ||
let tab = await BrowserTestUtils.openNewForegroundTab( | ||
gBrowser, | ||
url, | ||
true, | ||
true | ||
); | ||
let browser = tab.linkedBrowser; | ||
|
||
await beforeEnter(); | ||
info("Entering DOM fullscreen"); | ||
await changeFullscreen(browser, true); | ||
is(document.fullscreenElement, browser, "Entered DOM fullscreen"); | ||
await afterEnter(); | ||
|
||
await BrowserTestUtils.removeTab(tab); | ||
} | ||
|
||
add_task(async function test_overlink() { | ||
const overlink = "https://example.com"; | ||
let setAndCheckOverLink = async info => { | ||
XULBrowserWindow.setOverLink(overlink); | ||
await TestUtils.waitForCondition( | ||
() => BrowserTestUtils.is_visible(statuspanel), | ||
`statuspanel should become visible after setting overlink ${info}` | ||
); | ||
is( | ||
statuspanelLabel.value, | ||
BrowserUIUtils.trimURL(overlink), | ||
`statuspanel has expected value after setting overlink ${info}` | ||
); | ||
}; | ||
await withDomFsTab( | ||
async function () { | ||
await setAndCheckOverLink("outside of DOM FS"); | ||
}, | ||
async function () { | ||
await TestUtils.waitForCondition( | ||
() => !BrowserTestUtils.is_visible(statuspanel), | ||
"statuspanel with overlink should hide when entering DOM FS" | ||
); | ||
await setAndCheckOverLink("while in DOM FS"); | ||
} | ||
); | ||
}); | ||
|
||
add_task(async function test_networkstatus() { | ||
await withDomFsTab( | ||
async function () { | ||
XULBrowserWindow.status = "test1"; | ||
XULBrowserWindow.busyUI = true; | ||
StatusPanel.update(); | ||
ok( | ||
BrowserTestUtils.is_visible(statuspanel), | ||
"statuspanel is visible before entering DOM FS" | ||
); | ||
is(statuspanelLabel.value, "test1", "statuspanel has expected value"); | ||
}, | ||
async function () { | ||
is( | ||
XULBrowserWindow.busyUI, | ||
true, | ||
"browser window still considered busy (i.e. loading stuff) when entering DOM FS" | ||
); | ||
is( | ||
XULBrowserWindow.status, | ||
"", | ||
"network status cleared when entering DOM FS" | ||
); | ||
ok( | ||
!BrowserTestUtils.is_visible(statuspanel), | ||
"statuspanel with network status should should hide when entering DOM FS" | ||
); | ||
} | ||
); | ||
}); |