<!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;
}

pre {
    width: 300px;
    height: 160px;
    overflow: scroll;
    border: 1px green solid;
}

pre > #result {
    color: green;
}

#target {
    width: 300px;
    height: 160px;
}
</style>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function midPointOfRect(rect) {
    return [rect.left + (rect.width / 2), rect.top + (rect.height / 2)];
}

async function runTest() {
    // Wait for both the main frame and the subframe to finish loading.
    loadCount = window.loadCount ? loadCount : 0;
    if (++loadCount != 2)
        return;

    await longPressAtPoint(160, 240);
    let startRect = { };
    let endRect = { };
    while (!startRect.width || !startRect.height || !endRect.width || !endRect.height) {
        startRect = await UIHelper.getSelectionStartGrabberViewRect();
        endRect = await UIHelper.getSelectionEndGrabberViewRect();
    }

    const [startX, startY] = midPointOfRect(startRect);
    await touchAndDragFromPointToPoint(startX, startY, startX, startY + 100);
    await liftUpAtPoint(startX, startY + 100);

    const [endX, endY] = midPointOfRect(endRect);
    await touchAndDragFromPointToPoint(endX, endY, endX, endY - 100);
    await liftUpAtPoint(endX, endY - 100);

    result.textContent = target.contentWindow.getSelection().toString();
    testRunner.notifyDone();
}
</script>
</head>

<body onload="runTest()">
<pre>The final selection is: "<span id="result"></span>"</pre>
<iframe onload="runTest()" src="data:text/html,
    <span id='text' style='font-size: 140px;'>iOS</span>" id="target"></iframe>
<p>Verifies that the selection remains the same when dragging the start selection handles below the end selection handle and vice versa.</p>
<p>To manually run the test, select "iOS" in the iframe above, drag the start selection handle down, and then drag the end selection handle up.</p>
<p>The text "iOS" should remain selected.</p>
</body>
</html>