Source code

Revision control

Copy as Markdown

Other Tools

import time
import pytest
async def check_can_scroll(client):
# The site only has the problem if the window size is narrow enough.
client.set_screen_size(400, 800)
await client.navigate(URL)
# body.scrollTop changes if wk-fill-available is on, otherwise window.scrollY does.
old_sy = client.execute_script("return window.scrollY")
old_st = client.execute_script("return document.body.scrollTop")
client.apz_scroll(client.await_css("body"), dy=100)
# We need to wait for window.scrollY to be updated, but we
# can't rely on an event being fired to detect when it's done.
time.sleep(1)
return old_sy != client.execute_script(
"return window.scrollY"
) or old_st != client.execute_script("return document.body.scrollTop")
@pytest.mark.enable_webkit_fill_available
@pytest.mark.actual_platform_required
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
assert await check_can_scroll(client)
@pytest.mark.disable_webkit_fill_available
@pytest.mark.actual_platform_required
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled2(client):
assert await check_can_scroll(client)
@pytest.mark.disable_webkit_fill_available
@pytest.mark.actual_platform_required
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
assert not await check_can_scroll(client)