blob: 3474e027049cbf887e227ead3f83875e13b411a4 [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<head>
<script src="../../../resources/ui-helper.js"></script>
<script src="../../../resources/js-test.js"></script>
<style>
body {
margin: 0;
}
input {
width: 100%;
height: 50px;
position: absolute;
left: 0;
top: 0;
}
div {
background-image: linear-gradient(0deg, blue, red);
height: 10000px;
}
</style>
</head>
<body>
<div>
<input id="input"></input>
</div>
</body>
<script>
jsTestIsAsync = true;
(() => {
if (!window.testRunner || !testRunner.runUIScript) {
description("To manually test, tap this input field and scroll up. The text caret should not end up outside of the input.");
return;
}
UIHelper.activateAndWaitForInputSessionAt(innerWidth / 2, 30)
.then(() => UIHelper.getUICaretRect())
.then((rect) => {
initialCaretRect = rect;
shouldBe("initialCaretRect.left", "6");
shouldBe("initialCaretRect.top", "21");
shouldBe("initialCaretRect.width", "3");
shouldBe("initialCaretRect.height", "15");
document.scrollingElement.scrollTop += 5000;
return UIHelper.getUICaretRect();
})
.then((rect) => {
finalCaretRect = rect;
shouldBe("finalCaretRect.left", "6");
shouldBe("finalCaretRect.top", "21");
shouldBe("finalCaretRect.width", "3");
shouldBe("finalCaretRect.height", "15");
finishJSTest();
});
})();
</script>
</html>