aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-01-31 18:06:13 +0100
committerWojtek Kosior <koszko@koszko.org>2022-01-31 18:06:13 +0100
commitad69f9c86b950cc84ca103e65824b9c9129d3999 (patch)
treea4314c8a5031b9fb2a278021b2388b86190c2823 /configure
parent4c6a2323d90e9321ec2b78e226167b3013ea69ab (diff)
downloadbrowser-extension-ad69f9c86b950cc84ca103e65824b9c9129d3999.tar.gz
browser-extension-ad69f9c86b950cc84ca103e65824b9c9129d3999.zip
add support for testing with other browsers (especially Abrowser and Librewolf)
There are still some spurious failures when running under those newer browsers. Those will be systematically investigated and fixed.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure73
1 files changed, 62 insertions, 11 deletions
diff --git a/configure b/configure
index 06a43eb..bd7800f 100755
--- a/configure
+++ b/configure
@@ -18,16 +18,29 @@ set -e
BROWSERPATH=''
SRCDIR=''
TARGET=''
+BROWSER_BINARY=''
+CLEAN_PROFILE=''
+DRIVER=''
+PYTEST=''
# Parse command line options
while [ "x$1" != x ]; do
case "$1" in
- --srcdir=*) SRCDIR="$(echo "$1" | cut -c 10-)";;
- --srcdir) SRCDIR="$2"; shift;;
- "DESTDIR"=*) DESTDIR="$(echo "$1" | cut -c 9-)";;
- "UPDATE_URL"=*) UPDATE_URL="$(echo "$1" | cut -c 12-)";;
- --host=*) TARGET="$(echo "$1" | cut -c 8-)";;
- --host) TARGET="$2"; shift;;
+ --srcdir=*) SRCDIR="$(printf %s "$1" | cut -c 10-)";;
+ --srcdir) SRCDIR="$2"; shift;;
+ --browser-binary=*) BROWSER_BINARY="$(printf %s "$1" | cut -c 18-)";;
+ --browser-binary) BROWSER_BINARY="$2"; shift;;
+ --clean-profile=*) CLEAN_PROFILE="$(printf %s "$1" | cut -c 17-)";;
+ --clean-profile) CLEAN_PROFILE="$2"; shift;;
+ --driver=*) DRIVER="$(printf %s "$1" | cut -c 10-)";;
+ --driver) DRIVER="$2"; shift;;
+ --pytest=*) PYTEST="$(printf %s "$1" | cut -c 10-)";;
+ --pytest) PYTEST="$2"; shift;;
+ --srcdir) SRCDIR="$2"; shift;;
+ "DESTDIR"=*) DESTDIR="$(printf %s "$1" | cut -c 9-)";;
+ "UPDATE_URL"=*) UPDATE_URL="$(printf %s "$1" | cut -c 12-)";;
+ --host=*) TARGET="$(printf %s "$1" | cut -c 8-)";;
+ --host) TARGET="$2"; shift;;
# browsers
chromium | chrome | google-chrome | mozilla |\
@@ -70,6 +83,20 @@ else
BROWSERPATH="$(realpath "$(which $TARGET)")"
fi
+# Autodetect browser binary (needed for Selenium)
+if [ "x$BROWSER_BINARY" = x ]; then
+ if [ "x$TARGET" = xabrowser ]; then
+ # Trisquel's path to Abrowser
+ BROWSER_BINARY=/usr/lib/abrowser/abrowser
+ if [ "x$TARGET" = xabrowser ]; then
+ # Debian's path to Librewolf
+ BROWSER_BINARY=/usr/share/librewolf/librewolf
+ elif [ "x$TARGET" = xicecat ]; then
+ # Parabola's path to IceCat
+ BROWSER_BINARY=/usr/lib/icecat/icecat
+ fi
+fi
+
# Check and standardize target
case "$TARGET" in
mozilla | firefox | abrowser | icecat | iceweasel-uxp |\
@@ -79,6 +106,27 @@ case "$TARGET" in
*) echo Invalid target "'$TARGET'" >&2; exit 2;;
esac
+# Autodetect Selenium driver
+if [ "x$DRIVER" = x ]; then
+ if [ "x$TARGET" = mozilla ]; then
+ DRIVER=geckodriver
+ fi
+fi
+
+# Autodetect clean profile directory for use in selenium tests
+if [ "x$CLEAN_PROFILE" = x ]; then
+ if [ "x$TARGET" = mozilla ]; then
+ CLEAN_PROFILE="$SRCDIR"/test/default_profile/icecat_empty
+ fi
+fi
+
+# Autodetect pytest
+for PYTEST_GUESS in pytest pytest-3 pytest3; do
+ if [ "x$PYTEST" = x ]; then
+ PYTEST="$(which $PYTEST_GUESS || true)"
+ fi
+done
+
# Autodetect DESTDIR (no check needed)
if [ "x$DESTDIR" = x ]; then
echo Guessing installation directory.
@@ -95,11 +143,14 @@ if [ "x$DESTDIR" = x ]; then
fi
# Write record.conf (LEAVE SRCDIR FIRST)
-echo srcdir = "$SRCDIR" > record.conf
-echo default_target = "$TARGET" >> record.conf
-echo DESTDIR = "$DESTDIR" >> record.conf
-echo UPDATE_URL = "$UPDATE_URL" >> record.conf
-
+printf '%s\n' "srcdir = $SRCDIR" > record.conf
+printf '%s\n' "default_target = $TARGET" >> record.conf
+printf '%s\n' "DESTDIR = $DESTDIR" >> record.conf
+printf '%s\n' "UPDATE_URL = $UPDATE_URL" >> record.conf
+printf '%s\n' "DRIVER = $DRIVER" >> record.conf
+printf '%s\n' "BROWSER_BINARY = $BROWSER_BINARY" >> record.conf
+printf '%s\n' "CLEAN_PROFILE = $CLEAN_PROFILE" >> record.conf
+printf '%s\n' "PYTEST = $PYTEST" >> record.conf
# Prepare and run write_makefile.sh (as config.status)
if [ ! -e config.status ]; then