summaryrefslogtreecommitdiffstats
path: root/testing/webcompat/shims/tests/common.py
blob: 307e39c74d71b5de723de97b1438dbfe75b1d949 (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
41
GPT_SHIM_MSG = "Google Publisher Tags is being shimmed by Firefox"
GAGTA_SHIM_MSG = "Google Analytics and Tag Manager is being shimmed by Firefox"


async def is_gtag_placeholder_displayed(client, url, finder, **kwargs):
    await client.navigate(url, **kwargs)
    client.execute_async_script(
        """
        const done = arguments[0];
        if (window.dataLayer?.push?.toString() === [].push.toString()) {
            return done();
        }
        setTimeout(() => {
            dataLayer.push({
                event: "datalayerReady",
                eventTimeout: 1,
                eventCallback: done,
            });
        }, 100);
    """
    )
    return client.is_displayed(client.find_element(finder))


async def clicking_link_navigates(client, url, finder, **kwargs):
    await client.navigate(url, **kwargs)
    elem = client.await_element(finder)
    return client.session.execute_async_script(
        """
        const elem = arguments[0],
              done = arguments[1];
        window.onbeforeunload = function() {
            done(true);
        };
        elem.click();
        setTimeout(() => {
            done(false);
        }, 1000);
    """,
        args=[elem],
    )