config-tests.bats 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/usr/bin/env bats
  2. if [ "${PATH#*/usr/local/hestia/bin*}" = "$PATH" ]; then
  3. . /etc/profile.d/hestia.sh
  4. fi
  5. load 'test_helper/bats-support/load'
  6. load 'test_helper/bats-assert/load'
  7. load 'test_helper/bats-file/load'
  8. function random() {
  9. head /dev/urandom | tr -dc 0-9 | head -c$1
  10. }
  11. function setup() {
  12. # echo "# Setup_file" > &3
  13. if [ $BATS_TEST_NUMBER = 1 ]; then
  14. echo 'user=test-5285' > /tmp/hestia-test-env.sh
  15. echo 'user2=test-5286' >> /tmp/hestia-test-env.sh
  16. echo 'userbk=testbk-5285' >> /tmp/hestia-test-env.sh
  17. echo 'userpass1=test-5285' >> /tmp/hestia-test-env.sh
  18. echo 'userpass2=t3st-p4ssw0rd' >> /tmp/hestia-test-env.sh
  19. echo 'HESTIA=/usr/local/hestia' >> /tmp/hestia-test-env.sh
  20. echo 'domain=test-5285.hestiacp.com' >> /tmp/hestia-test-env.sh
  21. echo 'domainuk=test-5285.hestiacp.com.uk' >> /tmp/hestia-test-env.sh
  22. echo 'rootdomain=testhestiacp.com' >> /tmp/hestia-test-env.sh
  23. echo 'subdomain=cdn.testhestiacp.com' >> /tmp/hestia-test-env.sh
  24. echo 'database=test-5285_database' >> /tmp/hestia-test-env.sh
  25. echo 'dbuser=test-5285_dbuser' >> /tmp/hestia-test-env.sh
  26. fi
  27. source /tmp/hestia-test-env.sh
  28. source $HESTIA/func/main.sh
  29. source $HESTIA/conf/hestia.conf
  30. source $HESTIA/func/ip.sh
  31. }
  32. @test "Prepare for tests" {
  33. run rm -f /usr/local/hestia/data/templates/web/nginx/php-fpm/*.*
  34. run rm -f /usr/local/hestia/data/templates/web/nginx/*.*
  35. run rm -f /usr/local/hestia/data/templates/web/apache2/php-fpm/*.*
  36. run rm -f /usr/local/hestia/data/templates/web/apache2/*.*
  37. run v-update-web-templates
  38. }
  39. @test "Setup Test domain" {
  40. run v-add-user $user $user $user@hestiacp.com default "Super Test"
  41. assert_success
  42. refute_output
  43. run v-add-web-domain $user 'testhestiacp.com'
  44. assert_success
  45. refute_output
  46. ssl=$(v-generate-ssl-cert "testhestiacp.com" "info@testhestiacp.com" US CA "Orange County" HestiaCP IT "mail.$domain" | tail -n1 | awk '{print $2}')
  47. mv $ssl/testhestiacp.com.crt /tmp/testhestiacp.com.crt
  48. mv $ssl/testhestiacp.com.key /tmp/testhestiacp.com.key
  49. # Use self signed certificates during last test
  50. run v-add-web-domain-ssl $user testhestiacp.com /tmp
  51. assert_success
  52. refute_output
  53. }
  54. @test "Web Config test" {
  55. for template in $(v-list-web-templates plain); do
  56. run v-change-web-domain-tpl $user testhestiacp.com $template
  57. assert_success
  58. refute_output
  59. done
  60. }
  61. @test "Proxy Config test" {
  62. if [ "$PROXY_SYSTEM" = "nginx" ]; then
  63. for template in $(v-list-web-templates plain); do
  64. run v-change-web-domain-proxy-tpl $user testhestiacp.com $template
  65. assert_success
  66. refute_output
  67. done
  68. else
  69. skip "Proxy not installed"
  70. fi
  71. }
  72. @test "Clean up" {
  73. run v-delete-user $user
  74. assert_success
  75. refute_output
  76. }