Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
// Tests that any output created from calls to the console API comes before the
// echoed JavaScript.
"use strict";
const TEST_URI =
"test/browser/test-console.html";
add_task(async function () {
const hud = await openNewTabAndConsole(TEST_URI);
const evaluationResultMessage = await executeAndWaitForResultMessage(
hud,
`for (let i = 0; i < 5; i++) { console.log("item-" + i); }`,
"undefined"
);
info("Wait for all the log messages to be displayed");
// Console messages are batched by the Resource watcher API and might be rendered after
// the result message.
const logMessages = await waitFor(() => {
const messages = findConsoleAPIMessages(hud, "item-", ".log");
return messages.length === 5 ? messages : null;
});
const commandMessage = findMessageByType(hud, "", ".command");
is(
commandMessage.nextElementSibling,
logMessages[0],
`the command message is followed by the first log message ( Got "${commandMessage.nextElementSibling.textContent}")`
);
for (let i = 0; i < logMessages.length; i++) {
ok(
logMessages[i].textContent.includes(`item-${i}`),
`The log message item-${i} is at the expected position ( Got "${logMessages[i].textContent}")`
);
}
is(
logMessages[logMessages.length - 1].nextElementSibling,
evaluationResultMessage.node,
"The evaluation result is after the last log message"
);
});