Bug 1317069 - Fix ESLint in new console frontend; r=ntim

MozReview-Commit-ID: 7MgHbRxnU1V

--HG--
extra : rebase_source : 4e7296388b901773f6b8405b07aa355367cfb925
This commit is contained in:
Nicolas Chevobbe 2016-12-08 09:16:41 +01:00
parent 98225ef092
commit fa7ec438de
34 changed files with 1811 additions and 1959 deletions

View file

@ -96,10 +96,13 @@ devtools/client/shared/*.jsm
devtools/client/shared/webgl-utils.js devtools/client/shared/webgl-utils.js
devtools/client/shared/widgets/*.jsm devtools/client/shared/widgets/*.jsm
devtools/client/webaudioeditor/** devtools/client/webaudioeditor/**
devtools/client/webconsole/** devtools/client/webconsole/net/**
!devtools/client/webconsole/panel.js devtools/client/webconsole/test/**
!devtools/client/webconsole/jsterm.js devtools/client/webconsole/console-output.js
!devtools/client/webconsole/console-commands.js devtools/client/webconsole/hudservice.js
devtools/client/webconsole/utils.js
devtools/client/webconsole/webconsole-connection-proxy.js
devtools/client/webconsole/webconsole.js
devtools/client/webide/** devtools/client/webide/**
!devtools/client/webide/components/webideCli.js !devtools/client/webide/components/webideCli.js
devtools/server/*.js devtools/server/*.js

View file

@ -0,0 +1,5 @@
"use strict";
module.exports = {
"env": { "browser": true }
};

View file

@ -9,7 +9,6 @@ const {
DOM: dom, DOM: dom,
PropTypes PropTypes
} = require("devtools/client/shared/vendor/react"); } = require("devtools/client/shared/vendor/react");
const ReactDOM = require("devtools/client/shared/vendor/react-dom");
const { connect } = require("devtools/client/shared/vendor/react-redux"); const { connect } = require("devtools/client/shared/vendor/react-redux");
const { const {

View file

@ -63,7 +63,8 @@ const Message = createClass({
// Event used in tests. Some message types don't pass it in because existing tests // Event used in tests. Some message types don't pass it in because existing tests
// did not emit for them. // did not emit for them.
if (this.props.serviceContainer) { if (this.props.serviceContainer) {
this.props.serviceContainer.emitNewMessage(this.messageNode, this.props.messageId); this.props.serviceContainer.emitNewMessage(
this.messageNode, this.props.messageId);
} }
} }
}, },

View file

@ -8,7 +8,6 @@
var { utils: Cu } = Components; var { utils: Cu } = Components;
const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
const { BrowserLoader } = Cu.import("resource://devtools/client/shared/browser-loader.js", {}); const { BrowserLoader } = Cu.import("resource://devtools/client/shared/browser-loader.js", {});
// Initialize module loader and load all modules of the new inline // Initialize module loader and load all modules of the new inline
@ -19,5 +18,6 @@ const NewConsoleOutputWrapper = BrowserLoader({
window}).require("./new-console-output-wrapper"); window}).require("./new-console-output-wrapper");
this.NewConsoleOutput = function (parentNode, jsterm, toolbox, owner, serviceContainer) { this.NewConsoleOutput = function (parentNode, jsterm, toolbox, owner, serviceContainer) {
return new NewConsoleOutputWrapper(parentNode, jsterm, toolbox, owner, serviceContainer); return new NewConsoleOutputWrapper(
parentNode, jsterm, toolbox, owner, serviceContainer);
}; };

View file

@ -1,12 +1,12 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* exported Task, browserRequire */
"use strict"; "use strict";
var { utils: Cu } = Components; var { utils: Cu } = Components;
var { require } = Cu.import("resource://devtools/shared/Loader.jsm", {}); var { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
var { Assert } = require("resource://testing-common/Assert.jsm");
var { BrowserLoader } = Cu.import("resource://devtools/client/shared/browser-loader.js", {}); var { BrowserLoader } = Cu.import("resource://devtools/client/shared/browser-loader.js", {});
var { Task } = require("devtools/shared/task"); var { Task } = require("devtools/shared/task");

View file

@ -13,6 +13,8 @@
<div id="output"></div> <div id="output"></div>
<script type="text/javascript;version=1.8"> <script type="text/javascript;version=1.8">
"use strict";
const testPackets = []; const testPackets = [];
const numMessages = 1000; const numMessages = 1000;
for (let id = 0; id < numMessages; id++) { for (let id = 0; id < numMessages; id++) {
@ -57,9 +59,12 @@ function timeit(cb) {
} }
window.onload = Task.async(function* () { window.onload = Task.async(function* () {
const { configureStore } = browserRequire("devtools/client/webconsole/new-console-output/store"); const { configureStore } = browserRequire(
const { filterTextSet, filtersClear } = browserRequire("devtools/client/webconsole/new-console-output/actions/index"); "devtools/client/webconsole/new-console-output/store");
const NewConsoleOutputWrapper = browserRequire("devtools/client/webconsole/new-console-output/new-console-output-wrapper"); const { filterTextSet, filtersClear } = browserRequire(
"devtools/client/webconsole/new-console-output/actions/index");
const NewConsoleOutputWrapper = browserRequire(
"devtools/client/webconsole/new-console-output/new-console-output-wrapper");
const wrapper = new NewConsoleOutputWrapper(document.querySelector("#output"), {}); const wrapper = new NewConsoleOutputWrapper(document.querySelector("#output"), {});
const store = configureStore(); const store = configureStore();

View file

@ -34,7 +34,9 @@ describe("ConsoleAPICall component:", () => {
expect(wrapper.find(".message-body").text()).toBe("foobar test"); expect(wrapper.find(".message-body").text()).toBe("foobar test");
expect(wrapper.find(".objectBox-string").length).toBe(2); expect(wrapper.find(".objectBox-string").length).toBe(2);
expect(wrapper.find("div.message.cm-s-mozilla span span.message-flex-body span.message-body.devtools-monospace").length).toBe(1); let selector = "div.message.cm-s-mozilla span span.message-flex-body " +
"span.message-body.devtools-monospace";
expect(wrapper.find(selector).length).toBe(1);
// There should be the location // There should be the location
const locationLink = wrapper.find(`.message-location`); const locationLink = wrapper.find(`.message-location`);
@ -75,7 +77,9 @@ describe("ConsoleAPICall component:", () => {
expect(wrapper.find(".message-repeats").text()).toBe("107"); expect(wrapper.find(".message-repeats").text()).toBe("107");
expect(wrapper.find(".message-repeats").prop("title")).toBe("107 repeats"); expect(wrapper.find(".message-repeats").prop("title")).toBe("107 repeats");
expect(wrapper.find("span > span.message-flex-body > span.message-body.devtools-monospace + span.message-repeats").length).toBe(1); let selector = "span > span.message-flex-body > " +
"span.message-body.devtools-monospace + span.message-repeats";
expect(wrapper.find(selector).length).toBe(1);
}); });
it("has the expected indent", () => { it("has the expected indent", () => {
@ -111,10 +115,12 @@ describe("ConsoleAPICall component:", () => {
describe("console.assert", () => { describe("console.assert", () => {
it("renders", () => { it("renders", () => {
const message = stubPreparedMessages.get("console.assert(false, {message: 'foobar'})"); const message = stubPreparedMessages.get(
"console.assert(false, {message: 'foobar'})");
const wrapper = render(ConsoleApiCall({ message, serviceContainer })); const wrapper = render(ConsoleApiCall({ message, serviceContainer }));
expect(wrapper.find(".message-body").text()).toBe("Assertion failed: Object { message: \"foobar\" }"); expect(wrapper.find(".message-body").text())
.toBe("Assertion failed: Object { message: \"foobar\" }");
}); });
}); });
@ -145,19 +151,26 @@ describe("ConsoleAPICall component:", () => {
expect(wrapper.find(".message-body").text()).toBe("console.trace()"); expect(wrapper.find(".message-body").text()).toBe("console.trace()");
const frameLinks = wrapper.find(`.stack-trace span.frame-link[data-url='${filepath}']`); const frameLinks = wrapper.find(
`.stack-trace span.frame-link[data-url='${filepath}']`);
expect(frameLinks.length).toBe(3); expect(frameLinks.length).toBe(3);
expect(frameLinks.eq(0).find(".frame-link-function-display-name").text()).toBe("testStacktraceFiltering"); expect(frameLinks.eq(0).find(".frame-link-function-display-name").text())
expect(frameLinks.eq(0).find(".frame-link-filename").text()).toBe(filepath); .toBe("testStacktraceFiltering");
expect(frameLinks.eq(0).find(".frame-link-filename").text())
.toBe(filepath);
expect(frameLinks.eq(1).find(".frame-link-function-display-name").text()).toBe("foo"); expect(frameLinks.eq(1).find(".frame-link-function-display-name").text())
expect(frameLinks.eq(1).find(".frame-link-filename").text()).toBe(filepath); .toBe("foo");
expect(frameLinks.eq(1).find(".frame-link-filename").text())
.toBe(filepath);
expect(frameLinks.eq(2).find(".frame-link-function-display-name").text()).toBe("triggerPacket"); expect(frameLinks.eq(2).find(".frame-link-function-display-name").text())
expect(frameLinks.eq(2).find(".frame-link-filename").text()).toBe(filepath); .toBe("triggerPacket");
expect(frameLinks.eq(2).find(".frame-link-filename").text())
.toBe(filepath);
//it should not be collapsible. // it should not be collapsible.
expect(wrapper.find(`.theme-twisty`).length).toBe(0); expect(wrapper.find(`.theme-twisty`).length).toBe(0);
}); });
}); });

View file

@ -40,7 +40,8 @@ describe("FilterBar component:", () => {
expect(toolbar.children().eq(1).attr("title")).toBe("Toggle filter bar"); expect(toolbar.children().eq(1).attr("title")).toBe("Toggle filter bar");
// Text filter // Text filter
expect(toolbar.children().eq(2).attr("class")).toBe("devtools-plaininput text-filter"); expect(toolbar.children().eq(2).attr("class"))
.toBe("devtools-plaininput text-filter");
expect(toolbar.children().eq(2).attr("placeholder")).toBe("Filter output"); expect(toolbar.children().eq(2).attr("placeholder")).toBe("Filter output");
expect(toolbar.children().eq(2).attr("type")).toBe("search"); expect(toolbar.children().eq(2).attr("type")).toBe("search");
expect(toolbar.children().eq(2).attr("value")).toBe(""); expect(toolbar.children().eq(2).attr("value")).toBe("");
@ -71,7 +72,8 @@ describe("FilterBar component:", () => {
{ label: "Warnings", filterKey: MESSAGE_LEVEL.WARN })); { label: "Warnings", filterKey: MESSAGE_LEVEL.WARN }));
const errorButton = FilterButton(Object.assign({}, buttonProps, const errorButton = FilterButton(Object.assign({}, buttonProps,
{ label: "Errors", filterKey: MESSAGE_LEVEL.ERROR })); { label: "Errors", filterKey: MESSAGE_LEVEL.ERROR }));
expect(wrapper.contains([errorButton, warnButton, logButton, infoButton, debugButton])).toBe(true); let buttons = [errorButton, warnButton, logButton, infoButton, debugButton];
expect(wrapper.contains(buttons)).toBe(true);
}); });
it("fires MESSAGES_CLEAR action when clear button is clicked", () => { it("fires MESSAGES_CLEAR action when clear button is clicked", () => {

View file

@ -32,7 +32,9 @@ describe("NetworkEventMessage component:", () => {
expect(wrapper.find(".message-body .xhr").length).toBe(0); expect(wrapper.find(".message-body .xhr").length).toBe(0);
expect(wrapper.find(".message-body .url").length).toBe(1); expect(wrapper.find(".message-body .url").length).toBe(1);
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL); expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
expect(wrapper.find("div.message.cm-s-mozilla span.message-body.devtools-monospace").length).toBe(1); expect(wrapper
.find("div.message.cm-s-mozilla span.message-body.devtools-monospace").length
).toBe(1);
}); });
it("has the expected indent", () => { it("has the expected indent", () => {
@ -57,7 +59,8 @@ describe("NetworkEventMessage component:", () => {
expect(wrapper.find(".message-body .xhr").length).toBe(1); expect(wrapper.find(".message-body .xhr").length).toBe(1);
expect(wrapper.find(".message-body .xhr").text()).toBe("XHR"); expect(wrapper.find(".message-body .xhr").text()).toBe("XHR");
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL); expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
expect(wrapper.find("div.message.cm-s-mozilla span.message-body.devtools-monospace").length).toBe(1); let selector = "div.message.cm-s-mozilla span.message-body.devtools-monospace";
expect(wrapper.find(selector).length).toBe(1);
}); });
}); });
@ -71,7 +74,8 @@ describe("NetworkEventMessage component:", () => {
expect(wrapper.find(".message-body .xhr").text()).toBe("XHR"); expect(wrapper.find(".message-body .xhr").text()).toBe("XHR");
expect(wrapper.find(".message-body .url").length).toBe(1); expect(wrapper.find(".message-body .url").length).toBe(1);
expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL); expect(wrapper.find(".message-body .url").text()).toBe(EXPECTED_URL);
expect(wrapper.find("div.message.cm-s-mozilla span.message-body.devtools-monospace").length).toBe(1); let selector = "div.message.cm-s-mozilla span.message-body.devtools-monospace";
expect(wrapper.find(selector).length);
}); });
}); });
}); });

