diff options
author | Wojtek Kosior <koszko@koszko.org> | 2022-01-31 18:06:13 +0100 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2022-01-31 18:06:13 +0100 |
commit | ad69f9c86b950cc84ca103e65824b9c9129d3999 (patch) | |
tree | a4314c8a5031b9fb2a278021b2388b86190c2823 /configure | |
parent | 4c6a2323d90e9321ec2b78e226167b3013ea69ab (diff) | |
download | browser-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-x | configure | 73 |
1 files changed, 62 insertions, 11 deletions
@@ -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 |