blob: 355eff1446e3c7538e4eb5b9c056c0d5dfd046ed [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org">
<link rel="help" href="https://github.com/WICG/display-locking">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div style="height: 2000px;">spacer</div>
<script>
async_test(t => {
window.onload = t.step_func_done(() => {
const foo = document.createElement('div');
foo.textContent = 'foo';
foo.id = 'foo';
document.body.appendChild(foo);
foo.addEventListener('beforematch', () => {
// Move the matched element 2000px down the page.
const spacer = document.createElement('div');
spacer.style.height = '2000px';
document.body.appendChild(spacer);
foo.remove();
document.body.appendChild(foo);
});
window.location.hash = '#foo';
const offsetAfterMatch = window.pageYOffset;
foo.scrollIntoView();
assert_equals(offsetAfterMatch, window.pageYOffset, `The scroll after beforematch should be the same as scrolling directly to the element's final destination.`);
});
}, 'Verifies that when a beforematch event handler moves a matching element, we scroll to its final location.');
</script>
</body>