blob: d8405243944267de4fa1e280a835717f0a86dfbd [file] [log] [blame]
<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
<style>
body {
height: 2500px;
}
.scroller {
border: 1px solid black;
}
.outer.scroller {
width: 500px;
height: 300px;
overflow: auto;
}
.inner.scroller {
width: 400px;
height: 250px;
overflow-x: hidden;
overflow-y: auto;
margin: 10px;
}
.contents {
height: 300%;
width: 300%;
}
.wide {
width: 300%;
height: 10px;
background-color: gray;
}
</style>
<script src="../../../resources/js-test-pre.js"></script>
<script src="../../../resources/ui-helper.js"></script>
<script>
jsTestIsAsync = true;
let innerScroller;
let outerScroller;
function checkForScroll()
{
innerScroller = document.querySelector('.inner.scroller');
outerScroller = document.querySelector('.outer.scroller');
shouldBe('innerScroller.scrollLeft', '0');
shouldBe('innerScroller.scrollTop', '0');
shouldBeTrue('outerScroller.scrollLeft > 0');
shouldBe('outerScroller.scrollTop', '0');
finishJSTest();
}
async function scrollTest()
{
const events = [
{
type : "wheel",
viewX : 100,
viewY : 100,
deltaX : -10,
phase : "began"
},
{
type : "wheel",
deltaX : -100,
phase : "changed"
},
{
type : "wheel",
phase : "ended"
},
{
type : "wheel",
deltaX : -100,
momentumPhase : "began"
},
{
type : "wheel",
deltaX : -100,
momentumPhase : "changed"
},
{
type : "wheel",
momentumPhase : "ended"
}
];
await UIHelper.mouseWheelSequence({ events });
checkForScroll();
}
function setupTopLevel()
{
description("Tests that sieways scrolling in an overflow-x:hidden scroller scrolls the enclosing scroller");
if (window.eventSender) {
setTimeout(scrollTest, 0);
return;
}
finishJSTest();
}
window.addEventListener('load', () => {
setupTopLevel();
}, false);
</script>
</head>
<body>
<div class="outer scroller">
<div class="inner scroller">
<div class="contents"></div>
</div>
<div class="wide"></div>
</div>
<div id="console"></div>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>