gecko-dev/layout/base/tests/bug1258308-1.html
Emilio Cobos Álvarez 6dd8794692 Bug 1634456 - Use double-raf to wait for caret scrolling to happen.
Before bug 1634153, we were using Dispatch(), so setTimeout(0) was the right
thing to wait for.

In bug 1634153 I used the existing mechanism which works as an early refresh
driver runner, so we need to wait for a refresh driver tick, not an event loop
turn.

Differential Revision: https://phabricator.services.mozilla.com/D73834
2020-05-05 11:19:07 +00:00

43 lines
1.3 KiB
HTML

<!DOCTYPE HTML>
<html class="reftest-wait">
<head>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<meta charset="utf-8">
<title>Testcase #1 for bug 1258308</title>
<script>
function test1() {
const kIsMac = navigator.platform.indexOf("Mac") == 0;
synthesizeKey("KEY_ArrowDown"); // go to the second line
// go to the end of the second line
if (kIsMac) {
synthesizeKey("KEY_ArrowRight", {accelKey: true});
} else {
synthesizeKey("KEY_End");
}
synthesizeKey("KEY_ArrowRight", {shiftKey: true}); // select the newline
synthesizeKey("KEY_ArrowRight"); // collapse to the end of the selection
// caret should now be at the start of the third line
document.body.offsetHeight;
requestAnimationFrame(() => requestAnimationFrame(() => {
document.documentElement.removeAttribute("class");
}));
}
function runTests() {
document.querySelector('textarea').focus();
document.body.offsetHeight;
}
</script>
</head>
<body>
<textarea onfocus="test1()" spellcheck="false" style="-moz-appearance:none">abc
def
ghi</textarea>
<script>
SimpleTest.waitForFocus(runTests);
</script>
</body>
</html>