View file

@ -12,6 +12,7 @@ module.exports = {
case "devtools.hud.loglimit": case "devtools.hud.loglimit":
return 1000; return 1000;
} }
return null;
}, },
getBoolPref: pref => { getBoolPref: pref => {
const falsey = [ const falsey = [

View file

@ -13,5 +13,6 @@ module.exports = {
subscribe: () => {}, subscribe: () => {},
}, },
openLink: () => {}, openLink: () => {},
// eslint-disable-next-line react/display-name
createElement: tagName => document.createElement(tagName) createElement: tagName => document.createElement(tagName)
}; };

View file

@ -4,9 +4,9 @@
* http://creativecommons.org/publicdomain/zero/1.0/ */ * http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict"; "use strict";
requestLongerTimeout(2) requestLongerTimeout(2);
Cu.import("resource://gre/modules/osfile.jsm"); Cu.import("resource://gre/modules/osfile.jsm", {});
const { consoleApi: snippets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js"); const { consoleApi: snippets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html"; const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html";
@ -17,7 +17,7 @@ let stubs = {
}; };
add_task(function* () { add_task(function* () {
for (var [key, {keys, code}] of snippets) { for (let [key, {keys, code}] of snippets) {
yield OS.File.writeAtomic(TEMP_FILE_PATH, `function triggerPacket() {${code}}`); yield OS.File.writeAtomic(TEMP_FILE_PATH, `function triggerPacket() {${code}}`);
let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole"); let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole");
@ -31,7 +31,7 @@ add_task(function* () {
let listener = (type, res) => { let listener = (type, res) => {
stubs.packets.push(formatPacket(keys[i], res)); stubs.packets.push(formatPacket(keys[i], res));
stubs.preparedMessages.push(formatStub(keys[i], res)); stubs.preparedMessages.push(formatStub(keys[i], res));
if(++i === keys.length ){ if (++i === keys.length) {
toolbox.target.client.removeListener("consoleAPICall", listener); toolbox.target.client.removeListener("consoleAPICall", listener);
resolve(); resolve();
} }
@ -39,10 +39,12 @@ add_task(function* () {
toolbox.target.client.addListener("consoleAPICall", listener); toolbox.target.client.addListener("consoleAPICall", listener);
}); });
yield ContentTask.spawn(gBrowser.selectedBrowser, key, function(key) { yield ContentTask.spawn(gBrowser.selectedBrowser, key, function (subKey) {
var script = content.document.createElement("script"); let script = content.document.createElement("script");
script.src = "test-tempfile.js?key=" + encodeURIComponent(key); script.src = "test-tempfile.js?key=" + encodeURIComponent(subKey);
script.onload = function() { content.wrappedJSObject.triggerPacket(); } script.onload = function () {
content.wrappedJSObject.triggerPacket();
};
content.document.body.appendChild(script); content.document.body.appendChild(script);
}); });
@ -51,6 +53,6 @@ add_task(function* () {
yield closeTabAndToolbox(); yield closeTabAndToolbox();
} }
let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "consoleApi.js"); let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "consoleApi.js");
OS.File.writeAtomic(filePath, formatFile(stubs)); OS.File.writeAtomic(filePath, formatFile(stubs, "ConsoleMessage"));
OS.File.writeAtomic(TEMP_FILE_PATH, ""); OS.File.writeAtomic(TEMP_FILE_PATH, "");
}); });

View file

@ -3,7 +3,7 @@
"use strict"; "use strict";
Cu.import("resource://gre/modules/osfile.jsm"); Cu.import("resource://gre/modules/osfile.jsm", {});
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-css-message.html"; const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-css-message.html";
const { cssMessage: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js"); const { cssMessage: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
@ -43,6 +43,6 @@ add_task(function* () {
} }
let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "cssMessage.js"); let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "cssMessage.js");
OS.File.writeAtomic(filePath, formatFile(stubs)); OS.File.writeAtomic(filePath, formatFile(stubs, "ConsoleMessage"));
OS.File.writeAtomic(TEMP_CSS_FILE_PATH, ""); OS.File.writeAtomic(TEMP_CSS_FILE_PATH, "");
}); });

