1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/bash
- #
- # SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
- # SPDX-FileCopyrightText: 2020-2024 Tobias Kaminsky <tobias@kaminsky.me>
- # SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
- #
- set -e
- if [ $# -lt 2 ]; then
- echo "1: record: true/false
- 2: class name
- 3: method name
- 4: darkMode: dark/light / \"all\" to run all screenshot combinations
- 5: color"
- exit
- fi
- pushd app/src/androidTest/java
- class=$(find | grep $2 | grep -E "java$|kt$" | head -n1|sed s'/\//\./'g | sed s'#^\.\.##' | sed s'#\.java##'| sed s'#\.kt##')
- if [[ -z $class ]]; then
- echo "Class not found!"
- exit 1
- fi
- cd ../../../
- if [ $1 == "true" ] ; then
- record="-Precord"
- else
- record=""
- fi
- if [ -e $3 ] ; then
- method=""
- else
- method="#$3"
- # check if method exists
- if [[ $(grep -c $3 $(find | grep $2 | grep -E "java$|kt$" | head -n1)) -eq 0 ]]; then
- echo "Method not found!"
- exit 1
- fi
- fi
- if [ -e $4 ] ; then
- darkMode=""
- else
- darkMode="-Pandroid.testInstrumentationRunnerArguments.DARKMODE=$4"
- fi
- popd
- sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml
- # check if emulator is running
- emulatorIsRunning=false
- while read line ; do
- if [[ $(adb -s $line emu avd name 2>/dev/null | head -n1) =~ uiComparison.* ]]; then
- emulatorIsRunning=true
- export ANDROID_SERIAL=$line
- break
- fi
- done < <(adb devices | cut -f1)
- if [ "$emulatorIsRunning" == false ] ; then
- "$(command -v emulator)" -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 &
- sleep 20
- fi
- if [ -e $5 ] ; then
- color=""
- else
- color="-Pandroid.testInstrumentationRunnerArguments.COLOR=$5"
- fi
- if [[ $4 = "all" ]]; then
- scripts/runAllScreenshotCombinations "noCI" "$1" "-Pandroid.testInstrumentationRunnerArguments.class=$class$method"
- else
- SHOT_TEST=true ./gradlew --offline gplayDebugExecuteScreenshotTests $record \
- -Dorg.gradle.jvmargs="--add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.nio.channels=ALL-UNNAMED --add-exports java.base/sun.nio.ch=ALL-UNNAMED" \
- -Pscreenshot=true \
- -Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest \
- -Pandroid.testInstrumentationRunnerArguments.class=$class$method \
- $darkMode \
- $color
- fi
- sed -i s'#<bool name="is_beta">true</bool>#<bool name="is_beta">false</bool>#'g app/src/main/res/values/setup.xml
- unset ANDROID_SERIAL
|