64 lines
1.7 KiB
HTML
64 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta name="viewport" content="width=device-width">
|
|
<script src="../../../resources/js-test.js"></script>
|
|
<script src="../../../resources/ui-helper.js"></script>
|
|
<style>
|
|
#test {
|
|
border: 1px solid black;
|
|
height: 500px;
|
|
width: 500px;
|
|
}
|
|
|
|
.hidden {
|
|
display: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<p id="manual-instructions" class="hide">To run this test by hand, place the text insertion point before the 'h' in the text below and press Control + k.</p>
|
|
<div id="console"></div>
|
|
<div id="test" contenteditable="true">ah</div>
|
|
<script>
|
|
window.jsTestIsAsync = true;
|
|
|
|
let testElement = document.getElementById("test");
|
|
let mutationObserver = null;
|
|
|
|
function handleMutation()
|
|
{
|
|
mutationObserver.disconnect();
|
|
shouldBeEqualToString('document.getElementById("test").textContent', "a");
|
|
document.body.removeChild(testElement);
|
|
finishJSTest();
|
|
}
|
|
|
|
async function runTest()
|
|
{
|
|
if (!window.testRunner)
|
|
document.getElementById("manual-instructions").classList.remove("hidden");
|
|
|
|
mutationObserver = new MutationObserver(handleMutation);
|
|
mutationObserver.observe(testElement, { subtree:true, characterData: true });
|
|
|
|
function handleFocus() {
|
|
window.getSelection().setBaseAndExtent(testElement.firstChild, 1, testElement.firstChild, 1); // Put caret before the 'h'.
|
|
if (window.testRunner)
|
|
UIHelper.keyDown("k", ["ctrlKey"]);
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
await UIHelper.activateElement(testElement);
|
|
handleFocus();
|
|
} else
|
|
testElement.addEventListener("focus", handleFocus, { once: true });
|
|
}
|
|
|
|
description("Tests that pressing Control + k in a content-editable field deletes to the end of the paragraph.");
|
|
runTest();
|
|
</script>
|
|
</body>
|
|
</html>
|