mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
Bug 1838841 - Ship v120.0.0 of the WebCompat System Addon; r=ksenia,webcompat-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D191233
This commit is contained in:
parent
c409f41ef4
commit
62a5aa5313
@ -140,28 +140,6 @@ const AVAILABLE_INJECTIONS = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "bug1605611",
|
|
||||||
platform: "android",
|
|
||||||
domain: "maps.google.com",
|
|
||||||
bug: "1605611",
|
|
||||||
contentScripts: {
|
|
||||||
matches: InterventionHelpers.matchPatternsForGoogle(
|
|
||||||
"*://www.google.",
|
|
||||||
"/maps*"
|
|
||||||
),
|
|
||||||
css: [
|
|
||||||
{
|
|
||||||
file: "injections/css/bug1605611-maps.google.com-directions-time.css",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
js: [
|
|
||||||
{
|
|
||||||
file: "injections/js/bug1605611-maps.google.com-directions-time.js",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "bug1610344",
|
id: "bug1610344",
|
||||||
platform: "all",
|
platform: "all",
|
||||||
@ -484,6 +462,23 @@ const AVAILABLE_INJECTIONS = [
|
|||||||
allFrames: true,
|
allFrames: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "bug1859617",
|
||||||
|
platform: "all",
|
||||||
|
domain: "Sites relying on there being no window.InstallTrigger",
|
||||||
|
bug: "1859617",
|
||||||
|
contentScripts: {
|
||||||
|
matches: [
|
||||||
|
"*://*.stallionexpress.ca/*", // Bug 1859617
|
||||||
|
],
|
||||||
|
js: [
|
||||||
|
{
|
||||||
|
file: "injections/js/bug1859617-installtrigger-removal-shim.js",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
allFrames: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "bug1784141",
|
id: "bug1784141",
|
||||||
platform: "android",
|
platform: "android",
|
||||||
@ -639,20 +634,6 @@ const AVAILABLE_INJECTIONS = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "bug1799994",
|
|
||||||
platform: "desktop",
|
|
||||||
domain: "www.vivobarefoot.com",
|
|
||||||
bug: "1799994",
|
|
||||||
contentScripts: {
|
|
||||||
matches: ["*://www.vivobarefoot.com/*"],
|
|
||||||
css: [
|
|
||||||
{
|
|
||||||
file: "injections/css/bug1799994-www.vivobarefoot.com-product-filters-fix.css",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "bug1800000",
|
id: "bug1800000",
|
||||||
platform: "desktop",
|
platform: "desktop",
|
||||||
@ -801,20 +782,6 @@ const AVAILABLE_INJECTIONS = [
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "bug1829952",
|
|
||||||
platform: "android",
|
|
||||||
domain: "eventer.co.il",
|
|
||||||
bug: "1829952",
|
|
||||||
contentScripts: {
|
|
||||||
matches: ["*://*.eventer.co.il/*"],
|
|
||||||
css: [
|
|
||||||
{
|
|
||||||
file: "injections/css/bug1829952-eventer.co.il-button-height.css",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "bug1830747",
|
id: "bug1830747",
|
||||||
platform: "android",
|
platform: "android",
|
||||||
|
@ -861,22 +861,6 @@ const AVAILABLE_UA_OVERRIDES = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Bug 1827678 - UA override for static.slots.lv
|
|
||||||
* Webcompat issue #68379 - https://webcompat.com/issues/68379
|
|
||||||
*/
|
|
||||||
id: "bug1827678-webc68379",
|
|
||||||
platform: "android",
|
|
||||||
domain: "static.slots.lv",
|
|
||||||
bug: "1827678",
|
|
||||||
config: {
|
|
||||||
matches: ["*://static.slots.lv/*"],
|
|
||||||
uaTransformer: originalUA => {
|
|
||||||
return UAHelpers.getDeviceAppropriateChromeUA();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Bug 1827678 - UA override for mobile.onvue.com
|
* Bug 1827678 - UA override for mobile.onvue.com
|
||||||
@ -1262,23 +1246,6 @@ const AVAILABLE_UA_OVERRIDES = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Bug 1836181 - UA override for conference.amwell.com
|
|
||||||
*
|
|
||||||
* The site's content is not loaded unless a Chrome UA is used.
|
|
||||||
*/
|
|
||||||
id: "bug1836181",
|
|
||||||
platform: "all",
|
|
||||||
domain: "conference.amwell.com",
|
|
||||||
bug: "1836181",
|
|
||||||
config: {
|
|
||||||
matches: ["*://conference.amwell.com/*"],
|
|
||||||
uaTransformer: originalUA => {
|
|
||||||
return UAHelpers.getDeviceAppropriateChromeUA();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Bug 1836182 - UA override for www.flatsatshadowglen.com
|
* Bug 1836182 - UA override for www.flatsatshadowglen.com
|
||||||
@ -1410,6 +1377,26 @@ const AVAILABLE_UA_OVERRIDES = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Bug 1858664 - UA override to freeze rv segment to 109
|
||||||
|
*
|
||||||
|
* Some sites have issues with a UA string with "rv:" segment
|
||||||
|
* higher than 109, freezing it to 109 fixes the issues.
|
||||||
|
*/
|
||||||
|
id: "bug1858664",
|
||||||
|
platform: "all",
|
||||||
|
domain: "Sites with known breakage with rv: segment higher than 109",
|
||||||
|
bug: "1858664",
|
||||||
|
config: {
|
||||||
|
matches: [
|
||||||
|
"*://*.tesco.com/*", // #1858664
|
||||||
|
],
|
||||||
|
uaTransformer: originalUA => {
|
||||||
|
return UAHelpers.capRvTo109(originalUA);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = AVAILABLE_UA_OVERRIDES;
|
module.exports = AVAILABLE_UA_OVERRIDES;
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bug 1605611 - Cannot change Departure/arrival dates in Google Maps on Android
|
|
||||||
*
|
|
||||||
* Google Maps hides a datetime-local in its directions picker by giving it
|
|
||||||
* z-index:-50000, which causes it to be unclickable in Firefox. Here we
|
|
||||||
* use opacity:0 instead to hide it, while letting it remain clickable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.ml-route-options-picker-container input[type="datetime-local"] {
|
|
||||||
z-index: unset;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* www.vivobarefoot.com - product filters cannot be interacted-with
|
|
||||||
* Bug #1799994 - https://bugzilla.mozilla.org/show_bug.cgi?id=1799994
|
|
||||||
* WebCompat issue #108752 - https://webcompat.com/issues/108752
|
|
||||||
*
|
|
||||||
* The breakage is actually correct behavior, but because of Chrome
|
|
||||||
* bug https://bugs.chromium.org/p/chromium/issues/detail?id=606208
|
|
||||||
* it is currently not breaking on Chrome. We can work around it by
|
|
||||||
* bumping the z-index of the filter options.
|
|
||||||
*/
|
|
||||||
.page-products .filter-options {
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* eventer.co.il - a button is covering entire page
|
|
||||||
* Bug #1829952 - https://bugzilla.mozilla.org/show_bug.cgi?id=1829952
|
|
||||||
* WebCompat issue #121296 - https://github.com/webcompat/web-bugs/issues/121296
|
|
||||||
*
|
|
||||||
* The button is covering the page only in Firefox on mobile
|
|
||||||
* because of additional styles applied via @-moz-document url-prefix.
|
|
||||||
* Resetting the height makes the button normal size
|
|
||||||
*/
|
|
||||||
|
|
||||||
#purchasePageRedesignContainer .mobileStripButton {
|
|
||||||
height: auto;
|
|
||||||
min-height: auto;
|
|
||||||
}
|
|
@ -1,38 +0,0 @@
|
|||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Bug 1605611 - Cannot change Departure/arrival dates in Google Maps on Android
|
|
||||||
*
|
|
||||||
* This patch re-enables the disabled "Leave now" button.
|
|
||||||
*
|
|
||||||
* See https://bugzilla.mozilla.org/show_bug.cgi?id=1800498 and
|
|
||||||
* https://bugzilla.mozilla.org/show_bug.cgi?id=1605611 for details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const selector =
|
|
||||||
".ml-directions-searchbox-parent [aria-haspopup=dialog][disabled]";
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
|
||||||
// In case the element appeared before the MutationObserver was activated.
|
|
||||||
for (const elem of document.querySelectorAll(selector)) {
|
|
||||||
elem.disabled = false;
|
|
||||||
}
|
|
||||||
// Start watching for the insertion of the "Leave now" button.
|
|
||||||
const moOptions = {
|
|
||||||
attributeFilter: ["disabled"],
|
|
||||||
attributes: true,
|
|
||||||
subtree: true,
|
|
||||||
};
|
|
||||||
const mo = new MutationObserver(function (records) {
|
|
||||||
for (const { target } of records) {
|
|
||||||
if (target.matches(selector)) {
|
|
||||||
target.disabled = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
mo.observe(document.body, moOptions);
|
|
||||||
});
|
|
@ -0,0 +1,26 @@
|
|||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bug 1859617 - Generic window.InstallTrigger removal shim
|
||||||
|
*
|
||||||
|
* This interventions shims window.InstallTrigger to undefine it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* globals exportFunction */
|
||||||
|
|
||||||
|
if (typeof window.InstallTrigger !== "undefined") {
|
||||||
|
console.info(
|
||||||
|
"window.InstallTrigger has been undefined for compatibility reasons. See https://bugzilla.mozilla.org/show_bug.cgi?id=1859617 for details."
|
||||||
|
);
|
||||||
|
|
||||||
|
Object.defineProperty(window.wrappedJSObject, "InstallTrigger", {
|
||||||
|
get: exportFunction(function () {
|
||||||
|
return undefined;
|
||||||
|
}, window),
|
||||||
|
set: exportFunction(function (_) {}, window),
|
||||||
|
});
|
||||||
|
}
|
@ -72,6 +72,13 @@ var UAHelpers = {
|
|||||||
.replace(`Firefox/${ver[1]}`, "Firefox/99.0")
|
.replace(`Firefox/${ver[1]}`, "Firefox/99.0")
|
||||||
.replace(`rv:${ver[1]}`, "rv:99.0");
|
.replace(`rv:${ver[1]}`, "rv:99.0");
|
||||||
},
|
},
|
||||||
|
capRvTo109(originalUA) {
|
||||||
|
const ver = originalUA.match(/rv:(\d+\.\d+)/);
|
||||||
|
if (!ver || parseFloat(ver[1]) <= 109) {
|
||||||
|
return originalUA;
|
||||||
|
}
|
||||||
|
return originalUA.replace(`rv:${ver[1]}`, "rv:109.0");
|
||||||
|
},
|
||||||
getWindowsUA(originalUA) {
|
getWindowsUA(originalUA) {
|
||||||
const rv = originalUA.match("rv:[0-9]+.[0-9]+")[0];
|
const rv = originalUA.match("rv:[0-9]+.[0-9]+")[0];
|
||||||
const ver = originalUA.match("Firefox/[0-9]+.[0-9]+")[0];
|
const ver = originalUA.match("Firefox/[0-9]+.[0-9]+")[0];
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Web Compatibility Interventions",
|
"name": "Web Compatibility Interventions",
|
||||||
"description": "Urgent post-release fixes for web compatibility.",
|
"description": "Urgent post-release fixes for web compatibility.",
|
||||||
"version": "119.1.0",
|
"version": "120.0.0",
|
||||||
"browser_specific_settings": {
|
"browser_specific_settings": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
"id": "webcompat@mozilla.org",
|
"id": "webcompat@mozilla.org",
|
||||||
|
@ -46,7 +46,6 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["css"] += [
|
|||||||
"injections/css/bug0000000-testbed-css-injection.css",
|
"injections/css/bug0000000-testbed-css-injection.css",
|
||||||
"injections/css/bug1570328-developer-apple.com-transform-scale.css",
|
"injections/css/bug1570328-developer-apple.com-transform-scale.css",
|
||||||
"injections/css/bug1575000-apply.lloydsbank.co.uk-radio-buttons-fix.css",
|
"injections/css/bug1575000-apply.lloydsbank.co.uk-radio-buttons-fix.css",
|
||||||
"injections/css/bug1605611-maps.google.com-directions-time.css",
|
|
||||||
"injections/css/bug1610344-directv.com.co-hide-unsupported-message.css",
|
"injections/css/bug1610344-directv.com.co-hide-unsupported-message.css",
|
||||||
"injections/css/bug1644830-missingmail.usps.com-checkboxes-not-visible.css",
|
"injections/css/bug1644830-missingmail.usps.com-checkboxes-not-visible.css",
|
||||||
"injections/css/bug1651917-teletrader.com.body-transform-origin.css",
|
"injections/css/bug1651917-teletrader.com.body-transform-origin.css",
|
||||||
@ -62,11 +61,9 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["css"] += [
|
|||||||
"injections/css/bug1774490-rainews.it-gallery-fix.css",
|
"injections/css/bug1774490-rainews.it-gallery-fix.css",
|
||||||
"injections/css/bug1784141-aveeno.com-acuvue.com-unsupported.css",
|
"injections/css/bug1784141-aveeno.com-acuvue.com-unsupported.css",
|
||||||
"injections/css/bug1784199-entrata-platform-unsupported.css",
|
"injections/css/bug1784199-entrata-platform-unsupported.css",
|
||||||
"injections/css/bug1799994-www.vivobarefoot.com-product-filters-fix.css",
|
|
||||||
"injections/css/bug1800000-www.honda.co.uk-choose-dealer-button-fix.css",
|
"injections/css/bug1800000-www.honda.co.uk-choose-dealer-button-fix.css",
|
||||||
"injections/css/bug1819678-nppes.cms.hhs.gov-unsupported-banner.css",
|
"injections/css/bug1819678-nppes.cms.hhs.gov-unsupported-banner.css",
|
||||||
"injections/css/bug1829949-tomshardware.com-scrollbar-width.css",
|
"injections/css/bug1829949-tomshardware.com-scrollbar-width.css",
|
||||||
"injections/css/bug1829952-eventer.co.il-button-height.css",
|
|
||||||
"injections/css/bug1830747-babbel.com-page-height.css",
|
"injections/css/bug1830747-babbel.com-page-height.css",
|
||||||
"injections/css/bug1830752-afisha.ru-slider-pointer-events.css",
|
"injections/css/bug1830752-afisha.ru-slider-pointer-events.css",
|
||||||
"injections/css/bug1830761-91mobiles.com-content-height.css",
|
"injections/css/bug1830761-91mobiles.com-content-height.css",
|
||||||
@ -91,7 +88,6 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["js"] += [
|
|||||||
"injections/js/bug1457335-histography.io-ua-change.js",
|
"injections/js/bug1457335-histography.io-ua-change.js",
|
||||||
"injections/js/bug1472075-bankofamerica.com-ua-change.js",
|
"injections/js/bug1472075-bankofamerica.com-ua-change.js",
|
||||||
"injections/js/bug1579159-m.tailieu.vn-pdfjs-worker-disable.js",
|
"injections/js/bug1579159-m.tailieu.vn-pdfjs-worker-disable.js",
|
||||||
"injections/js/bug1605611-maps.google.com-directions-time.js",
|
|
||||||
"injections/js/bug1631811-datastudio.google.com-indexedDB.js",
|
"injections/js/bug1631811-datastudio.google.com-indexedDB.js",
|
||||||
"injections/js/bug1722955-frontgate.com-ua-override.js",
|
"injections/js/bug1722955-frontgate.com-ua-override.js",
|
||||||
"injections/js/bug1724868-news.yahoo.co.jp-ua-override.js",
|
"injections/js/bug1724868-news.yahoo.co.jp-ua-override.js",
|
||||||
@ -113,6 +109,7 @@ FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["injections"]["js"] += [
|
|||||||
"injections/js/bug1849058-nicochannel.jp-picture-in-picture-shim.js",
|
"injections/js/bug1849058-nicochannel.jp-picture-in-picture-shim.js",
|
||||||
"injections/js/bug1855014-eksiseyler.com.js",
|
"injections/js/bug1855014-eksiseyler.com.js",
|
||||||
"injections/js/bug1855071-www.meteoam.it.js",
|
"injections/js/bug1855071-www.meteoam.it.js",
|
||||||
|
"injections/js/bug1859617-installtrigger-removal-shim.js",
|
||||||
]
|
]
|
||||||
|
|
||||||
FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["shims"] += [
|
FINAL_TARGET_FILES.features["webcompat@mozilla.org"]["shims"] += [
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
import pytest
|
|
||||||
from webdriver.error import NoSuchElementException
|
|
||||||
|
|
||||||
# Google puts [disabled="true"] on buttons, which causes them to not
|
|
||||||
# work in Firefox. Our intervention removes that [disabled] property.
|
|
||||||
|
|
||||||
URL = "https://www.google.com/maps/dir/Fettstra%C3%9Fe+20,+D-20357+Hamburg,+Deutschland/Hauptkirche+St.+Michaelis,+Englische+Planke,+Hamburg/@53.5586949,9.9852882,14z/data=!4m8!4m7!1m2!1m1!1s0x47b18f4493d02fe1:0x6280c2a6cea3ed83!1m2!1m1!1s0x47b18f11e1dd5b45:0x187d5dca009a4b19!3e3?gl=de"
|
|
||||||
BUTTON_CSS = "button[jsaction^='directionsSearchbox.time']"
|
|
||||||
PICKER_CSS = ".ml-route-options-picker-container.visible"
|
|
||||||
|
|
||||||
|
|
||||||
def open_picker(client):
|
|
||||||
button = client.await_css(BUTTON_CSS, is_displayed=True)
|
|
||||||
assert button
|
|
||||||
client.mouse.click(element=button).perform()
|
|
||||||
return client.await_css(PICKER_CSS, is_displayed=True, timeout=5)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.only_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.with_interventions
|
|
||||||
async def test_enabled(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
assert open_picker(client)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.only_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.without_interventions
|
|
||||||
async def test_disabled(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
with pytest.raises(NoSuchElementException):
|
|
||||||
open_picker(client)
|
|
@ -1,63 +0,0 @@
|
|||||||
import pytest
|
|
||||||
from webdriver.error import NoSuchElementException
|
|
||||||
|
|
||||||
URL = "https://www.vivobarefoot.com/eu/mens"
|
|
||||||
FILTER_CSS = "#narrow-by-list .filter-wrapper:last-of-type dt"
|
|
||||||
SUBMENU_CSS = "#narrow-by-list .filter-wrapper:last-of-type dd"
|
|
||||||
POPUP1_CSS = "#globalePopupWrapper"
|
|
||||||
POPUP2_CSS = "#globale_overlay"
|
|
||||||
POPUP3_CSS = ".weblayer--box-subscription-1"
|
|
||||||
|
|
||||||
|
|
||||||
async def check_filter_opens(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
|
|
||||||
popup = client.await_css(POPUP1_CSS, timeout=3)
|
|
||||||
if popup:
|
|
||||||
client.remove_element(popup)
|
|
||||||
popup = client.find_css(POPUP2_CSS)
|
|
||||||
if popup:
|
|
||||||
client.remove_element(popup)
|
|
||||||
popup = client.find_css(POPUP3_CSS)
|
|
||||||
if popup:
|
|
||||||
client.remove_element(popup)
|
|
||||||
|
|
||||||
filter = client.await_css(FILTER_CSS)
|
|
||||||
|
|
||||||
# we need to wait for the page to add the click listener
|
|
||||||
client.execute_async_script(
|
|
||||||
"""
|
|
||||||
const filter = arguments[0];
|
|
||||||
const resolve = arguments[1];
|
|
||||||
const ETP = EventTarget.prototype;
|
|
||||||
const AEL = ETP.addEventListener;
|
|
||||||
ETP.addEventListener = function(type) {
|
|
||||||
if (this === filter && type === "click") {
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
return AEL.apply(this, arguments);
|
|
||||||
};
|
|
||||||
""",
|
|
||||||
filter,
|
|
||||||
)
|
|
||||||
|
|
||||||
client.mouse.click(element=filter).perform()
|
|
||||||
try:
|
|
||||||
client.await_css(SUBMENU_CSS, is_displayed=True, timeout=3)
|
|
||||||
except NoSuchElementException:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.with_interventions
|
|
||||||
async def test_enabled(client):
|
|
||||||
assert await check_filter_opens(client)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.without_interventions
|
|
||||||
async def test_disabled(client):
|
|
||||||
assert not await check_filter_opens(client)
|
|
@ -1,32 +0,0 @@
|
|||||||
import pytest
|
|
||||||
|
|
||||||
URL = "https://www.eventer.co.il"
|
|
||||||
EVENT_CSS = "a.slide-a-tag[href*='/event']"
|
|
||||||
ELEM_CSS = ".mobileStripButton:not(.ng-hide)"
|
|
||||||
|
|
||||||
|
|
||||||
async def is_too_tall(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
event = client.await_css(EVENT_CSS)
|
|
||||||
await client.navigate(URL + client.get_element_attribute(event, "href"))
|
|
||||||
elem = client.await_css(ELEM_CSS)
|
|
||||||
return client.execute_script(
|
|
||||||
"""
|
|
||||||
return window.innerHeight == arguments[0].getBoundingClientRect().height;
|
|
||||||
""",
|
|
||||||
elem,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.only_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.with_interventions
|
|
||||||
async def test_enabled(client):
|
|
||||||
assert not await is_too_tall(client)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.only_platforms("android")
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.without_interventions
|
|
||||||
async def test_disabled(client):
|
|
||||||
assert await is_too_tall(client)
|
|
@ -1,24 +0,0 @@
|
|||||||
import pytest
|
|
||||||
|
|
||||||
URL = "https://conference.amwell.com/"
|
|
||||||
UNSUPPORTED_DESKTOP_CSS = "a.container-recommended-browser"
|
|
||||||
UNSUPPORTED_MOBILE_CSS = "[onclick='joinWithApp()']"
|
|
||||||
LOGIN_CSS = "login-layout"
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.with_interventions
|
|
||||||
async def test_enabled(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
assert client.await_css(LOGIN_CSS, is_displayed=True)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
|
||||||
@pytest.mark.without_interventions
|
|
||||||
async def test_disabled(client):
|
|
||||||
await client.navigate(URL)
|
|
||||||
desktop, mobile = client.await_first_element_of(
|
|
||||||
[client.css(UNSUPPORTED_DESKTOP_CSS), client.css(UNSUPPORTED_MOBILE_CSS)],
|
|
||||||
is_displayed=True,
|
|
||||||
)
|
|
||||||
assert desktop or mobile
|
|
Loading…
Reference in New Issue
Block a user