@@ -19,6 +19,7 @@ function setup() {
1919 # echo "# Setup_file" > &3
2020 if [ $BATS_TEST_NUMBER = 1 ]; then
2121 echo ' user=test-5285' > /tmp/hestia-test-env.sh
22+ echo ' userbk=testbk-5285' >> /tmp/hestia-test-env.sh
2223 echo ' userpass1=test-5285' >> /tmp/hestia-test-env.sh
2324 echo ' userpass2=t3st-p4ssw0rd' >> /tmp/hestia-test-env.sh
2425 echo ' HESTIA=/usr/local/hestia' >> /tmp/hestia-test-env.sh
@@ -30,6 +31,45 @@ function setup() {
3031 source $HESTIA /conf/hestia.conf
3132}
3233
34+ function validate_web_domain() {
35+ local user=$1
36+ local domain=$2
37+ local webproof=$3
38+
39+ refute [ -z " $user " ]
40+ refute [ -z " $domain " ]
41+ refute [ -z " $webproof " ]
42+
43+ source $HESTIA /func/ip.sh
44+
45+ run v-list-web-domain $user $domain
46+ assert_success
47+
48+ USER_DATA=$HESTIA /data/users/$user
49+ local domain_ip=$( get_object_value ' web' ' DOMAIN' " $domain " ' $IP' )
50+ SSL=$( get_object_value ' web' ' DOMAIN' " $domain " ' $SSL' )
51+ domain_ip=$( get_real_ip " $domain_ip " )
52+
53+ assert_file_exist $HOMEDIR /$user /web/$domain /public_html/index.php
54+
55+ refute [ -z " $webproof " ]
56+
57+ # Test HTTP
58+ run curl --location --silent --show-error --insecure --resolve " ${domain} :80:${domain_ip} " " http://${domain} /index.php"
59+ assert_success
60+ assert_output --partial " $webproof "
61+
62+ # Test HTTPS
63+ if [ " $SSL " = " yes" ]; then
64+ run v-list-web-domain-ssl $user $domain
65+ assert_success
66+
67+ run curl --location --silent --show-error --insecure --resolve " ${domain} :443:${domain_ip} " " https://${domain} /index.php"
68+ assert_success
69+ assert_output --partial " $webproof "
70+ fi
71+ }
72+
3373# ----------------------------------------------------------#
3474# MAIN #
3575# ----------------------------------------------------------#
@@ -440,6 +480,314 @@ function setup() {
440480# ----------------------------------------------------------#
441481
442482
483+ # ----------------------------------------------------------#
484+ # Backup / Restore #
485+ # ----------------------------------------------------------#
486+
487+ # Test backup
488+ # Hestia v1.1.1 archive contains:
489+ # user: hestia111
490+ # web:
491+ # - test.hestia.com (+SSL self-signed)
492+ # dns:
493+ # - test.hestia.com
494+ # mail:
495+ # - test.hestia.com
496+ # mail acc:
497+ # - testaccount@test.hestia.com
498+ # db:
499+ # - hestia111_db
500+ # cron:
501+ # - 1: /bin/true
502+ #
503+ # Vesta 0.9.8-23 archive contains:
504+ # user: vesta09823
505+ # web:
506+ # - vesta09823.tld (+SSL self-signed)
507+ # dns:
508+ # - vesta09823.tld
509+ # mail:
510+ # - vesta09823.tld
511+ # mail acc:
512+ # - testaccount@vesta09823.tld
513+ # db:
514+ # - vesta09823_db
515+ # cron:
516+ # - 1: /bin/true
517+ #
518+
519+ # Testing Hestia backups
520+ @test " Restore[1]: Hestia archive for a non-existing user" {
521+ if [ -d " $HOMEDIR /$userbk " ]; then
522+ run v-delete-user $userbk
523+ assert_success
524+ refute_output
525+ fi
526+
527+ mkdir -p /backup
528+
529+ local archive_name=" hestia111.2020-03-26"
530+ 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"
531+ assert_success
532+
533+ run v-restore-user $userbk " ${archive_name} .tar"
534+ assert_success
535+
536+ rm " /backup/${archive_name} .tar"
537+ }
538+
539+ @test " Restore[1]: From Hestia [WEB]" {
540+ local domain=" test.hestia.com"
541+ validate_web_domain $userbk $domain ' Hello Hestia'
542+ }
543+
544+ @test " Restore[1]: From Hestia [DNS]" {
545+ local domain=" test.hestia.com"
546+
547+ run v-list-dns-domain $userbk $domain
548+ assert_success
549+
550+ run nslookup $domain 127.0.0.1
551+ assert_success
552+ }
553+
554+ @test " Restore[1]: From Hestia [MAIL]" {
555+ local domain=" test.hestia.com"
556+
557+ run v-list-mail-domain $userbk $domain
558+ assert_success
559+ }
560+
561+ @test " Restore[1]: From Hestia [MAIL-Account]" {
562+ local domain=" test.hestia.com"
563+
564+ run v-list-mail-account $userbk $domain testaccount
565+ assert_success
566+ }
567+
568+ @test " Restore[1]: From Hestia [DB]" {
569+ run v-list-database $userbk " ${userbk} _db"
570+ assert_success
571+ }
572+
573+ @test " Restore[1]: From Hestia [CRON]" {
574+ run v-list-cron-job $userbk 1
575+ assert_success
576+ }
577+
578+ @test " Restore[1]: From Hestia Cleanup" {
579+ run v-delete-user $userbk
580+ assert_success
581+ refute_output
582+ }
583+
584+
585+ @test " Restore[2]: Hestia archive over a existing user" {
586+ if [ -d " $HOMEDIR /$userbk " ]; then
587+ run v-delete-user $userbk
588+ assert_success
589+ refute_output
590+ fi
591+
592+ if [ ! -d " $HOMEDIR /$userbk " ]; then
593+ run v-add-user $userbk $userbk test@hestia.com
594+ assert_success
595+ fi
596+
597+ mkdir -p /backup
598+
599+ local archive_name=" hestia111.2020-03-26"
600+ 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"
601+ assert_success
602+
603+ run v-restore-user $userbk " ${archive_name} .tar"
604+ assert_success
605+
606+ rm " /backup/${archive_name} .tar"
607+ }
608+
609+ @test " Restore[2]: From Hestia [WEB]" {
610+ local domain=" test.hestia.com"
611+ validate_web_domain $userbk " ${domain} " ' Hello Hestia'
612+ }
613+
614+ @test " Restore[2]: From Hestia [DNS]" {
615+ local domain=" test.hestia.com"
616+
617+ run v-list-dns-domain $userbk $domain
618+ assert_success
619+
620+ run nslookup $domain 127.0.0.1
621+ assert_success
622+ }
623+
624+ @test " Restore[2]: From Hestia [MAIL]" {
625+ local domain=" test.hestia.com"
626+
627+ run v-list-mail-domain $userbk $domain
628+ assert_success
629+ }
630+
631+ @test " Restore[2]: From Hestia [MAIL-Account]" {
632+ local domain=" test.hestia.com"
633+
634+ run v-list-mail-account $userbk $domain testaccount
635+ assert_success
636+ }
637+
638+ @test " Restore[2]: From Hestia [DB]" {
639+ run v-list-database $userbk " ${userbk} _db"
640+ assert_success
641+ }
642+
643+ @test " Restore[2]: From Hestia [CRON]" {
644+ run v-list-cron-job $userbk 1
645+ assert_success
646+ }
647+
648+ @test " Restore[2]: From Hestia Cleanup" {
649+ run v-delete-user $userbk
650+ assert_success
651+ refute_output
652+ }
653+
654+
655+ # Testing Vesta Backups
656+ @test " Restore[1]: Vesta archive for a non-existing user" {
657+ if [ -d " $HOMEDIR /$userbk " ]; then
658+ run v-delete-user $userbk
659+ assert_success
660+ refute_output
661+ fi
662+
663+ mkdir -p /backup
664+
665+ local archive_name=" vesta09823.2018-10-18"
666+ 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"
667+ assert_success
668+
669+ run v-restore-user $userbk " ${archive_name} .tar"
670+ assert_success
671+
672+ rm " /backup/${archive_name} .tar"
673+ }
674+
675+ @test " Restore[1]: From Vesta [WEB]" {
676+ local domain=" vesta09823.tld"
677+ validate_web_domain $userbk $domain ' Hello Vesta'
678+ }
679+
680+ @test " Restore[1]: From Vesta [DNS]" {
681+ local domain=" vesta09823.tld"
682+
683+ run v-list-dns-domain $userbk $domain
684+ assert_success
685+
686+ run nslookup $domain 127.0.0.1
687+ assert_success
688+ }
689+
690+ @test " Restore[1]: From Vesta [MAIL]" {
691+ local domain=" vesta09823.tld"
692+
693+ run v-list-mail-domain $userbk $domain
694+ assert_success
695+ }
696+
697+ @test " Restore[1]: From Vesta [MAIL-Account]" {
698+ local domain=" vesta09823.tld"
699+
700+ run v-list-mail-account $userbk $domain testaccount
701+ assert_success
702+ }
703+
704+ @test " Restore[1]: From Vesta [DB]" {
705+ run v-list-database $userbk " ${userbk} _db"
706+ assert_success
707+ }
708+
709+ @test " Restore[1]: From Vesta [CRON]" {
710+ run v-list-cron-job $userbk 1
711+ assert_success
712+ }
713+
714+ @test " Restore[1]: From Vesta Cleanup" {
715+ run v-delete-user $userbk
716+ assert_success
717+ refute_output
718+ }
719+
720+
721+ @test " Restore[2]: Vesta archive over a existing user" {
722+ if [ -d " $HOMEDIR /$userbk " ]; then
723+ run v-delete-user $userbk
724+ assert_success
725+ refute_output
726+ fi
727+
728+ if [ ! -d " $HOMEDIR /$userbk " ]; then
729+ run v-add-user $userbk $userbk test@hestia.com
730+ assert_success
731+ fi
732+
733+ mkdir -p /backup
734+
735+ local archive_name=" vesta09823.2018-10-18"
736+ 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"
737+ assert_success
738+
739+ run v-restore-user $userbk " ${archive_name} .tar"
740+ assert_success
741+
742+ rm " /backup/${archive_name} .tar"
743+ }
744+
745+ @test " Restore[2]: From Vesta [WEB]" {
746+ local domain=" vesta09823.tld"
747+ validate_web_domain $userbk " ${domain} " ' Hello Vesta'
748+ }
749+
750+ @test " Restore[2]: From Vesta [DNS]" {
751+ local domain=" vesta09823.tld"
752+
753+ run v-list-dns-domain $userbk $domain
754+ assert_success
755+
756+ run nslookup $domain 127.0.0.1
757+ assert_success
758+ }
759+
760+ @test " Restore[2]: From Vesta [MAIL]" {
761+ local domain=" vesta09823.tld"
762+
763+ run v-list-mail-domain $userbk $domain
764+ assert_success
765+ }
766+
767+ @test " Restore[2]: From Vesta [MAIL-Account]" {
768+ local domain=" vesta09823.tld"
769+
770+ run v-list-mail-account $userbk $domain testaccount
771+ assert_success
772+ }
773+
774+ @test " Restore[2]: From Vesta [DB]" {
775+ run v-list-database $userbk " ${userbk} _db"
776+ assert_success
777+ }
778+
779+ @test " Restore[2]: From Vesta [CRON]" {
780+ run v-list-cron-job $userbk 1
781+ assert_success
782+ }
783+
784+ @test " Restore[2]: From Vesta Cleanup" {
785+ run v-delete-user $userbk
786+ assert_success
787+ refute_output
788+ }
789+
790+
443791# ----------------------------------------------------------#
444792# CLEANUP #
445793# ----------------------------------------------------------#
0 commit comments