blob: 0a9fb6f164317d87a31b2210ceacc022a426f1cc [file] [log] [blame]
<title>InputEvent: macOS Yank</title>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<div id="editable" contenteditable></div>
<textarea id="txt"></textarea>
<script>
test(() => {
assert_not_equals(window.eventSender, undefined, 'This test requires eventSender.');
assert_not_equals(window.testRunner, undefined, 'This test requires testRunner.');
let eventRecorder = '';
document.addEventListener('beforeinput', event => {
eventRecorder += `beforeinput-${event.inputType}-${event.data}-`;
});
document.addEventListener('input', event => {
eventRecorder += `input-${event.inputType}-${event.data}-`;
});
const editable = document.getElementById('editable');
editable.innerHTML = 'abc';
editable.focus();
const selection = window.getSelection();
selection.collapse(editable, 1); // End of first line.
// Delete a word to setup kill buffer.
eventSender.keyDown('Backspace', ['altKey']);
assert_equals(editable.innerHTML, '');
// Test Yank.
eventRecorder = '';
testRunner.execCommand('yank');
assert_equals(editable.innerHTML, 'abc');
assert_equals(eventRecorder, 'beforeinput-insertFromYank-abc-input-insertFromYank-abc-');
}, 'Yank on contenteditable');
test(() => {
assert_not_equals(window.eventSender, undefined, 'This test requires eventSender.');
assert_not_equals(window.testRunner, undefined, 'This test requires testRunner.');
let eventRecorder = '';
document.addEventListener('beforeinput', event => {
eventRecorder += `beforeinput-${event.inputType}-${event.data}-`;
});
document.addEventListener('input', event => {
eventRecorder += `input-${event.inputType}-${event.data}-`;
});
const txt = document.getElementById('txt');
txt.value = 'abc';
txt.focus();
txt.setSelectionRange(3, 3); // End of first line.
// Delete a word to setup kill buffer.
eventSender.keyDown('Backspace', ['altKey']);
assert_equals(txt.value, '');
// Test Yank.
testRunner.execCommand('undo'); // Execute undo to close last typing command.
eventRecorder = '';
testRunner.execCommand('yank');
assert_equals(txt.value, 'abc');
assert_equals(eventRecorder, 'beforeinput-insertFromYank-abc-input-insertFromYank-abc-');
}, 'Yank on <textarea>');
</script>