summaryrefslogtreecommitdiffstats
path: root/testing/webcompat/interventions/tests/test_1650317_livescience_com.py
blob: f9cb71c571188a8e498c779485ea2df3b9757bb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pytest

URL = "https://www.livescience.com/"
TEXT_TO_TEST = ".trending__link"


async def is_text_visible(client):
    # the page does not properly load, so we just time out
    # and wait for the element we're interested in to appear
    await client.navigate(URL, timeout=1)
    link = client.await_css(TEXT_TO_TEST)
    assert client.is_displayed(link)
    return client.execute_async_script(
        """
        const link = arguments[0];
        const cb = arguments[1];
        const fullHeight = link.scrollHeight;
        const parentVisibleHeight = link.parentElement.clientHeight;
        link.style.paddingBottom = "0";
        window.requestAnimationFrame(() => {
            const bottomPaddingHeight = fullHeight - link.scrollHeight;
            cb(fullHeight - parentVisibleHeight <= bottomPaddingHeight);
        });
    """,
        link,
    )


@pytest.mark.skip_platforms("android", "mac")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
    assert await is_text_visible(client)


@pytest.mark.skip_platforms("android", "mac")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
    assert not await is_text_visible(client)