blob: dc124f0972faf4fa11f7d0d2c30d2bc7cc22d7cc [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../../resources/basic-gestures.js"></script>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
async function runTest()
{
if (!testRunner.runUIScript)
return;
var output = '';
var firstTargetRect = document.getElementById('firstSelection').getBoundingClientRect();
var secondTargetRect = document.getElementById('secondSelection').getBoundingClientRect();
var thirdTargetRect = document.getElementById('thirdSelection').getBoundingClientRect();
var pressPointX = firstTargetRect.x + firstTargetRect.width / 2;
var pressPointY = firstTargetRect.y + firstTargetRect.height / 2;
var dragY = firstTargetRect.y + firstTargetRect.height;
var dragX = firstTargetRect.x + firstTargetRect.width;
var dragY2 = secondTargetRect.y + secondTargetRect.height;
var dragY3 = thirdTargetRect.y + thirdTargetRect.height;
var dragY4 = firstTargetRect.y - firstTargetRect.height;
await longPressAtPoint(pressPointX,pressPointY);
if (document.getSelection().toString() == "sed")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to select a word as a result of a long press. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
await touchAndDragFromPointToPoint(dragX, dragY, dragX, dragY2);
if (document.getSelection().toString() == "sed do eiusmod tempor incididun")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to select additional line after a drag. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
await touchAndDragFromPointToPoint(dragX, dragY2, dragX, dragY3);
if (document.getSelection().toString() == "sed do eiusmod tempor incididunt ut labore et dolore ma")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to select additional line after a drag. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
await touchAndDragFromPointToPoint(dragX, dragY3, dragX, dragY2);
if (document.getSelection().toString() == "sed do eiusmod tempor incididun")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to deselect line after a drag. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
await touchAndDragFromPointToPoint(dragX, dragY2, dragX, dragY);
if (document.getSelection().toString() == "sed")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to deselect line after a drag. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
var result = await touchAndDragFromPointToPoint(dragX, dragY, dragX, dragY4);
if (document.getSelection().toString() == "sed")
output += 'PASS: Correct Selection';
else
output += 'FAIL: failed to reduce selection to a single character by dragging up. Incorrect Selection: ' + document.getSelection().toString();
output += '<br>';
output += result;
document.getElementById('target').innerHTML = output;
testRunner.notifyDone();
}
window.addEventListener('load', runTest, false);
</script>
<style>
#target {
height: 400px;
width: 300px;
background-color: silver;
font-family: monospace;
font-size: 18px;
}
</style>
<meta name="viewport" content="initial-scale=1">
</head>
<body>
<div id="target">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, <span id="firstSelection">sed</span> do eiusmod tempor incididun<span id="secondSelection"></span>t ut labore et dolore mag<span id="thirdSelection"></span>na aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
This test requires UIScriptController to run.
</div>
</body>
</html>