View file

@ -5,7 +5,7 @@
"use strict"; "use strict";
Cu.import("resource://gre/modules/osfile.jsm"); Cu.import("resource://gre/modules/osfile.jsm", {});
const TEST_URI = "data:text/html;charset=utf-8,stub generation"; const TEST_URI = "data:text/html;charset=utf-8,stub generation";
const { evaluationResult: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js"); const { evaluationResult: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
@ -19,7 +19,7 @@ add_task(function* () {
let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole"); let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole");
ok(true, "make the test not fail"); ok(true, "make the test not fail");
for (var [code,key] of snippets) { for (let [code, key] of snippets) {
const packet = yield new Promise(resolve => { const packet = yield new Promise(resolve => {
toolbox.target.activeConsole.evaluateJS(code, resolve); toolbox.target.activeConsole.evaluateJS(code, resolve);
}); });
@ -28,5 +28,5 @@ add_task(function* () {
} }
let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "evaluationResult.js"); let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "evaluationResult.js");
OS.File.writeAtomic(filePath, formatFile(stubs)); OS.File.writeAtomic(filePath, formatFile(stubs, "ConsoleMessage"));
}); });

View file

@ -5,7 +5,7 @@
"use strict"; "use strict";
Cu.import("resource://gre/modules/osfile.jsm"); Cu.import("resource://gre/modules/osfile.jsm", {});
const TARGET = "networkEvent"; const TARGET = "networkEvent";
const { [TARGET]: snippets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js"); const { [TARGET]: snippets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html"; const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html";
@ -16,7 +16,7 @@ let stubs = {
}; };
add_task(function* () { add_task(function* () {
for (var [key, {keys, code}] of snippets) { for (let {keys, code} of snippets.values()) {
OS.File.writeAtomic(TEMP_FILE_PATH, `function triggerPacket() {${code}}`); OS.File.writeAtomic(TEMP_FILE_PATH, `function triggerPacket() {${code}}`);
let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole"); let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole");
let {ui} = toolbox.getCurrentPanel().hud; let {ui} = toolbox.getCurrentPanel().hud;
@ -29,19 +29,19 @@ add_task(function* () {
toolbox.target.client.addListener(TARGET, (type, res) => { toolbox.target.client.addListener(TARGET, (type, res) => {
stubs.packets.push(formatPacket(keys[i], res)); stubs.packets.push(formatPacket(keys[i], res));
stubs.preparedMessages.push(formatNetworkStub(keys[i], res)); stubs.preparedMessages.push(formatNetworkStub(keys[i], res));
if(++i === keys.length ){ if (++i === keys.length) {
resolve(); resolve();
} }
}); });
}); });
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () {
content.wrappedJSObject.triggerPacket(); content.wrappedJSObject.triggerPacket();
}); });
yield received; yield received;
} }
let filePath = OS.Path.join(`${BASE_PATH}/stubs/${TARGET}.js`); let filePath = OS.Path.join(`${BASE_PATH}/stubs/${TARGET}.js`);
OS.File.writeAtomic(filePath, formatFile(stubs)); OS.File.writeAtomic(filePath, formatFile(stubs, "NetworkEventMessage"));
OS.File.writeAtomic(TEMP_FILE_PATH, ""); OS.File.writeAtomic(TEMP_FILE_PATH, "");
}); });

View file

