blob: 86210abea0a74fbd33ee1efe3659537b431bff03 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../../../resources/js-test-pre.js"></script>
<script src="../../../resources/ui-helper.js"></script>
</head>
<body>
<div id="description">
<p>The selectionchange event should only be fired once when clicking a node that is being edited.</p>
<p>The selectionchange count in the editable node is: <span id="selectionChange">0</span></p>
<p>The caret position in the editable node is: <span id="selectionStart">0</span></p>
</div>
<input id="input" style:"width: 100%"/>
</body>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
jsTestIsAsync = true;
const x = input.offsetLeft;
const y = input.offsetTop + input.offsetHeight / 2;
const string = "Thisisareallylongstringthatfillstheinputfield";
input.value = string;
UIHelper.activateAndWaitForInputSessionAt(x, y).then(() => {
selectionChangeCount = 0;
document.addEventListener("selectionchange", function(e) {
selectionChangeCount += 1;
selectionChange.textContent = selectionChangeCount;
selectionStart.textContent = input.selectionStart;
});
UIHelper.activateElement(input).then(() => {
shouldBeEqualToString("document.getElementById('selectionChange').textContent", `${selectionChangeCount}`);
shouldBeEqualToString("document.getElementById('selectionStart').textContent", `${string.length}`);
finishJSTest();
});
});
}
</script>
<script src="../../../resources/js-test-post.js"></script>
</html>