Bug 1342526 - quote string expression results in console; r=nchevobbe

MozReview-Commit-ID: 1HFbotCZoZ6

--HG--
extra : rebase_source : f9893c940b9c0017e54bbfb2f55f7752ee264c16
This commit is contained in:
Tom Tromey 2017-03-14 04:28:43 +01:00
Родитель 66e158e1c6
Коммит 2f5cb642f9
7 изменённых файлов: 48 добавлений и 5 удалений

Просмотреть файл

@ -62,6 +62,7 @@ const ConsoleTable = createClass({
GripMessageBody({
grip: item[key],
mode: MODE.SHORT,
useQuotes: false,
})
)
);

Просмотреть файл

@ -37,6 +37,7 @@ GripMessageBody.propTypes = {
createElement: PropTypes.func.isRequired,
}),
userProvidedStyle: PropTypes.string,
useQuotes: PropTypes.bool,
};
GripMessageBody.defaultProps = {
@ -44,7 +45,7 @@ GripMessageBody.defaultProps = {
};
function GripMessageBody(props) {
const { grip, userProvidedStyle, serviceContainer } = props;
const { grip, userProvidedStyle, serviceContainer, useQuotes } = props;
let styleObject;
if (userProvidedStyle && userProvidedStyle !== "") {
@ -63,7 +64,7 @@ function GripMessageBody(props) {
typeof grip === "string"
? StringRep({
object: grip,
useQuotes: false,
useQuotes: useQuotes,
mode: props.mode,
style: styleObject
})

Просмотреть файл

@ -119,7 +119,8 @@ function formatReps(parameters, userProvidedStyles, serviceContainer) {
grip,
key,
userProvidedStyle: userProvidedStyles ? userProvidedStyles[key] : null,
serviceContainer
serviceContainer,
useQuotes: false,
}))
// Interleave spaces.
.reduce((arr, v, i) => {

Просмотреть файл

@ -43,7 +43,7 @@ function EvaluationResult(props) {
if (message.messageText) {
messageBody = message.messageText;
} else {
messageBody = GripMessageBody({grip: parameters, serviceContainer});
messageBody = GripMessageBody({grip: parameters, serviceContainer, useQuotes: true});
}
const topLevelClasses = ["cm-s-mozilla"];

Просмотреть файл

@ -41,5 +41,6 @@ skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32
[browser_webconsole_observer_notifications.js]
[browser_webconsole_stacktrace_location_debugger_link.js]
[browser_webconsole_stacktrace_location_scratchpad_link.js]
[browser_webconsole_string.js]
[browser_webconsole_timestamps.js]
[browser_webconsole_vview_close_on_esc_key.js]

Просмотреть файл

@ -0,0 +1,35 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* 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/ */
"use strict";
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/new-console-output/test/mochitest/test-console.html";
add_task(function* () {
let hud = yield openNewTabAndConsole(TEST_URI);
info("console.log with a string argument");
let receievedMessages = waitForMessages({
hud,
messages: [{
// Test that the output does not include quotes.
text: "stringLog",
}],
});
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function () {
content.wrappedJSObject.stringLog();
});
yield receievedMessages;
info("evaluating a string constant");
let jsterm = hud.jsterm;
yield jsterm.execute("\"string constant\"");
let msg = yield waitFor(() => findMessage(hud, "constant"));
let body = msg.querySelector(".message-body");
// On the other hand, a string constant result should be quoted.
ok(body.textContent.includes("\"string constant\""), "found expected text");
});

Просмотреть файл

@ -7,7 +7,7 @@
<body>
<p>Simple webconsole test page</p>
<script>
/* exported doLogs */
/* exported doLogs, stringLog */
"use strict";
function doLogs(num) {
@ -16,6 +16,10 @@
console.log(i);
}
}
function stringLog() {
console.log("stringLog");
}
</script>
</body>
</html>