blob: 8e1270a884a626d1b9216bbdb500bcb1a44025c9 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<script src="../../../resources/ui-helper.js"></script>
<script src="../../../resources/basic-gestures.js"></script>
<meta name=viewport content="width=device-width">
<style>
body, html {
width: 100%;
height: 100%;
margin: 0;
}
#output {
width: 320px;
height: 160px;
overflow: scroll;
color: green;
border: 1px green solid;
}
input {
font-size: 150px;
width: 300px;
height: 100px;
padding-left: 0;
}
</style>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function appendOutput(s) {
const paragraph = document.createElement("div");
paragraph.textContent = s;
output.appendChild(paragraph);
}
async function runTest() {
// First, focus the readonly input.
await UIHelper.activateAt(100, 50);
await UIHelper.waitForDoubleTapDelay();
// Then, select 'aa' with a tap-and-half gesture.
await UIHelper.activateAt(100, 50);
await longPressAtPoint(100, 50);
let grabberEndRect = null;
while (!grabberEndRect || !grabberEndRect.width || !grabberEndRect.height)
grabberEndRect = await UIHelper.getSelectionEndGrabberViewRect();
const [midX, midY] = [grabberEndRect.left + (grabberEndRect.width / 2), grabberEndRect.top + (grabberEndRect.height / 2)];
appendOutput(`Initial selected range: (${input.selectionStart}, ${input.selectionEnd})`);
await touchAndDragFromPointToPoint(midX, midY, midX + 25, midY + 150);
await liftUpAtPoint(midX + 25, midY + 150);
appendOutput(`Final selected range: (${input.selectionStart}, ${input.selectionEnd})`);
testRunner.notifyDone();
}
</script>
</head>
<body onload="runTest()">
<input id="input" readonly value="aa">
<pre id="output"></pre>
<p>Verifies that dragging a selection handle outside of a readonly input does not cause the selection to jump outside of the input.</p>
<p>To manually test, double-tap to select the word "aa", drag the selection end handle out of the bounds of the input, and then drag the selection handle back in.</p>
<p>"aa" should remain selected.</p>
<p>This test is best run under WebKitTestRunner.</p></body>
</html>