blob: fca54a16b51271795efb979319b9dc5534d40e47 [file] [log] [blame]
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
// Regression tests for crbug.com/717453.
function mouseMoveTo(element) {
const document = element.ownerDocument;
const mouseX = document.offsetLeft + element.offsetLeft + element.offsetWidth / 2;
const mouseY = document.offsetTop + element.offsetTop + element.offsetHeight / 2;
eventSender.mouseMoveTo(mouseX, mouseY);
}
test(() => {
assert_not_equals(window.eventSender, 'This test requires eventSender');
assert_selection(
[
'<textarea id="source">^text|</textarea>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target"></textarea>'
].join(''),
selection => {
const document = selection.document;
const source = document.getElementById('source');
const link = document.getElementById('link');
const target = document.getElementById('target');
source.focus();
mouseMoveTo(link);
eventSender.mouseDown();
eventSender.leapForward(500);
mouseMoveTo(target);
eventSender.mouseUp();
},
[
'<textarea id="source">text</textarea>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target">^http://www.example.com/|</textarea>'
].join(''));
}, 'Drag link with unfocused selection in text control');
test(() => {
assert_not_equals(window.eventSender, 'This test requires eventSender');
assert_selection(
[
'<div contenteditable id="source">^text|</div>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target"></textarea>'
].join(''),
selection => {
const document = selection.document;
const source = document.getElementById('source');
const link = document.getElementById('link');
const target = document.getElementById('target');
source.focus();
mouseMoveTo(link);
eventSender.mouseDown();
eventSender.leapForward(500);
mouseMoveTo(target);
eventSender.mouseUp();
},
[
'<div contenteditable id="source">text</div>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target">^http://www.example.com/|</textarea>'
].join(''));
}, 'Drag link with unfocused selection in contenteditable div');
test(() => {
assert_not_equals(window.eventSender, 'This test requires eventSender');
assert_selection(
[
'<div id="source">^text|</div>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target"></textarea>'
].join(''),
selection => {
const document = selection.document;
const source = document.getElementById('source');
const link = document.getElementById('link');
const target = document.getElementById('target');
document.body.focus();
mouseMoveTo(link);
eventSender.mouseDown();
eventSender.leapForward(500);
mouseMoveTo(target);
eventSender.mouseUp();
},
[
'<div id="source">text</div>',
'<a href="http://www.example.com/" id="link">link</a>',
'<textarea id="target">^http://www.example.com/|</textarea>'
].join(''));
}, 'Drag link with unfocused selection in uneditable text');
</script>