updateScreenshots.sh 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/env bash
  2. if ( [[ $(grep NC_TEST_SERVER_BASEURL ~/.gradle/gradle.properties | grep -v "#" -c) -gt 0 ]] ); then
  3. echo "This will not use server in docker. Please comment in .gradle/gradle.properties. Aborting!"
  4. exit 1
  5. fi
  6. ## emulator
  7. if ( [[ ! $(emulator -list-avds | grep uiComparison -c) -eq 0 ]] ); then
  8. avdmanager delete avd -n uiComparison
  9. (sleep 5; echo "no") | avdmanager create avd -n uiComparison -c 100M -k "system-images;android-27;google_apis;x86" --abi "google_apis/x86"
  10. fi
  11. if [ $1 == "debug" ]; then
  12. emulator -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 1>/dev/null &
  13. else
  14. emulator -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 1>/dev/null &
  15. fi
  16. PID=$(echo $!)
  17. ## server
  18. docker run --name=uiComparison nextcloudci/server --entrypoint '/usr/local/bin/initnc.sh' 1>/dev/null &
  19. sleep 5
  20. IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' uiComparison)
  21. if [[ $IP = "" ]]; then
  22. echo "no server"
  23. exit 1
  24. fi
  25. ## wait for server to finish
  26. scripts/wait_for_server.sh $IP
  27. ## run on server
  28. cp gradle.properties gradle.properties_
  29. sed -i s"/server/$IP/" gradle.properties
  30. scripts/wait_for_emulator.sh
  31. # setup test server
  32. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1\""
  33. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2\""
  34. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3\""
  35. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ user:setting user2 files quota 1G\""
  36. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:add users\""
  37. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:adduser users user1\""
  38. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:adduser users user2\""
  39. docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/text.git /var/www/html/apps/text/\""
  40. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable text\""
  41. docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/circles.git /var/www/html/apps/circles/\""
  42. docker exec uiComparison /bin/sh -c "apt-get update; apt-get -y install composer"
  43. docker exec uiComparison /bin/sh -c "su www-data -c \"cd /var/www/html/apps/circles; composer install\""
  44. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable -f circles\""
  45. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ config:app:set circles --value 1 allow_non_ssl_links\""
  46. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ config:app:set circles --value 1 local_is_non_ssl\""
  47. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ circles:manage:create test public publicCircle\""
  48. docker exec uiComparison /bin/sh -c "/usr/local/bin/run.sh"
  49. ## update/create all screenshots
  50. ./gradlew executeScreenshotTests -Precord
  51. ## update screenshots in a class
  52. #./gradlew executeScreenshotTests \
  53. #-Precord \
  54. #-Pandroid.testInstrumentationRunnerArguments.class=\
  55. #com.owncloud.android.ui.dialog.SyncFileNotEnoughSpaceDialogFragmentTest
  56. ## update single screenshot within a class
  57. #./gradlew executeScreenshotTests \
  58. #-Precord \
  59. #-Pandroid.testInstrumentationRunnerArguments.class=\
  60. #com.owncloud.android.ui.dialog.SyncFileNotEnoughSpaceDialogFragmentTest#showNotEnoughSpaceDialogForFile
  61. mv gradle.properties_ gradle.properties
  62. if [ $1 == "debug" ]; then
  63. exit
  64. fi
  65. # tidy up
  66. kill $PID
  67. docker stop uiComparison
  68. docker rm uiComparison