iosWebViewFix/scripts/test.sh

62 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
readonly SCRIPT_PATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
readonly PROJECT_DIR="$(dirname $SCRIPT_PATH)"
function error() {
echo "$@" 1>&2
}
# on macOS local IP can be found using something like $(ipconfig getifaddr en0)
# on linux local IP can be found using something like $(ifconfig en0 | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}') or $(ip route get 1 | awk '{print $NF;exit}')
export NODE_SERVER_IP=$1
if [ -z "$1" ]; then
export NODE_SERVER_IP=$(ipconfig getifaddr en0)
fi
echo Node Server IP: $NODE_SERVER_IP
if [ -z "$NODE_SERVER_IP" ]; then
echo No Server IP found
jobs -p | xargs kill
exit 1
fi
DEVICE_ID=$2
FAILED=0
if [ ! -z "$2" ] && [ $DEVICE_ID = "chrome" ]; then
$PROJECT_DIR/tool/chromedriver --port=4444 &
fi
dart $PROJECT_DIR/tool/env.dart
cd $PROJECT_DIR/test_node_server
node index.js &
# Only for Android
# Open Chrome on the development device, navigate to chrome://flags, search for an item called Enable command line on non-rooted devices and change it to ENABLED and then restart the browser.
adb shell "echo '_ --disable-digital-asset-link-verification-for-url=\"https://flutter.dev\"' > /data/local/tmp/chrome-command-line" || true
flutter --version
flutter devices
flutter clean
flutter pub get
cd $PROJECT_DIR/example
flutter clean
if [ ! -z "$2" ]; then
flutter driver --driver=test_driver/integration_test.dart --target=integration_test/webview_flutter_test.dart --device-id=$DEVICE_ID
else
flutter driver --driver=test_driver/integration_test.dart --target=integration_test/webview_flutter_test.dart
fi
if [ $? -eq 0 ]; then
echo "Integration tests passed successfully."
else
error "Some integration tests failed."
FAILED=1
fi
jobs -p | xargs kill
exit $FAILED