Bug 1353910 - Fix browser_devices_get_user_media_tear_off_tab.js. r=florian
MozReview-Commit-ID: 6XjTDUgevPe
--- a/browser/base/content/test/webrtc/browser_devices_get_user_media_tear_off_tab.js
+++ b/browser/base/content/test/webrtc/browser_devices_get_user_media_tear_off_tab.js
@@ -1,16 +1,12 @@
/* 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/. */
-registerCleanupFunction(function() {
- gBrowser.removeCurrentTab();
-});
-
var gTests = [
{
desc: "getUserMedia: tearing-off a tab keeps sharing indicators",
run: function* checkTearingOff() {
let promise = promisePopupNotificationShown("webRTC-shareDevices");
yield promiseRequestDevice(true, true);
yield promise;
@@ -57,51 +53,25 @@ var gTests = [
yield expectNoObserverCalled();
yield checkNotSharing();
}
}
];
-function test() {
- waitForExplicitFinish();
- SpecialPowers.pushPrefEnv({"set": [["dom.ipc.processCount", 1]]}, runTest);
-}
+add_task(async function test() {
+ await SpecialPowers.pushPrefEnv({"set": [["dom.ipc.processCount", 1]]});
-function runTest() {
// An empty tab where we can load the content script without leaving it
// behind at the end of the test.
- gBrowser.addTab();
-
let tab = gBrowser.addTab();
- gBrowser.selectedTab = tab;
- let browser = tab.linkedBrowser;
-
- browser.messageManager.loadFrameScript(CONTENT_SCRIPT_HELPER, true);
-
- browser.addEventListener("load", function() {
- is(PopupNotifications._currentNotifications.length, 0,
- "should start the test without any prior popup notification");
- ok(gIdentityHandler._identityPopup.hidden,
- "should start the test with the control center hidden");
- Task.spawn(function* () {
- yield SpecialPowers.pushPrefEnv({"set": [[PREF_PERMISSION_FAKE, true]]});
-
- for (let testCase of gTests) {
- info(testCase.desc);
- yield testCase.run();
-
- // Cleanup before the next test
- yield expectNoObserverCalled();
- }
- }).then(finish, ex => {
- Cu.reportError(ex);
- ok(false, "Unexpected Exception: " + ex);
- finish();
- });
- }, {capture: true, once: true});
let rootDir = getRootDirectory(gTestPath);
rootDir = rootDir.replace("chrome://mochitests/content/",
"https://example.com/");
- content.location = rootDir + "get_user_media.html";
-}
+
+ // NB: This causes withNewTab to warn that we already closed the tab. That
+ // doesn't cause the test to fail, so that's OK.
+ await runTests(gTests, rootDir + "get_user_media.html", () => expectNoObserverCalled());
+
+ await BrowserTestUtils.removeTab(tab);
+});