Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
// Test that user input is not cleared when 'devtools.webconsole.input.editor'
// is set to true.
"use strict";
const TEST_URI =
"data:text/html;charset=utf-8,<!DOCTYPE html>Web Console test for bug 1519313";
add_task(async function () {
await pushPref("devtools.webconsole.input.editor", true);
const hud = await openNewTabAndConsole(TEST_URI);
const testExpressions = [
"`Mozilla 😍 Firefox`",
"`Firefox Devtools are awesome`",
"`2 + 2 = 5?`",
"`I'm running out of ideas...`",
"`🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘`",
"`🌊🌊 🐄 🐄 🏠 🐄 🐄 ⛈`",
"`🌈 🌈 🌈 ðŸĶ„ ðŸĶ„ 🌈 🌈 🌈`",
"`Time to perform the test ðŸĪŠ`",
];
info("Executing a bunch of non-sense JS expression");
for (const expression of testExpressions) {
// Wait until we get the result of the command.
await executeAndWaitForResultMessage(hud, expression, "");
ok(true, `JS expression executed successfully: ${expression} `);
}
info("Test that pressing ArrowUp does nothing");
EventUtils.synthesizeKey("KEY_ArrowUp");
is(getInputValue(hud), "", "Good! There is no text in the JS Editor");
info("Test that pressing multiple times ArrowUp does nothing");
EventUtils.synthesizeKey("KEY_ArrowUp");
EventUtils.synthesizeKey("KEY_ArrowUp");
EventUtils.synthesizeKey("KEY_ArrowUp");
is(getInputValue(hud), "", "Good! Again, there is no text in the JS Editor");
info(
"Move somewhere in the middle of the history using the navigation buttons and test again"
);
const prevHistoryButton = getEditorToolbar(hud).querySelector(
".webconsole-editor-toolbar-history-prevExpressionButton"
);
info("Pressing 3 times the previous history button");
prevHistoryButton.click();
prevHistoryButton.click();
prevHistoryButton.click();
const jsExpression = testExpressions[testExpressions.length - 3];
is(
getInputValue(hud),
jsExpression,
"Sweet! We are in the right position of the history"
);
info("Test again that pressing ArrowUp does nothing");
EventUtils.synthesizeKey("KEY_ArrowUp");
is(
getInputValue(hud),
jsExpression,
"OMG! We have some cows in the JS Editor!"
);
info("Test again that pressing multiple times ArrowUp does nothing");
EventUtils.synthesizeKey("KEY_ArrowUp");
EventUtils.synthesizeKey("KEY_ArrowUp");
EventUtils.synthesizeKey("KEY_ArrowUp");
is(
getInputValue(hud),
jsExpression,
"Awesome! The cows are still there in the JS Editor!"
);
info("Test that pressing ArrowDown does nothing");
EventUtils.synthesizeKey("KEY_ArrowDown");
is(
getInputValue(hud),
jsExpression,
"Super! We still have the cows in the JS Editor!"
);
info("Test that pressing multiple times ArrowDown does nothing");
EventUtils.synthesizeKey("KEY_ArrowDown");
EventUtils.synthesizeKey("KEY_ArrowDown");
EventUtils.synthesizeKey("KEY_ArrowDown");
is(getInputValue(hud), jsExpression, "And the cows are still there...");
});
function getEditorToolbar(hud) {
return hud.ui.outputNode.querySelector(".webconsole-editor-toolbar");
}