@ -5,7 +5,7 @@
"use strict"; "use strict";
Cu.import("resource://gre/modules/osfile.jsm"); Cu.import("resource://gre/modules/osfile.jsm", {});
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html"; const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-console-api.html";
const { pageError: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js"); const { pageError: snippets} = require("devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/stub-snippets.js");
@ -19,7 +19,7 @@ add_task(function* () {
let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole"); let toolbox = yield openNewTabAndToolbox(TEST_URI, "webconsole");
ok(true, "make the test not fail"); ok(true, "make the test not fail");
for (var [key,code] of snippets) { for (let [key, code] of snippets) {
OS.File.writeAtomic(TEMP_FILE_PATH, `${code}`); OS.File.writeAtomic(TEMP_FILE_PATH, `${code}`);
let received = new Promise(resolve => { let received = new Promise(resolve => {
toolbox.target.client.addListener("pageError", function onPacket(e, packet) { toolbox.target.client.addListener("pageError", function onPacket(e, packet) {
@ -33,9 +33,9 @@ add_task(function* () {
}); });
}); });
yield ContentTask.spawn(gBrowser.selectedBrowser, key, function(key) { yield ContentTask.spawn(gBrowser.selectedBrowser, key, function (subKey) {
var script = content.document.createElement("script"); let script = content.document.createElement("script");
script.src = "test-tempfile.js?key=" + encodeURIComponent(key); script.src = "test-tempfile.js?key=" + encodeURIComponent(subKey);
content.document.body.appendChild(script); content.document.body.appendChild(script);
}); });
@ -43,6 +43,6 @@ add_task(function* () {
} }
let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "pageError.js"); let filePath = OS.Path.join(`${BASE_PATH}/stubs`, "pageError.js");
OS.File.writeAtomic(filePath, formatFile(stubs)); OS.File.writeAtomic(filePath, formatFile(stubs, "ConsoleMessage"));
OS.File.writeAtomic(TEMP_FILE_PATH, ""); OS.File.writeAtomic(TEMP_FILE_PATH, "");
}); });

View file

@ -2,8 +2,9 @@
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ /* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */ * http://creativecommons.org/publicdomain/zero/1.0/ */
/* import-globals-from ../../../../framework/test/shared-head.js */ /* import-globals-from ../../../../../framework/test/shared-head.js */
/* exported TEMP_FILE_PATH, TEMP_CSS_FILE_PATH, formatPacket, formatStub,
formatNetworkStub, formatFile */
"use strict"; "use strict";
// shared-head.js handles imports, constants, and utility functions // shared-head.js handles imports, constants, and utility functions
@ -20,7 +21,8 @@ registerCleanupFunction(() => {
const { prepareMessage } = require("devtools/client/webconsole/new-console-output/utils/messages"); const { prepareMessage } = require("devtools/client/webconsole/new-console-output/utils/messages");
const { stubPackets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs/index.js"); const { stubPackets } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs/index.js");
const BASE_PATH = "../../../../devtools/client/webconsole/new-console-output/test/fixtures"; const BASE_PATH =
"../../../../devtools/client/webconsole/new-console-output/test/fixtures";
const TEMP_FILE_PATH = OS.Path.join(`${BASE_PATH}/stub-generators`, "test-tempfile.js"); const TEMP_FILE_PATH = OS.Path.join(`${BASE_PATH}/stub-generators`, "test-tempfile.js");
const TEMP_CSS_FILE_PATH = OS.Path.join(`${BASE_PATH}/stub-generators`, const TEMP_CSS_FILE_PATH = OS.Path.join(`${BASE_PATH}/stub-generators`,
"test-tempfile.css"); "test-tempfile.css");
@ -28,7 +30,7 @@ const TEMP_CSS_FILE_PATH = OS.Path.join(`${BASE_PATH}/stub-generators`,
let cachedPackets = {}; let cachedPackets = {};
function getCleanedPacket(key, packet) { function getCleanedPacket(key, packet) {
if(Object.keys(cachedPackets).includes(key)) { if (Object.keys(cachedPackets).includes(key)) {
return cachedPackets[key]; return cachedPackets[key];
} }
@ -44,7 +46,6 @@ function getCleanedPacket(key, packet) {
// the diff resulting from this stub generation. // the diff resulting from this stub generation.
let res; let res;
if (stubPackets.has(safeKey)) { if (stubPackets.has(safeKey)) {
let existingPacket = stubPackets.get(safeKey); let existingPacket = stubPackets.get(safeKey);
res = Object.assign({}, packet, { res = Object.assign({}, packet, {
from: existingPacket.from from: existingPacket.from
@ -84,7 +85,7 @@ function getCleanedPacket(key, packet) {
// Clean actor ids on evaluation result messages. // Clean actor ids on evaluation result messages.
res.result.actor = existingPacket.result.actor; res.result.actor = existingPacket.result.actor;
if (res.result.preview) { if (res.result.preview) {
if(res.result.preview.timestamp) { if (res.result.preview.timestamp) {
// Clean timestamp there too. // Clean timestamp there too.
res.result.preview.timestamp = existingPacket.result.preview.timestamp; res.result.preview.timestamp = existingPacket.result.preview.timestamp;
} }
@ -95,7 +96,7 @@ function getCleanedPacket(key, packet) {
// Clean actor ids on exception messages. // Clean actor ids on exception messages.
res.exception.actor = existingPacket.exception.actor; res.exception.actor = existingPacket.exception.actor;
if (res.exception.preview) { if (res.exception.preview) {
if(res.exception.preview.timestamp) { if (res.exception.preview.timestamp) {
// Clean timestamp there too. // Clean timestamp there too.
res.exception.preview.timestamp = existingPacket.exception.preview.timestamp; res.exception.preview.timestamp = existingPacket.exception.preview.timestamp;
} }
@ -113,7 +114,6 @@ function getCleanedPacket(key, packet) {
// Clean timeStamp on pageError messages. // Clean timeStamp on pageError messages.
res.pageError.timeStamp = existingPacket.pageError.timeStamp; res.pageError.timeStamp = existingPacket.pageError.timeStamp;
} }
} else { } else {
res = packet; res = packet;
} }
@ -123,9 +123,8 @@ function getCleanedPacket(key, packet) {
} }
function formatPacket(key, packet) { function formatPacket(key, packet) {
return ` let stringifiedPacket = JSON.stringify(getCleanedPacket(key, packet), null, 2);
stubPackets.set("${key}", ${JSON.stringify(getCleanedPacket(key, packet), null, "\t")}); return `stubPackets.set("${key}", ${stringifiedPacket});`;
`;
} }
function formatStub(key, packet) { function formatStub(key, packet) {
@ -133,10 +132,8 @@ function formatStub(key, packet) {
getCleanedPacket(key, packet), getCleanedPacket(key, packet),
{getNextId: () => "1"} {getNextId: () => "1"}
); );
let stringifiedMessage = JSON.stringify(prepared, null, 2);
return ` return `stubPreparedMessages.set("${key}", new ConsoleMessage(${stringifiedMessage}));`;
stubPreparedMessages.set("${key}", new ConsoleMessage(${JSON.stringify(prepared, null, "\t")}));
`;
} }
function formatNetworkStub(key, packet) { function formatNetworkStub(key, packet) {
@ -164,14 +161,15 @@ function formatNetworkStub(key, packet) {
fromServiceWorker: actor.fromServiceWorker fromServiceWorker: actor.fromServiceWorker
}; };
let prepared = prepareMessage(networkInfo, {getNextId: () => "1"}); let prepared = prepareMessage(networkInfo, {getNextId: () => "1"});
return ` let stringifiedMessage = JSON.stringify(prepared, null, 2);
stubPreparedMessages.set("${key}", new NetworkEventMessage(${JSON.stringify(prepared, null, "\t")})); return `stubPreparedMessages.set("${key}", ` +
`; `new NetworkEventMessage(${stringifiedMessage}));`;
} }
function formatFile(stubs) { function formatFile(stubs, type) {
return `/* Any copyright is dedicated to the Public Domain. return `/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable max-len */
"use strict"; "use strict";
@ -179,16 +177,18 @@ function formatFile(stubs) {
* THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE. * THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE.
*/ */
const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types"); const { ${type} } =
require("devtools/client/webconsole/new-console-output/types");
let stubPreparedMessages = new Map(); let stubPreparedMessages = new Map();
let stubPackets = new Map(); let stubPackets = new Map();
${stubs.preparedMessages.join("\n\n")}
${stubs.preparedMessages.join("")} ${stubs.packets.join("\n\n")}
${stubs.packets.join("")}
module.exports = { module.exports = {
stubPreparedMessages, stubPreparedMessages,
stubPackets, stubPackets,
}`; };
`;
} }

View file

@ -3,10 +3,6 @@
"use strict"; "use strict";
var {DebuggerServer} = require("devtools/server/main");
var longString = (new Array(DebuggerServer.LONG_STRING_LENGTH + 4)).join("a");
var initialString = longString.substring(0, DebuggerServer.LONG_STRING_INITIAL_LENGTH);
// Console API // Console API
const consoleApiCommands = [ const consoleApiCommands = [

View file

@ -1,5 +1,6 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable max-len */
"use strict"; "use strict";
@ -7,101 +8,98 @@
* THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE. * THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE.
*/ */
const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types"); const { ConsoleMessage } =
require("devtools/client/webconsole/new-console-output/types");
let stubPreparedMessages = new Map(); let stubPreparedMessages = new Map();
let stubPackets = new Map(); let stubPackets = new Map();
stubPreparedMessages.set("Unknown property such-unknown-property. Declaration dropped.", new ConsoleMessage({ stubPreparedMessages.set("Unknown property such-unknown-property. Declaration dropped.", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "css", "source": "css",
"timeStamp": 1479159920406, "timeStamp": 1479159920406,
"type": "log", "type": "log",
"level": "warn", "level": "warn",
"messageText": "Unknown property such-unknown-property. Declaration dropped.", "messageText": "Unknown property such-unknown-property. Declaration dropped.",
"parameters": null, "parameters": null,
"repeat": 1, "repeat": 1,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"css\",\"timeStamp\":1479159920406,\"type\":\"log\",\"level\":\"warn\",\"messageText\":\"Unknown property such-unknown-property. Declaration dropped.\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property\",\"line\":3,\"column\":23},\"groupId\":null,\"userProvidedStyles\":null}", "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"css\",\"timeStamp\":1479159920406,\"type\":\"log\",\"level\":\"warn\",\"messageText\":\"Unknown property such-unknown-property. Declaration dropped.\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property\",\"line\":3,\"column\":23},\"groupId\":null,\"userProvidedStyles\":null}",
"stacktrace": null, "stacktrace": null,
"frame": { "frame": {
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property", "source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property",
"line": 3, "line": 3,
"column": 23 "column": 23
}, },
"groupId": null, "groupId": null,
"userProvidedStyles": null "userProvidedStyles": null
})); }));
stubPreparedMessages.set("Error in parsing value for padding-top. Declaration dropped.", new ConsoleMessage({ stubPreparedMessages.set("Error in parsing value for padding-top. Declaration dropped.", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "css", "source": "css",
"timeStamp": 1479159920465, "timeStamp": 1479159920465,
"type": "log", "type": "log",
"level": "warn", "level": "warn",
"messageText": "Error in parsing value for padding-top. Declaration dropped.", "messageText": "Error in parsing value for padding-top. Declaration dropped.",
"parameters": null, "parameters": null,
"repeat": 1, "repeat": 1,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"css\",\"timeStamp\":1479159920465,\"type\":\"log\",\"level\":\"warn\",\"messageText\":\"Error in parsing value for padding-top. Declaration dropped.\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value\",\"line\":3,\"column\":15},\"groupId\":null,\"userProvidedStyles\":null}", "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"css\",\"timeStamp\":1479159920465,\"type\":\"log\",\"level\":\"warn\",\"messageText\":\"Error in parsing value for padding-top. Declaration dropped.\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value\",\"line\":3,\"column\":15},\"groupId\":null,\"userProvidedStyles\":null}",
"stacktrace": null, "stacktrace": null,
"frame": { "frame": {
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value", "source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value",
"line": 3, "line": 3,
"column": 15 "column": 15
}, },
"groupId": null, "groupId": null,
"userProvidedStyles": null "userProvidedStyles": null
})); }));
stubPackets.set("Unknown property such-unknown-property. Declaration dropped.", { stubPackets.set("Unknown property such-unknown-property. Declaration dropped.", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"type": "pageError", "type": "pageError",
"pageError": { "pageError": {
"errorMessage": "Unknown property such-unknown-property. Declaration dropped.", "errorMessage": "Unknown property such-unknown-property. Declaration dropped.",
"errorMessageName": "", "errorMessageName": "",
"sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property", "sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Unknown%20property",
"lineText": " such-unknown-property: wow;", "lineText": " such-unknown-property: wow;",
"lineNumber": 3, "lineNumber": 3,
"columnNumber": 23, "columnNumber": 23,
"category": "CSS Parser", "category": "CSS Parser",
"timeStamp": 1479159920406, "timeStamp": 1479159920406,
"warning": true, "warning": true,
"error": false, "error": false,
"exception": false, "exception": false,
"strict": false, "strict": false,
"info": false, "info": false,
"private": false, "private": false,
"stacktrace": null "stacktrace": null
} }
}); });
stubPackets.set("Error in parsing value for padding-top. Declaration dropped.", { stubPackets.set("Error in parsing value for padding-top. Declaration dropped.", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"type": "pageError", "type": "pageError",
"pageError": { "pageError": {
"errorMessage": "Error in parsing value for padding-top. Declaration dropped.", "errorMessage": "Error in parsing value for padding-top. Declaration dropped.",
"errorMessageName": "", "errorMessageName": "",
"sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value", "sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.css?key=Invalid%20property%20value",
"lineText": " padding-top: invalid value;", "lineText": " padding-top: invalid value;",
"lineNumber": 3, "lineNumber": 3,
"columnNumber": 15, "columnNumber": 15,
"category": "CSS Parser", "category": "CSS Parser",
"timeStamp": 1479159920465, "timeStamp": 1479159920465,
"warning": true, "warning": true,
"error": false, "error": false,
"exception": false, "exception": false,
"strict": false, "strict": false,
"info": false, "info": false,
"private": false, "private": false,
"stacktrace": null "stacktrace": null
} }
}); });
module.exports = { module.exports = {
stubPreparedMessages, stubPreparedMessages,
stubPackets, stubPackets,
} };

View file

@ -1,5 +1,6 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable max-len */
"use strict"; "use strict";
@ -7,179 +8,176 @@
* THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE. * THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE.
*/ */
const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types"); const { ConsoleMessage } =
require("devtools/client/webconsole/new-console-output/types");
let stubPreparedMessages = new Map(); let stubPreparedMessages = new Map();
let stubPackets = new Map(); let stubPackets = new Map();
stubPreparedMessages.set("new Date(0)", new ConsoleMessage({ stubPreparedMessages.set("new Date(0)", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "javascript", "source": "javascript",
"timeStamp": 1479159921364, "timeStamp": 1479159921364,
"type": "result", "type": "result",
"level": "log", "level": "log",
"parameters": { "parameters": {
"type": "object", "type": "object",
"actor": "server1.conn0.child1/obj30", "actor": "server1.conn0.child1/obj30",
"class": "Date", "class": "Date",
"extensible": true, "extensible": true,
"frozen": false, "frozen": false,
"sealed": false, "sealed": false,
"ownPropertyLength": 0, "ownPropertyLength": 0,
"preview": { "preview": {
"timestamp": 0 "timestamp": 0
} }
}, },
"repeat": 1, "repeat": 1,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921364,\"type\":\"result\",\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj30\",\"class\":\"Date\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":0,\"preview\":{\"timestamp\":0}},\"repeatId\":null,\"stacktrace\":null,\"frame\":null,\"groupId\":null,\"userProvidedStyles\":null}", "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921364,\"type\":\"result\",\"level\":\"log\",\"parameters\":{\"type\":\"object\",\"actor\":\"server1.conn0.child1/obj30\",\"class\":\"Date\",\"extensible\":true,\"frozen\":false,\"sealed\":false,\"ownPropertyLength\":0,\"preview\":{\"timestamp\":0}},\"repeatId\":null,\"stacktrace\":null,\"frame\":null,\"groupId\":null,\"userProvidedStyles\":null}",
"stacktrace": null, "stacktrace": null,
"frame": null, "frame": null,
"groupId": null, "groupId": null,
"userProvidedStyles": null "userProvidedStyles": null
})); }));
stubPreparedMessages.set("asdf()", new ConsoleMessage({ stubPreparedMessages.set("asdf()", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "javascript", "source": "javascript",
"timeStamp": 1479159921377, "timeStamp": 1479159921377,
"type": "result", "type": "result",
"level": "error", "level": "error",
"messageText": "ReferenceError: asdf is not defined", "messageText": "ReferenceError: asdf is not defined",
"parameters": { "parameters": {
"type": "undefined" "type": "undefined"
}, },
"repeat": 1, "repeat": 1,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921377,\"type\":\"result\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":1},\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\",\"userProvidedStyles\":null}", "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921377,\"type\":\"result\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":1},\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\",\"userProvidedStyles\":null}",
"stacktrace": null, "stacktrace": null,
"frame": { "frame": {
"source": "debugger eval code", "source": "debugger eval code",
"line": 1, "line": 1,
"column": 1 "column": 1
}, },
"groupId": null, "groupId": null,
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default", "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
"userProvidedStyles": null "userProvidedStyles": null
})); }));
stubPreparedMessages.set("1 + @", new ConsoleMessage({ stubPreparedMessages.set("1 + @", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "javascript", "source": "javascript",
"timeStamp": 1479159921399, "timeStamp": 1479159921399,
"type": "result", "type": "result",
"level": "error", "level": "error",
"messageText": "SyntaxError: illegal character", "messageText": "SyntaxError: illegal character",
"parameters": { "parameters": {
"type": "undefined" "type": "undefined"
}, },
"repeat": 1, "repeat": 1,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921399,\"type\":\"result\",\"level\":\"error\",\"messageText\":\"SyntaxError: illegal character\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":4},\"groupId\":null,\"userProvidedStyles\":null}", "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1479159921399,\"type\":\"result\",\"level\":\"error\",\"messageText\":\"SyntaxError: illegal character\",\"parameters\":{\"type\":\"undefined\"},\"repeatId\":null,\"stacktrace\":null,\"frame\":{\"source\":\"debugger eval code\",\"line\":1,\"column\":4},\"groupId\":null,\"userProvidedStyles\":null}",
"stacktrace": null, "stacktrace": null,
"frame": { "frame": {
"source": "debugger eval code", "source": "debugger eval code",
"line": 1, "line": 1,
"column": 4 "column": 4
}, },
"groupId": null, "groupId": null,
"userProvidedStyles": null "userProvidedStyles": null
})); }));
stubPackets.set("new Date(0)", { stubPackets.set("new Date(0)", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"input": "new Date(0)", "input": "new Date(0)",
"result": { "result": {
"type": "object", "type": "object",
"actor": "server1.conn0.child1/obj30", "actor": "server1.conn0.child1/obj30",
"class": "Date", "class": "Date",
"extensible": true, "extensible": true,
"frozen": false, "frozen": false,
"sealed": false, "sealed": false,
"ownPropertyLength": 0, "ownPropertyLength": 0,
"preview": { "preview": {
"timestamp": 0 "timestamp": 0
} }
}, },
"timestamp": 1479159921364, "timestamp": 1479159921364,
"exception": null, "exception": null,
"frame": null, "frame": null,
"helperResult": null "helperResult": null
}); });
stubPackets.set("asdf()", { stubPackets.set("asdf()", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"input": "asdf()", "input": "asdf()",
"result": { "result": {
"type": "undefined" "type": "undefined"
}, },
"timestamp": 1479159921377, "timestamp": 1479159921377,
"exception": { "exception": {
"type": "object", "type": "object",
"actor": "server1.conn0.child1/obj32", "actor": "server1.conn0.child1/obj32",
"class": "Error", "class": "Error",
"extensible": true, "extensible": true,
"frozen": false, "frozen": false,
"sealed": false, "sealed": false,
"ownPropertyLength": 4, "ownPropertyLength": 4,
"preview": { "preview": {
"kind": "Error", "kind": "Error",
"name": "ReferenceError", "name": "ReferenceError",
"message": "asdf is not defined", "message": "asdf is not defined",
"stack": "@debugger eval code:1:1\n", "stack": "@debugger eval code:1:1\n",
"fileName": "debugger eval code", "fileName": "debugger eval code",
"lineNumber": 1, "lineNumber": 1,
"columnNumber": 1 "columnNumber": 1
} }
}, },
"exceptionMessage": "ReferenceError: asdf is not defined", "exceptionMessage": "ReferenceError: asdf is not defined",
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default", "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
"frame": { "frame": {
"source": "debugger eval code", "source": "debugger eval code",
"line": 1, "line": 1,
"column": 1 "column": 1
}, },
"helperResult": null "helperResult": null
}); });
stubPackets.set("1 + @", { stubPackets.set("1 + @", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"input": "1 + @", "input": "1 + @",
"result": { "result": {
"type": "undefined" "type": "undefined"
}, },
"timestamp": 1479159921399, "timestamp": 1479159921399,
"exception": { "exception": {
"type": "object", "type": "object",
"actor": "server1.conn0.child1/obj33", "actor": "server1.conn0.child1/obj33",
"class": "Error", "class": "Error",
"extensible": true, "extensible": true,
"frozen": false, "frozen": false,
"sealed": false, "sealed": false,
"ownPropertyLength": 4, "ownPropertyLength": 4,
"preview": { "preview": {
"kind": "Error", "kind": "Error",
"name": "SyntaxError", "name": "SyntaxError",
"message": "illegal character", "message": "illegal character",
"stack": "", "stack": "",
"fileName": "debugger eval code", "fileName": "debugger eval code",
"lineNumber": 1, "lineNumber": 1,
"columnNumber": 4 "columnNumber": 4
} }
}, },
"exceptionMessage": "SyntaxError: illegal character", "exceptionMessage": "SyntaxError: illegal character",
"frame": { "frame": {
"source": "debugger eval code", "source": "debugger eval code",
"line": 1, "line": 1,
"column": 4 "column": 4
}, },
"helperResult": null "helperResult": null
}); });
module.exports = { module.exports = {
stubPreparedMessages, stubPreparedMessages,
stubPackets, stubPackets,
} };

View file

@ -1,5 +1,6 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable max-len */
"use strict"; "use strict";
@ -7,186 +8,183 @@
* THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE. * THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE.
*/ */
const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types"); const { NetworkEventMessage } =
require("devtools/client/webconsole/new-console-output/types");
let stubPreparedMessages = new Map(); let stubPreparedMessages = new Map();
let stubPackets = new Map(); let stubPackets = new Map();
stubPreparedMessages.set("GET request", new NetworkEventMessage({ stubPreparedMessages.set("GET request", new NetworkEventMessage({
"id": "1", "id": "1",
"actor": "server1.conn0.child1/netEvent29", "actor": "server1.conn0.child1/netEvent29",
"level": "log", "level": "log",
"isXHR": false, "isXHR": false,
"request": { "request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET" "method": "GET"
}, },
"response": {}, "response": {},
"source": "network", "source": "network",
"type": "log", "type": "log",
"timeStamp": 1479159937660, "timeStamp": 1479159937660,
"groupId": null "groupId": null
})); }));
stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({ stubPreparedMessages.set("XHR GET request", new NetworkEventMessage({
"id": "1", "id": "1",
"actor": "server1.conn1.child1/netEvent29", "actor": "server1.conn1.child1/netEvent29",
"level": "log", "level": "log",
"isXHR": true, "isXHR": true,
"request": { "request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET" "method": "GET"
}, },
"response": {}, "response": {},
"source": "network", "source": "network",
"type": "log", "type": "log",
"timeStamp": 1479159938522, "timeStamp": 1479159938522,
"groupId": null "groupId": null
})); }));
stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({ stubPreparedMessages.set("XHR POST request", new NetworkEventMessage({
"id": "1", "id": "1",
"actor": "server1.conn2.child1/netEvent29", "actor": "server1.conn2.child1/netEvent29",
"level": "log", "level": "log",
"isXHR": true, "isXHR": true,
"request": { "request": {
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "POST" "method": "POST"
}, },
"response": {}, "response": {},
"source": "network", "source": "network",
"type": "log", "type": "log",
"timeStamp": 1479159939328, "timeStamp": 1479159939328,
"groupId": null "groupId": null
})); }));
stubPackets.set("GET request", { stubPackets.set("GET request", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"type": "networkEvent", "type": "networkEvent",
"eventActor": { "eventActor": {
"actor": "server1.conn0.child1/netEvent29", "actor": "server1.conn0.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:04.196Z", "startedDateTime": "2016-10-15T23:12:04.196Z",
"timeStamp": 1479159937660, "timeStamp": 1479159937660,
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET", "method": "GET",
"isXHR": false, "isXHR": false,
"cause": { "cause": {
"type": 3, "type": 3,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html", "loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [ "stacktrace": [
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 3, "lineNumber": 3,
"columnNumber": 1, "columnNumber": 1,
"functionName": "triggerPacket", "functionName": "triggerPacket",
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4, "lineNumber": 4,
"columnNumber": 7, "columnNumber": 7,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53, "lineNumber": 53,
"columnNumber": 20, "columnNumber": 20,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
} }
] ]
}, },
"private": false "private": false
} }
}); });
stubPackets.set("XHR GET request", { stubPackets.set("XHR GET request", {
"from": "server1.conn1.child1/consoleActor2", "from": "server1.conn1.child1/consoleActor2",
"type": "networkEvent", "type": "networkEvent",
"eventActor": { "eventActor": {
"actor": "server1.conn1.child1/netEvent29", "actor": "server1.conn1.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:05.690Z", "startedDateTime": "2016-10-15T23:12:05.690Z",
"timeStamp": 1479159938522, "timeStamp": 1479159938522,
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "GET", "method": "GET",
"isXHR": true, "isXHR": true,
"cause": { "cause": {
"type": 11, "type": 11,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html", "loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [ "stacktrace": [
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4, "lineNumber": 4,
"columnNumber": 1, "columnNumber": 1,
"functionName": "triggerPacket", "functionName": "triggerPacket",
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4, "lineNumber": 4,
"columnNumber": 7, "columnNumber": 7,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53, "lineNumber": 53,
"columnNumber": 20, "columnNumber": 20,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
} }
] ]
}, },
"private": false "private": false
} }
}); });
stubPackets.set("XHR POST request", { stubPackets.set("XHR POST request", {
"from": "server1.conn2.child1/consoleActor2", "from": "server1.conn2.child1/consoleActor2",
"type": "networkEvent", "type": "networkEvent",
"eventActor": { "eventActor": {
"actor": "server1.conn2.child1/netEvent29", "actor": "server1.conn2.child1/netEvent29",
"startedDateTime": "2016-10-15T23:12:07.158Z", "startedDateTime": "2016-10-15T23:12:07.158Z",
"timeStamp": 1479159939328, "timeStamp": 1479159939328,
"url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html", "url": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/inexistent.html",
"method": "POST", "method": "POST",
"isXHR": true, "isXHR": true,
"cause": { "cause": {
"type": 11, "type": 11,
"loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html", "loadingDocumentUri": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-network-event.html",
"stacktrace": [ "stacktrace": [
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js",
"lineNumber": 4, "lineNumber": 4,
"columnNumber": 1, "columnNumber": 1,
"functionName": "triggerPacket", "functionName": "triggerPacket",
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js line 52 > eval",
"lineNumber": 4, "lineNumber": 4,
"columnNumber": 7, "columnNumber": 7,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
}, },
{ {
"filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js", "filename": "chrome://mochikit/content/tests/BrowserTestUtils/content-task.js",
"lineNumber": 53, "lineNumber": 53,
"columnNumber": 20, "columnNumber": 20,
"functionName": null, "functionName": null,
"asyncCause": null "asyncCause": null
} }
] ]
}, },
"private": false "private": false
} }
}); });
module.exports = { module.exports = {
stubPreparedMessages, stubPreparedMessages,
stubPackets, stubPackets,
} };

