androidScreenshotTest 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/bash
  2. if [ $# -lt 2 ]; then
  3. echo "1: record: true/false
  4. 2: class name
  5. 3: method name
  6. 4: darkMode: dark/light / \"all\" to run all screenshot combinations
  7. 5: color"
  8. exit
  9. fi
  10. cd src/androidTest/java
  11. class=$(find | grep $2 | grep -E "java$|kt$" | head -n1|sed s'/\//\./'g | sed s'#^\.\.##' | sed s'#\.java##'| sed s'#\.kt##')
  12. if [[ -z $class ]]; then
  13. echo "Class not found!"
  14. exit 1
  15. fi
  16. cd ../../../
  17. if [ $1 == "true" ] ; then
  18. record="-Precord"
  19. else
  20. record=""
  21. fi
  22. if [ -e $3 ] ; then
  23. method=""
  24. else
  25. method="#$3"
  26. # check if method exists
  27. if [[ $(grep -c $3 $(find | grep $2 | grep -E "java$|kt$" | head -n1)) -eq 0 ]]; then
  28. echo "Method not found!"
  29. exit 1
  30. fi
  31. fi
  32. if [ -e $4 ] ; then
  33. darkMode=""
  34. else
  35. darkMode="-Pandroid.testInstrumentationRunnerArguments.DARKMODE=$4"
  36. fi
  37. sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  38. # check if emulator is running
  39. emulatorIsRunning=false
  40. while read line ; do
  41. if [[ $(adb -s $line emu avd name 2>/dev/null | head -n1) =~ uiComparison.* ]]; then
  42. emulatorIsRunning=true
  43. export ANDROID_SERIAL=$line
  44. break
  45. fi
  46. done < <(adb devices | cut -f1)
  47. if [ ! $emulatorIsRunning ] ; then
  48. emulator -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 &
  49. fi
  50. if [ -e $5 ] ; then
  51. color=""
  52. else
  53. color="-Pandroid.testInstrumentationRunnerArguments.COLOR=$5"
  54. fi
  55. if [[ $4 = "all" ]]; then
  56. scripts/runAllScreenshotCombinations "noCI" "$1" "-Pandroid.testInstrumentationRunnerArguments.class=$class$method"
  57. else
  58. ./gradlew --offline gplayDebugExecuteScreenshotTests $record \
  59. -Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest \
  60. -Pandroid.testInstrumentationRunnerArguments.class=$class$method \
  61. $darkMode \
  62. $color
  63. fi
  64. sed -i s'#<bool name="is_beta">true</bool>#<bool name="is_beta">false</bool>#'g src/main/res/values/setup.xml
  65. unset ANDROID_SERIAL