44 lines
1.6 KiB
HTML
44 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<p>This test ensures selectstart event fires when selection is created by arrow key and script can prevent the selection change.</p>
|
|
If running this test manually, click on the div ("Hello World") and try to select the text using arrow keys.<br>
|
|
Expected result: SelectStart event will fire when user starts extending the selection, but due to script preventDefault it prevents the selection change.<br>
|
|
<div contenteditable>Hello World</div>
|
|
<script>
|
|
|
|
|
|
var selectStartCount = 0;
|
|
var div = document.getElementsByTagName('div')[0];
|
|
div.addEventListener('selectstart', function (event) { event.preventDefault(); selectStartCount++; });
|
|
div.focus();
|
|
window.getSelection().setPosition(div.firstChild, 1);
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
eventSender.keyDown("rightArrow", ["shiftKey"]);
|
|
logResult("Check Right arrow + Shift", 1);
|
|
|
|
eventSender.keyDown("rightArrow", ["shiftKey"], ["ctrlKey"]);
|
|
logResult("Check Right arrow + Shift + Control", 2);
|
|
|
|
eventSender.keyDown("end", ["shiftKey"]);
|
|
logResult("Check End + Shift", 3);
|
|
}
|
|
|
|
function logResult(title, expectedCount) {
|
|
var range = window.getSelection().getRangeAt(0);
|
|
document.write(title + ': ');
|
|
if (selectStartCount != expectedCount)
|
|
document.write('FAIL - expected ' + expectedCount + ' events but got ' + selectStartCount + ' events');
|
|
else if (range.startOffset != 1 || range.endOffset != 1)
|
|
document.write('FAIL - selection changed');
|
|
else
|
|
document.write('PASS');
|
|
document.write('<br>');
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|