Bug 1406039 - migrate browser_webconsole_strict_mode_errors to new frontend;r=nchevobbe
MozReview-Commit-ID: ATuyIFj5c4D
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser.ini
@@ -373,17 +373,16 @@ skip-if = true # Bug 1404359
skip-if = true # Bug 1405647
[browser_webconsole_split_focus.js]
skip-if = true # Bug 1405648
[browser_webconsole_split_persist.js]
skip-if = true # Bug 1405649
[browser_webconsole_stacktrace_location_debugger_link.js]
[browser_webconsole_stacktrace_location_scratchpad_link.js]
[browser_webconsole_strict_mode_errors.js]
-skip-if = true # Bug 1406039
[browser_webconsole_string.js]
[browser_webconsole_time_methods.js]
skip-if = true # Bug 1404877
[browser_webconsole_timestamps.js]
[browser_webconsole_trackingprotection_errors.js]
tags = trackingprotection
skip-if = true # Bug 1405650
# old console skip-if = (os == 'win' && bits == 64) # Bug 1390001
--- a/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_strict_mode_errors.js
+++ b/devtools/client/webconsole/new-console-output/test/mochitest/browser_webconsole_strict_mode_errors.js
@@ -2,82 +2,39 @@
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Check that "use strict" JS errors generate errors, not warnings.
"use strict";
-add_task(function* () {
+add_task(async function () {
+ let hud = await openNewTabAndConsole("data:text/html;charset=utf8,empty page");
+
+ loadScriptURI("'use strict';var arguments;");
+ await waitForError(hud,
+ "SyntaxError: 'arguments' can't be defined or assigned to in strict mode code");
+
+ loadScriptURI("'use strict';function f(a, a) {};");
+ await waitForError(hud, "SyntaxError: duplicate formal argument a");
+
+ loadScriptURI("'use strict';var o = {get p() {}};o.p = 1;");
+ await waitForError(hud, 'TypeError: setting getter-only property "p"');
+
+ loadScriptURI("'use strict';v = 1;");
+ await waitForError(hud, "ReferenceError: assignment to undeclared variable v");
+});
+
+async function waitForError(hud, text) {
+ await waitFor(() => findMessage(hud, text, ".message.error"));
+ ok(true, "Received expected error message");
+}
+
+function loadScriptURI(script) {
// On e10s, the exception is triggered in child process
// and is ignored by test harness
if (!Services.appinfo.browserTabsRemoteAutostart) {
expectUncaughtException();
}
- yield loadTab("data:text/html;charset=utf8,<script>'use strict';var arguments;</script>");
-
- let hud = yield openConsole();
-
- yield waitForMessages({
- webconsole: hud,
- messages: [
- {
- text: "SyntaxError: 'arguments' can't be defined or assigned to in strict mode code",
- category: CATEGORY_JS,
- severity: SEVERITY_ERROR,
- },
- ],
- });
-
- if (!Services.appinfo.browserTabsRemoteAutostart) {
- expectUncaughtException();
- }
- BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "data:text/html;charset="
- + "utf8,<script>'use strict';function f(a, a) {};</script>");
-
- yield waitForMessages({
- webconsole: hud,
- messages: [
- {
- text: "SyntaxError: duplicate formal argument a",
- category: CATEGORY_JS,
- severity: SEVERITY_ERROR,
- },
- ],
- });
-
- if (!Services.appinfo.browserTabsRemoteAutostart) {
- expectUncaughtException();
- }
- BrowserTestUtils.loadURI(gBrowser.selectedBrowser, "data:text/html;charset="
- + "utf8,<script>'use strict';var o = {get p() {}};o.p = 1;</script>");
-
- yield waitForMessages({
- webconsole: hud,
- messages: [
- {
- text: 'TypeError: setting getter-only property "p"',
- category: CATEGORY_JS,
- severity: SEVERITY_ERROR,
- },
- ],
- });
-
- if (!Services.appinfo.browserTabsRemoteAutostart) {
- expectUncaughtException();
- }
- BrowserTestUtils.loadURI(gBrowser.selectedBrowser,
- "data:text/html;charset=utf8,<script>'use strict';v = 1;</script>");
-
- yield waitForMessages({
- webconsole: hud,
- messages: [
- {
- text: "ReferenceError: assignment to undeclared variable v",
- category: CATEGORY_JS,
- severity: SEVERITY_ERROR,
- },
- ],
- });
-
- hud = null;
-});
+ let uri = "data:text/html;charset=utf8,<script>" + script + "</script>";
+ BrowserTestUtils.loadURI(gBrowser.selectedBrowser, uri);
+}