summaryrefslogtreecommitdiff
path: root/test/unit/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/conftest.py')
-rw-r--r--test/unit/conftest.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/test/unit/conftest.py b/test/unit/conftest.py
index 1500006..e1c98a1 100644
--- a/test/unit/conftest.py
+++ b/test/unit/conftest.py
@@ -26,10 +26,14 @@ Common fixtures for Haketilo unit tests
# proprietary program, I am not going to enforce this in court.
import pytest
+from pathlib import Path
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
-from ..profiles import firefox_safe_mode
-from ..server import do_an_internet
-from ..script_loader import load_script
+from ..profiles import firefox_safe_mode
+from ..server import do_an_internet
+from ..script_loader import load_script
+from ..extension_crafting import make_extension
@pytest.fixture(scope="package")
def proxy():
@@ -43,6 +47,23 @@ def driver(proxy):
yield driver
driver.quit()
+@pytest.fixture()
+def webextension(driver, request):
+ ext_data = request.node.get_closest_marker('ext_data')
+ if ext_data is None:
+ raise Exception('"webextension" fixture requires "ext_data" marker to be set')
+
+ ext_path = make_extension(Path(driver.firefox_profile.path),
+ **ext_data.args[0])
+ driver.get('https://gotmyowndoma.in/')
+ addon_id = driver.install_addon(str(ext_path), temporary=True)
+ WebDriverWait(driver, 10).until(
+ EC.title_contains("Extension's options page for testing")
+ )
+ yield
+ driver.uninstall_addon(addon_id)
+ ext_path.unlink()
+
script_injecting_script = '''\
/*
* Selenium by default executes scripts in some weird one-time context. We want
@@ -63,8 +84,8 @@ window.arguments = arguments[1];
document.body.append(script_elem);
/*
- * To ease debugging, we want this script to forward signal all exceptions from
- * the injectee.
+ * To ease debugging, we want this script to signal all exceptions from the
+ * injectee.
*/
try {
if (window.haketilo_selenium_exception !== false)