View file

@ -1,5 +1,6 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */ http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable max-len */
"use strict"; "use strict";
@ -7,96 +8,95 @@
* THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE. * THIS FILE IS AUTOGENERATED. DO NOT MODIFY BY HAND. RUN TESTS IN FIXTURES/ TO UPDATE.
*/ */
const { ConsoleMessage, NetworkEventMessage } = require("devtools/client/webconsole/new-console-output/types"); const { ConsoleMessage } =
require("devtools/client/webconsole/new-console-output/types");
let stubPreparedMessages = new Map(); let stubPreparedMessages = new Map();
let stubPackets = new Map(); let stubPackets = new Map();
stubPreparedMessages.set("ReferenceError: asdf is not defined", new ConsoleMessage({ stubPreparedMessages.set("ReferenceError: asdf is not defined", new ConsoleMessage({
"id": "1", "id": "1",
"allowRepeating": true, "allowRepeating": true,
"source": "javascript", "source": "javascript",
"type": "log", "timeStamp": 1476573167137,
"level": "error", "type": "log",
"messageText": "ReferenceError: asdf is not defined", "level": "error",
"parameters": null, "messageText": "ReferenceError: asdf is not defined",
"repeat": 1, "parameters": null,
"repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"type\":\"log\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":3,\"columnNumber\":5,\"functionName\":\"bar\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":6,\"columnNumber\":5,\"functionName\":\"foo\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":9,\"columnNumber\":3,\"functionName\":null}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"line\":3,\"column\":5},\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\"}", "repeat": 1,
"stacktrace": [ "repeatId": "{\"id\":null,\"allowRepeating\":true,\"source\":\"javascript\",\"timeStamp\":1476573167137,\"type\":\"log\",\"level\":\"error\",\"messageText\":\"ReferenceError: asdf is not defined\",\"parameters\":null,\"repeatId\":null,\"stacktrace\":[{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":3,\"columnNumber\":5,\"functionName\":\"bar\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":6,\"columnNumber\":5,\"functionName\":\"foo\"},{\"filename\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"lineNumber\":9,\"columnNumber\":3,\"functionName\":null}],\"frame\":{\"source\":\"http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error\",\"line\":3,\"column\":5},\"groupId\":null,\"exceptionDocURL\":\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default\",\"userProvidedStyles\":null}",
{ "stacktrace": [
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", {
"lineNumber": 3, "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"columnNumber": 5, "lineNumber": 3,
"functionName": "bar" "columnNumber": 5,
}, "functionName": "bar"
{ },
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", {
"lineNumber": 6, "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"columnNumber": 5, "lineNumber": 6,
"functionName": "foo" "columnNumber": 5,
}, "functionName": "foo"
{ },
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", {
"lineNumber": 9, "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"columnNumber": 3, "lineNumber": 9,
"functionName": null "columnNumber": 3,
} "functionName": null
], }
"frame": { ],
"source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", "frame": {
"line": 3, "source": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"column": 5 "line": 3,
}, "column": 5
"groupId": null, },
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default" "groupId": null,
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
"userProvidedStyles": null
})); }));
stubPackets.set("ReferenceError: asdf is not defined", { stubPackets.set("ReferenceError: asdf is not defined", {
"from": "server1.conn0.child1/consoleActor2", "from": "server1.conn0.child1/consoleActor2",
"type": "pageError", "type": "pageError",
"pageError": { "pageError": {
"errorMessage": "ReferenceError: asdf is not defined", "errorMessage": "ReferenceError: asdf is not defined",
"errorMessageName": "JSMSG_NOT_DEFINED", "errorMessageName": "JSMSG_NOT_DEFINED",
"exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default", "exceptionDocURL": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_defined?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default",
"sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", "sourceName": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"lineText": "", "lineText": "",
"lineNumber": 3, "lineNumber": 3,
"columnNumber": 5, "columnNumber": 5,
"category": "content javascript", "category": "content javascript",
"timeStamp": 1476573167137, "timeStamp": 1476573167137,
"warning": false, "warning": false,
"error": false, "error": false,
"exception": true, "exception": true,
"strict": false, "strict": false,
"info": false, "info": false,
"private": false, "private": false,
"stacktrace": [ "stacktrace": [
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"lineNumber": 3, "lineNumber": 3,
"columnNumber": 5, "columnNumber": 5,
"functionName": "bar" "functionName": "bar"
}, },
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"lineNumber": 6, "lineNumber": 6,
"columnNumber": 5, "columnNumber": 5,
"functionName": "foo" "functionName": "foo"
}, },
{ {
"filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error", "filename": "http://example.com/browser/devtools/client/webconsole/new-console-output/test/fixtures/stub-generators/test-tempfile.js?key=Reference%20Error",
"lineNumber": 9, "lineNumber": 9,
"columnNumber": 3, "columnNumber": 3,
"functionName": null "functionName": null
} }
] ]
} }
}); });
module.exports = { module.exports = {
stubPreparedMessages, stubPreparedMessages,
stubPackets, stubPackets,
} };

