51c7ae6e5c
'b' for *b*undled files Translators and styles take a long time to install and initialize in source installations, and they're unnecessary for many tests. This shaves about 10 seconds off each test run for me on one system (and that's with some help from filesystem caching).
111 lines
No EOL
2.5 KiB
Bash
Executable file
111 lines
No EOL
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
case "$(uname -s)" in
|
|
CYGWIN*) IS_CYGWIN=1 ;;
|
|
esac
|
|
|
|
function makePath {
|
|
local __assignTo=$1
|
|
local __path=$2
|
|
if [ ! -z $IS_CYGWIN ]; then
|
|
__path="`cygpath -aw \"$__path\"`"
|
|
fi
|
|
eval $__assignTo="'$__path'"
|
|
}
|
|
|
|
DEBUG=false
|
|
if [ "`uname`" == "Darwin" ]; then
|
|
FX_EXECUTABLE="/Applications/Firefox.app/Contents/MacOS/firefox"
|
|
else
|
|
FX_EXECUTABLE="firefox"
|
|
fi
|
|
FX_ARGS=""
|
|
|
|
function usage {
|
|
cat >&2 <<DONE
|
|
Usage: $0 [-x FX_EXECUTABLE] [TESTS...]
|
|
Options
|
|
-x FX_EXECUTABLE path to Firefox executable (default: $FX_EXECUTABLE)
|
|
-d enable debug logging
|
|
-c open JavaScript console and don't quit on completion
|
|
-b skip bundled translator/style installation
|
|
TESTS set of tests to run (default: all)
|
|
DONE
|
|
exit 1
|
|
}
|
|
|
|
while getopts "x:dcb" opt; do
|
|
case $opt in
|
|
x)
|
|
FX_EXECUTABLE="$OPTARG"
|
|
;;
|
|
d)
|
|
DEBUG=true
|
|
;;
|
|
c)
|
|
FX_ARGS="-jsconsole -noquit"
|
|
;;
|
|
b)
|
|
SKIP_BUNDLED=true
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|
|
shift $((OPTIND-1)); OPTIND=1
|
|
done
|
|
|
|
if [ -z $1 ]; then
|
|
TESTS="all"
|
|
else
|
|
ARGS=("${@:1}")
|
|
function join { local IFS="$1"; shift; echo "$*"; }
|
|
TESTS="$(join , "${ARGS[@]}")"
|
|
fi
|
|
|
|
# Set up profile directory
|
|
PROFILE="`mktemp -d 2>/dev/null || mktemp -d -t 'zotero-unit'`"
|
|
mkdir "$PROFILE/extensions"
|
|
|
|
makePath ZOTERO_UNIT_PATH "$CWD"
|
|
echo "$ZOTERO_UNIT_PATH" > "$PROFILE/extensions/zotero-unit@zotero.org"
|
|
|
|
makePath ZOTERO_PATH "`dirname "$CWD"`"
|
|
echo "$ZOTERO_PATH" > "$PROFILE/extensions/zotero@chnm.gmu.edu"
|
|
|
|
# Create data directory
|
|
mkdir "$PROFILE/zotero"
|
|
|
|
cat <<EOF > "$PROFILE/prefs.js"
|
|
user_pref("extensions.autoDisableScopes", 0);
|
|
user_pref("extensions.zotero.debug.log", $DEBUG);
|
|
user_pref("extensions.zotero.debug.time", $DEBUG);
|
|
user_pref("extensions.zotero.firstRunGuidance", false);
|
|
user_pref("extensions.zotero.firstRun2", false);
|
|
EOF
|
|
|
|
# -v flag on Windows makes Firefox process hang
|
|
if [ -z $IS_CYGWIN ]; then
|
|
echo "`MOZ_NO_REMOTE=1 NO_EM_RESTART=1 \"$FX_EXECUTABLE\" -v`"
|
|
fi
|
|
|
|
if [ "$TRAVIS" = true ]; then
|
|
FX_ARGS="$FX_ARGS --ZoteroNoUserInput"
|
|
fi
|
|
|
|
if [ "$SKIP_BUNDLED" = true ]; then
|
|
FX_ARGS="$FX_ARGS -ZoteroSkipBundledFiles"
|
|
fi
|
|
|
|
makePath FX_PROFILE "$PROFILE"
|
|
MOZ_NO_REMOTE=1 NO_EM_RESTART=1 "$FX_EXECUTABLE" -profile "$FX_PROFILE" \
|
|
-chrome chrome://zotero-unit/content/runtests.html -test "$TESTS" $FX_ARGS
|
|
|
|
# Check for success
|
|
test -e "$PROFILE/success"
|
|
STATUS=$?
|
|
|
|
# Clean up
|
|
rm -rf "$PROFILE"
|
|
exit $STATUS |