mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
Bug 1304003: Rewrite browser_console_click_focus.js. r=bgrins
MozReview-Commit-ID: AVePUxOa8wp
This commit is contained in:
parent
274a766dda
commit
700269e5cd
@ -7,12 +7,51 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const TEST_URI = "data:text/html;charset=utf-8,Test input focus";
|
||||
const TEST_URI =
|
||||
`data:text/html;charset=utf-8,Test input focused
|
||||
<script>
|
||||
console.log("console message 1");
|
||||
</script>`;
|
||||
|
||||
add_task(function* () {
|
||||
let hud = yield openNewTabAndConsole(TEST_URI);
|
||||
hud.jsterm.clearOutput();
|
||||
|
||||
let inputNode = hud.jsterm.inputNode;
|
||||
ok(inputNode.getAttribute("focused"), "input node is focused");
|
||||
ok(inputNode.getAttribute("focused"), "input node is focused after output is cleared");
|
||||
|
||||
ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () {
|
||||
content.wrappedJSObject.console.log("console message 2");
|
||||
});
|
||||
let msg = yield waitFor(() => findMessage(hud, "console message 2"));
|
||||
let outputItem = msg.querySelector(".message-body");
|
||||
|
||||
inputNode = hud.jsterm.inputNode;
|
||||
ok(inputNode.getAttribute("focused"), "input node is focused, first");
|
||||
|
||||
yield waitForBlurredInput(inputNode);
|
||||
|
||||
EventUtils.sendMouseEvent({type: "click"}, hud.outputNode);
|
||||
ok(inputNode.getAttribute("focused"), "input node is focused, second time");
|
||||
|
||||
yield waitForBlurredInput(inputNode);
|
||||
|
||||
info("Setting a text selection and making sure a click does not re-focus");
|
||||
let selection = hud.iframeWindow.getSelection();
|
||||
selection.selectAllChildren(outputItem);
|
||||
|
||||
EventUtils.sendMouseEvent({type: "click"}, hud.outputNode);
|
||||
ok(!inputNode.getAttribute("focused"),
|
||||
"input node focused after text is selected");
|
||||
});
|
||||
|
||||
function waitForBlurredInput(inputNode) {
|
||||
return new Promise(resolve => {
|
||||
let lostFocus = () => {
|
||||
ok(!inputNode.getAttribute("focused"), "input node is not focused");
|
||||
resolve();
|
||||
};
|
||||
inputNode.addEventListener("blur", lostFocus, { once: true });
|
||||
document.getElementById("urlbar").click();
|
||||
});
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ function waitForMessages({ hud, messages }) {
|
||||
function* waitFor(condition, message = "waitFor", interval = 100, maxTries = 50) {
|
||||
return new Promise(resolve => {
|
||||
BrowserTestUtils.waitForCondition(condition, message, interval, maxTries)
|
||||
.then(resolve(condition()));
|
||||
.then(() => resolve(condition()));
|
||||
});
|
||||
}
|
||||
|
||||
@ -110,5 +110,5 @@ function findMessage(hud, text, selector = ".message") {
|
||||
hud.ui.experimentalOutputNode.querySelectorAll(selector),
|
||||
(el) => el.textContent.includes(text)
|
||||
);
|
||||
return elements.pop();
|
||||
return elements.length > 0 ? elements.pop() : false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user