blob: c4005231a7c5cdecc21a80ff7c8e1aa1066a080c [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<p>Verifies that find and replace fires input events of type "insertReplacementText". This test requires WebKitTestRunner.</p>
<div id="editor" contenteditable>
<p>Apple banana orange.</p>
<p>Kiwi banana pear.</p>
</div>
<input type="text" id="field" value="Apple banana orange.">
<pre id="output"></pre>
</body>
<script>
let write = s => output.innerHTML += s + "<br>";
function toString(range) {
if (!range)
return "null";
return `(${range.startContainer}#${range.startOffset},${range.endContainer}#${range.endOffset})`;
}
function logInputEvent(event) {
write(`(${event.target.id}):
type=${event.type},
inputType=${event.inputType},
range=${toString(event.getTargetRanges()[0])},
data=${event.data},
dataTransfer=${event.dataTransfer}`);
}
editor.addEventListener("beforeinput", logInputEvent);
editor.addEventListener("input", logInputEvent);
field.addEventListener("beforeinput", logInputEvent);
field.addEventListener("input", logInputEvent);
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.findStringMatchesInPage("banana", []);
testRunner.replaceFindMatchesAtIndices([0, 1, 2], "watermelon", false);
write("---");
getSelection().setBaseAndExtent(editor.children[0], 0, editor.children[0], 1);
testRunner.replaceFindMatchesAtIndices([], "Pineapple", false);
write("---");
field.focus();
field.setSelectionRange(0, 0);
testRunner.replaceFindMatchesAtIndices([], "Guava", false);
}
</script>
</html>