View file

@ -137,34 +137,35 @@ add_task(function* () {
is(consoleTableNodes.length, testCases.length, is(consoleTableNodes.length, testCases.length,
"console has the expected number of consoleTable items"); "console has the expected number of consoleTable items");
testCases.forEach((testCase, index) => { testCases.forEach((testCase, index) => testItem(testCase, nodes[index]));
info(testCase.info); });
let node = nodes[index]; function testItem(testCase, node) {
let columns = Array.from(node.querySelectorAll("thead th")); info(testCase.info);
let rows = Array.from(node.querySelectorAll("tbody tr"));
is( let columns = Array.from(node.querySelectorAll("thead th"));
JSON.stringify(testCase.expected.columns), let rows = Array.from(node.querySelectorAll("tbody tr"));
JSON.stringify(columns.map(column => column.textContent)),
"table has the expected columns"
);
is(testCase.expected.rows.length, rows.length, is(
"table has the expected number of rows"); JSON.stringify(testCase.expected.columns),
JSON.stringify(columns.map(column => column.textContent)),
"table has the expected columns"
);
testCase.expected.rows.forEach((expectedRow, rowIndex) => { is(testCase.expected.rows.length, rows.length,
let row = rows[rowIndex]; "table has the expected number of rows");
let cells = row.querySelectorAll("td");
is(expectedRow.length, cells.length, "row has the expected number of cells");
expectedRow.forEach((expectedCell, cellIndex) => { testCase.expected.rows.forEach((expectedRow, rowIndex) => {
let cell = cells[cellIndex]; let row = rows[rowIndex];
is(expectedCell, cell.textContent, "cell has the expected content"); let cells = row.querySelectorAll("td");
}); is(expectedRow.length, cells.length, "row has the expected number of cells");
expectedRow.forEach((expectedCell, cellIndex) => {
let cell = cells[cellIndex];
is(expectedCell, cell.textContent, "cell has the expected content");
}); });
}); });
}); }
function findConsoleTable(node, index) { function findConsoleTable(node, index) {
let condition = node.querySelector( let condition = node.querySelector(

View file

@ -19,15 +19,15 @@ add_task(function* () {
let receievedMessages = waitForMessages({ let receievedMessages = waitForMessages({
hud, hud,
messages: [{ messages: [{
text: '0', text: "0",
}, { }, {
text: '1', text: "1",
}, { }, {
text: '2', text: "2",
}], }],
}); });
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function() { yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () {
content.wrappedJSObject.doLogs(3); content.wrappedJSObject.doLogs(3);
}); });

View file

@ -21,6 +21,8 @@ add_task(function* () {
}); });
function setupObserver() { function setupObserver() {
const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
const observer = { const observer = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]), QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
@ -34,7 +36,8 @@ function setupObserver() {
created = true; created = true;
break; break;
case "web-console-destroyed": case "web-console-destroyed":
ok(!HUDService.getHudReferenceById(subject.data), "We do not have a hud reference"); ok(!HUDService.getHudReferenceById(subject.data),
"We do not have a hud reference");
Services.obs.removeObserver(observer, "web-console-destroyed"); Services.obs.removeObserver(observer, "web-console-destroyed");
destroyed = true; destroyed = true;
break; break;

View file

@ -3,6 +3,7 @@
/* Any copyright is dedicated to the Public Domain. /* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */ * http://creativecommons.org/publicdomain/zero/1.0/ */
/* import-globals-from ../../../../framework/test/shared-head.js */ /* import-globals-from ../../../../framework/test/shared-head.js */
/* exported WCUL10n, openNewTabAndConsole, waitForMessages, waitFor, findMessage */
"use strict"; "use strict";
@ -50,34 +51,38 @@ var openNewTabAndConsole = Task.async(function* (url) {
* *
* @param object options * @param object options
* - hud: the webconsole * - hud: the webconsole
* - messages: Array[Object]. An array of messages to match. Current supported options: * - messages: Array[Object]. An array of messages to match.
Current supported options:
* - text: Exact text match in .message-body * - text: Exact text match in .message-body
*/ */
function waitForMessages({ hud, messages }) { function waitForMessages({ hud, messages }) {
return new Promise(resolve => { return new Promise(resolve => {
let numMatched = 0; let numMatched = 0;
let receivedLog = hud.ui.on("new-messages", function messagesReceieved(e, newMessages) { let receivedLog = hud.ui.on("new-messages",
for (let message of messages) { function messagesReceieved(e, newMessages) {
if (message.matched) { for (let message of messages) {
continue; if (message.matched) {
} continue;
}
for (let newMessage of newMessages) { for (let newMessage of newMessages) {
if (newMessage.node.querySelector(".message-body").textContent == message.text) { let messageBody = newMessage.node.querySelector(".message-body");
numMatched++; if (messageBody.textContent == message.text) {
message.matched = true; numMatched++;
info("Matched a message with text: " + message.text + ", still waiting for " + (messages.length - numMatched) + " messages"); message.matched = true;
break; info("Matched a message with text: " + message.text +
", still waiting for " + (messages.length - numMatched) + " messages");
break;
}
}
if (numMatched === messages.length) {
hud.ui.off("new-messages", messagesReceieved);
resolve(receivedLog);
return;
} }
} }
});
if (numMatched === messages.length) {
hud.ui.off("new-messages", messagesReceieved);
resolve(receivedLog);
return;
}
}
});
}); });
} }

View file

@ -7,6 +7,7 @@
<body> <body>
<p>batch console calls test page</p> <p>batch console calls test page</p>
<script> <script>
/* exported batchLog, batchLogAndClear */
"use strict"; "use strict";
function batchLog(numMessages = 0) { function batchLog(numMessages = 0) {

View file

@ -7,6 +7,8 @@
<body> <body>
<p>Webconsole filters test page</p> <p>Webconsole filters test page</p>
<script> <script>
"use strict";
console.log("console log"); console.log("console log");
console.warn("console warn"); console.warn("console warn");
console.error("console error"); console.error("console error");

View file

@ -7,21 +7,22 @@
<body> <body>
<p>console.group() & console.groupCollapsed() test page</p> <p>console.group() & console.groupCollapsed() test page</p>
<script> <script>
/* exported doLog */
"use strict"; "use strict";
function doLog() { function doLog() {
console.group("group-1"); console.group("group-1");
console.log("log-1"); console.log("log-1");
console.group("group-2"); console.group("group-2");
console.log("log-2"); console.log("log-2");
console.groupEnd("group-2"); console.groupEnd("group-2");
console.log("log-3"); console.log("log-3");
console.groupEnd("group-1"); console.groupEnd("group-1");
console.log("log-4"); console.log("log-4");
console.groupCollapsed("group-3"); console.groupCollapsed("group-3");
console.log("log-5"); console.log("log-5");
console.groupEnd("group-3"); console.groupEnd("group-3");
console.log("log-6"); console.log("log-6");
} }
</script> </script>
</body> </body>

View file

@ -7,6 +7,9 @@
<body> <body>
<p>console.table() test page</p> <p>console.table() test page</p>
<script> <script>
/* exported doConsoleTable */
"use strict";
function doConsoleTable(data, constrainedHeaders = null) { function doConsoleTable(data, constrainedHeaders = null) {
if (constrainedHeaders) { if (constrainedHeaders) {
console.table(data, constrainedHeaders); console.table(data, constrainedHeaders);

View file

@ -7,9 +7,12 @@
<body> <body>
<p>Simple webconsole test page</p> <p>Simple webconsole test page</p>
<script> <script>
/* exported doLogs */
"use strict";
function doLogs(num) { function doLogs(num) {
num = num || 1; num = num || 1;
for (var i = 0; i < num; i++) { for (let i = 0; i < num; i++) {
console.log(i); console.log(i);
} }
} }

View file

@ -39,4 +39,5 @@ requireHacker.global_hook("default", path => {
case "devtools/shared/client/main": case "devtools/shared/client/main":
return `module.exports = require("devtools/client/webconsole/new-console-output/test/fixtures/ObjectClient")`; return `module.exports = require("devtools/client/webconsole/new-console-output/test/fixtures/ObjectClient")`;
} }
return undefined;
}); });