|
|
@@ -19,6 +19,7 @@ function setup() {
|
|
|
# echo "# Setup_file" > &3
|
|
|
if [ $BATS_TEST_NUMBER = 1 ]; then
|
|
|
echo 'user=test-5285' > /tmp/hestia-test-env.sh
|
|
|
+ echo 'userbk=testbk-5285' >> /tmp/hestia-test-env.sh
|
|
|
echo 'userpass1=test-5285' >> /tmp/hestia-test-env.sh
|
|
|
echo 'userpass2=t3st-p4ssw0rd' >> /tmp/hestia-test-env.sh
|
|
|
echo 'HESTIA=/usr/local/hestia' >> /tmp/hestia-test-env.sh
|
|
|
@@ -30,6 +31,45 @@ function setup() {
|
|
|
source $HESTIA/conf/hestia.conf
|
|
|
}
|
|
|
|
|
|
+function validate_web_domain() {
|
|
|
+ local user=$1
|
|
|
+ local domain=$2
|
|
|
+ local webproof=$3
|
|
|
+
|
|
|
+ refute [ -z "$user" ]
|
|
|
+ refute [ -z "$domain" ]
|
|
|
+ refute [ -z "$webproof" ]
|
|
|
+
|
|
|
+ source $HESTIA/func/ip.sh
|
|
|
+
|
|
|
+ run v-list-web-domain $user $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ USER_DATA=$HESTIA/data/users/$user
|
|
|
+ local domain_ip=$(get_object_value 'web' 'DOMAIN' "$domain" '$IP')
|
|
|
+ SSL=$(get_object_value 'web' 'DOMAIN' "$domain" '$SSL')
|
|
|
+ domain_ip=$(get_real_ip "$domain_ip")
|
|
|
+
|
|
|
+ assert_file_exist $HOMEDIR/$user/web/$domain/public_html/index.php
|
|
|
+
|
|
|
+ refute [ -z "$webproof" ]
|
|
|
+
|
|
|
+ # Test HTTP
|
|
|
+ run curl --location --silent --show-error --insecure --resolve "${domain}:80:${domain_ip}" "http://${domain}/index.php"
|
|
|
+ assert_success
|
|
|
+ assert_output --partial "$webproof"
|
|
|
+
|
|
|
+ # Test HTTPS
|
|
|
+ if [ "$SSL" = "yes" ]; then
|
|
|
+ run v-list-web-domain-ssl $user $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run curl --location --silent --show-error --insecure --resolve "${domain}:443:${domain_ip}" "https://${domain}/index.php"
|
|
|
+ assert_success
|
|
|
+ assert_output --partial "$webproof"
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
#----------------------------------------------------------#
|
|
|
# MAIN #
|
|
|
#----------------------------------------------------------#
|
|
|
@@ -440,6 +480,314 @@ function setup() {
|
|
|
#----------------------------------------------------------#
|
|
|
|
|
|
|
|
|
+#----------------------------------------------------------#
|
|
|
+# Backup / Restore #
|
|
|
+#----------------------------------------------------------#
|
|
|
+
|
|
|
+#Test backup
|
|
|
+# Hestia v1.1.1 archive contains:
|
|
|
+# user: hestia111
|
|
|
+# web:
|
|
|
+# - test.hestia.com (+SSL self-signed)
|
|
|
+# dns:
|
|
|
+# - test.hestia.com
|
|
|
+# mail:
|
|
|
+# - test.hestia.com
|
|
|
+# mail acc:
|
|
|
+# - [email protected]
|
|
|
+# db:
|
|
|
+# - hestia111_db
|
|
|
+# cron:
|
|
|
+# - 1: /bin/true
|
|
|
+#
|
|
|
+# Vesta 0.9.8-23 archive contains:
|
|
|
+# user: vesta09823
|
|
|
+# web:
|
|
|
+# - vesta09823.tld (+SSL self-signed)
|
|
|
+# dns:
|
|
|
+# - vesta09823.tld
|
|
|
+# mail:
|
|
|
+# - vesta09823.tld
|
|
|
+# mail acc:
|
|
|
+# - [email protected]
|
|
|
+# db:
|
|
|
+# - vesta09823_db
|
|
|
+# cron:
|
|
|
+# - 1: /bin/true
|
|
|
+#
|
|
|
+
|
|
|
+# Testing Hestia backups
|
|
|
+@test "Restore[1]: Hestia archive for a non-existing user" {
|
|
|
+ if [ -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+ fi
|
|
|
+
|
|
|
+ mkdir -p /backup
|
|
|
+
|
|
|
+ local archive_name="hestia111.2020-03-26"
|
|
|
+ run wget --quiet --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache "https://hestiacp.com/testing/data/${archive_name}.tar" -O "/backup/${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run v-restore-user $userbk "${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ rm "/backup/${archive_name}.tar"
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [WEB]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+ validate_web_domain $userbk $domain 'Hello Hestia'
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [DNS]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-dns-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run nslookup $domain 127.0.0.1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [MAIL]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-mail-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [MAIL-Account]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-mail-account $userbk $domain testaccount
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [DB]" {
|
|
|
+ run v-list-database $userbk "${userbk}_db"
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia [CRON]" {
|
|
|
+ run v-list-cron-job $userbk 1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Hestia Cleanup" {
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+@test "Restore[2]: Hestia archive over a existing user" {
|
|
|
+ if [ -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ ! -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-add-user $userbk $userbk [email protected]
|
|
|
+ assert_success
|
|
|
+ fi
|
|
|
+
|
|
|
+ mkdir -p /backup
|
|
|
+
|
|
|
+ local archive_name="hestia111.2020-03-26"
|
|
|
+ run wget --quiet --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache "https://hestiacp.com/testing/data/${archive_name}.tar" -O "/backup/${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run v-restore-user $userbk "${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ rm "/backup/${archive_name}.tar"
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [WEB]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+ validate_web_domain $userbk "${domain}" 'Hello Hestia'
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [DNS]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-dns-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run nslookup $domain 127.0.0.1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [MAIL]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-mail-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [MAIL-Account]" {
|
|
|
+ local domain="test.hestia.com"
|
|
|
+
|
|
|
+ run v-list-mail-account $userbk $domain testaccount
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [DB]" {
|
|
|
+ run v-list-database $userbk "${userbk}_db"
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia [CRON]" {
|
|
|
+ run v-list-cron-job $userbk 1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Hestia Cleanup" {
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+# Testing Vesta Backups
|
|
|
+@test "Restore[1]: Vesta archive for a non-existing user" {
|
|
|
+ if [ -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+ fi
|
|
|
+
|
|
|
+ mkdir -p /backup
|
|
|
+
|
|
|
+ local archive_name="vesta09823.2018-10-18"
|
|
|
+ run wget --quiet --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache "https://hestiacp.com/testing/data/${archive_name}.tar" -O "/backup/${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run v-restore-user $userbk "${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ rm "/backup/${archive_name}.tar"
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [WEB]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+ validate_web_domain $userbk $domain 'Hello Vesta'
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [DNS]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-dns-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run nslookup $domain 127.0.0.1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [MAIL]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-mail-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [MAIL-Account]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-mail-account $userbk $domain testaccount
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [DB]" {
|
|
|
+ run v-list-database $userbk "${userbk}_db"
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta [CRON]" {
|
|
|
+ run v-list-cron-job $userbk 1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[1]: From Vesta Cleanup" {
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+@test "Restore[2]: Vesta archive over a existing user" {
|
|
|
+ if [ -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ ! -d "$HOMEDIR/$userbk" ]; then
|
|
|
+ run v-add-user $userbk $userbk [email protected]
|
|
|
+ assert_success
|
|
|
+ fi
|
|
|
+
|
|
|
+ mkdir -p /backup
|
|
|
+
|
|
|
+ local archive_name="vesta09823.2018-10-18"
|
|
|
+ run wget --quiet --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache "https://hestiacp.com/testing/data/${archive_name}.tar" -O "/backup/${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run v-restore-user $userbk "${archive_name}.tar"
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ rm "/backup/${archive_name}.tar"
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [WEB]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+ validate_web_domain $userbk "${domain}" 'Hello Vesta'
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [DNS]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-dns-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+
|
|
|
+ run nslookup $domain 127.0.0.1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [MAIL]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-mail-domain $userbk $domain
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [MAIL-Account]" {
|
|
|
+ local domain="vesta09823.tld"
|
|
|
+
|
|
|
+ run v-list-mail-account $userbk $domain testaccount
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [DB]" {
|
|
|
+ run v-list-database $userbk "${userbk}_db"
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta [CRON]" {
|
|
|
+ run v-list-cron-job $userbk 1
|
|
|
+ assert_success
|
|
|
+}
|
|
|
+
|
|
|
+@test "Restore[2]: From Vesta Cleanup" {
|
|
|
+ run v-delete-user $userbk
|
|
|
+ assert_success
|
|
|
+ refute_output
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
#----------------------------------------------------------#
|
|
|
# CLEANUP #
|
|
|
#----------------------------------------------------------#
|