summaryrefslogtreecommitdiffstats
path: root/testing/webcompat/shims/tests/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/webcompat/shims/tests/common.py')
-rw-r--r--testing/webcompat/shims/tests/common.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/testing/webcompat/shims/tests/common.py b/testing/webcompat/shims/tests/common.py
new file mode 100644
index 0000000000..307e39c74d
--- /dev/null
+++ b/testing/webcompat/shims/tests/common.py
@@ -0,0 +1,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],
+ )