| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398 |
- #!/usr/bin/env bats
- load 'test_helper/bats-support/load'
- load 'test_helper/bats-assert/load'
- load 'test_helper/bats-file/load'
- function random() {
- MATRIX='0123456789'
- LENGTH=$1
- while [ ${n:=1} -le $LENGTH ]; do
- rand="$rand${MATRIX:$(($RANDOM%${#MATRIX})):1}"
- let n+=1
- done
- echo "$rand"
- }
- function setup() {
- # echo "# Setup_file" > &3
- if [ $BATS_TEST_NUMBER = 1 ]; then
- echo 'user=test-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
- echo 'domain=test-5285.hestiacp.com' >> /tmp/hestia-test-env.sh
- fi
- source /tmp/hestia-test-env.sh
- source $HESTIA/func/main.sh
- }
- #----------------------------------------------------------#
- # MAIN #
- #----------------------------------------------------------#
- @test "Add new userXXX" {
- skip
- run v-add-user $user $user $user@hestiacp.com default Super Test
- assert_success
- refute_output
- }
- #----------------------------------------------------------#
- # User #
- #----------------------------------------------------------#
- @test "Add new user" {
- run v-add-user $user $user $user@hestiacp.com default Super Test
- assert_success
- refute_output
- }
- @test "Change user password" {
- run v-change-user-password "$user" t3st-p4ssw0rd
- assert_success
- refute_output
- }
- @test "Change user email" {
- run v-change-user-contact "$user" tester@hestiacp.com
- assert_success
- refute_output
- }
- @test "Change user contact invalid email " {
- run v-change-user-contact "$user" testerhestiacp.com
- assert_failure $E_INVALID
- assert_output --partial 'Error: invalid email format'
- }
- @test "Change user shell" {
- run v-change-user-shell $user bash
- assert_success
- refute_output
- }
- @test "Change user invalid shell" {
- run v-change-user-shell $user bashinvalid
- assert_failure $E_INVALID
- assert_output --partial 'shell bashinvalid is not valid'
- }
- @test "Change user default ns" {
- run v-change-user-ns $user ns0.com ns1.com ns2.com ns3.com
- assert_success
- refute_output
- run v-list-user-ns "$user" plain
- assert_success
- assert_output --partial 'ns0.com'
- }
- #----------------------------------------------------------#
- # Cron #
- #----------------------------------------------------------#
- @test "Cron: Add cron job" {
- run v-add-cron-job $user 1 1 1 1 1 echo
- assert_success
- refute_output
- }
- @test "Cron: Suspend cron job" {
- run v-suspend-cron-job $user 1
- assert_success
- refute_output
- }
- @test "Cron: Unsuspend cron job" {
- run v-unsuspend-cron-job $user 1
- assert_success
- refute_output
- }
- @test "Cron: Delete cron job" {
- run v-delete-cron-job $user 1
- assert_success
- refute_output
- }
- @test "Cron: Add cron job (duplicate)" {
- run v-add-cron-job $user 1 1 1 1 1 echo 1
- assert_success
- refute_output
- run v-add-cron-job $user 1 1 1 1 1 echo 1
- assert_failure $E_EXISTS
- assert_output --partial 'JOB=1 is already exists'
- }
- @test "Cron: Second cron job" {
- run v-add-cron-job $user 2 2 2 2 2 echo 2
- assert_success
- refute_output
- }
- @test "Cron: Two cron jobs must be listed" {
- run v-list-cron-jobs $user csv
- assert_success
- assert_line --partial '1,1,1,1,1,"echo",no'
- assert_line --partial '2,2,2,2,2,"echo",no'
- }
- @test "Cron: rebuild" {
- run v-rebuild-cron-jobs $user
- assert_success
- refute_output
- }
- #----------------------------------------------------------#
- # IP #
- #----------------------------------------------------------#
- @test "Ip: Add new ip on first interface" {
- interface=$(v-list-sys-interfaces plain | head -n 1)
- run ip link show dev $interface
- assert_success
- echo "interface=${interface}" >> /tmp/hestia-test-env.sh
- run v-add-sys-ip 198.18.0.123 255.255.255.255 $interface $user
- assert_success
- refute_output
- }
- @test "Ip: Add duplicate (duplicat)" {
- run v-add-sys-ip 198.18.0.123 255.255.255.255 $interface $user
- assert_failure $E_EXISTS
- }
- @test "Ip: Delete ip" {
- run v-delete-sys-ip 198.18.0.123
- assert_success
- refute_output
- }
- @test "Ip: Add IP for rest of the test" {
- run v-add-sys-ip 198.18.0.125 255.255.255.255 $interface $user
- assert_success
- refute_output
- }
- #----------------------------------------------------------#
- # WEB #
- #----------------------------------------------------------#
- @test "WEB: Add web domain" {
- run v-add-web-domain $user $domain 198.18.0.125
- assert_success
- refute_output
- }
- @test "WEB: Add web domain (duplicate)" {
- run v-add-web-domain $user $domain 198.18.0.125
- assert_failure $E_EXISTS
- }
- @test "WEB: Add web domain alias" {
- run v-add-web-domain-alias $user $domain v3.$domain
- assert_success
- refute_output
- }
- @test "WEB: Add web domain alias (duplicate)" {
- run v-add-web-domain-alias $user $domain v3.$domain
- assert_failure $E_EXISTS
- }
- @test "WEB: Add web domain stats" {
- run v-add-web-domain-stats $user $domain awstats
- assert_success
- refute_output
- }
- @test "WEB: Add web domain stats user" {
- skip
- run v-add-web-domain-stats-user $user $domain test m3g4p4ssw0rd
- assert_success
- refute_output
- }
- @test "WEB: Suspend web domain" {
- run v-suspend-web-domain $user $domain
- assert_success
- refute_output
- }
- @test "WEB: Unsuspend web domain" {
- run v-unsuspend-web-domain $user $domain
- assert_success
- refute_output
- }
- @test "WEB: Add ssl" {
- cp -f $HESTIA/ssl/certificate.crt /tmp/$domain.crt
- cp -f $HESTIA/ssl/certificate.key /tmp/$domain.key
- run v-add-web-domain-ssl $user $domain /tmp
- assert_success
- refute_output
- }
- @test "WEB: Rebuild web domain" {
- run v-rebuild-web-domains $user
- assert_success
- refute_output
- }
- #----------------------------------------------------------#
- # DNS #
- #----------------------------------------------------------#
- @test "DNS: Add domain" {
- run v-add-dns-domain $user $domain 198.18.0.125
- assert_success
- refute_output
- }
- @test "DNS: Add domain (duplicate)" {
- run v-add-dns-domain $user $domain 198.18.0.125
- assert_failure $E_EXISTS
- }
- @test "DNS: Add domain record" {
- run v-add-dns-record $user $domain test A 198.18.0.125 20
- assert_success
- refute_output
- }
- @test "DNS: Delete domain record" {
- run v-delete-dns-record $user $domain 20
- assert_success
- refute_output
- }
- @test "DNS: Delete missing domain record" {
- run v-delete-dns-record $user $domain 20
- assert_failure $E_NOTEXIST
- }
- @test "DNS: Change domain expire date" {
- run v-change-dns-domain-exp $user $domain 2020-01-01
- assert_success
- refute_output
- }
- @test "DNS: Change domain ip" {
- run v-change-dns-domain-ip $user $domain 127.0.0.1
- assert_success
- refute_output
- }
- @test "DNS: Suspend domain" {
- run v-suspend-dns-domain $user $domain
- assert_success
- refute_output
- }
- @test "DNS: Unsuspend domain" {
- run v-unsuspend-dns-domain $user $domain
- assert_success
- refute_output
- }
- @test "DNS: Rebuild" {
- run v-rebuild-dns-domains $user
- assert_success
- refute_output
- }
- #----------------------------------------------------------#
- # MAIL #
- #----------------------------------------------------------#
- @test "MAIL: Add domain" {
- run v-add-mail-domain $user $domain
- assert_success
- refute_output
- }
- @test "MAIL: Add domain (duplicate)" {
- run v-add-mail-domain $user $domain
- assert_failure $E_EXISTS
- }
- @test "MAIL: Add account" {
- run v-add-mail-account $user $domain test t3st-p4ssw0rd
- assert_success
- refute_output
- }
- @test "MAIL: Add account (duplicate)" {
- run v-add-mail-account $user $domain test t3st-p4ssw0rd
- assert_failure $E_EXISTS
- }
- @test "MAIL: Delete account" {
- run v-delete-mail-account $user $domain test
- assert_success
- refute_output
- }
- @test "MAIL: Delete missing account" {
- run v-delete-mail-account $user $domain test
- assert_failure $E_NOTEXIST
- }
- #----------------------------------------------------------#
- # DB #
- #----------------------------------------------------------#
- #----------------------------------------------------------#
- # CLEANUP #
- #----------------------------------------------------------#
- @test "Mail: Delete domain" {
- # skip
- run v-delete-mail-domain $user $domain
- assert_success
- refute_output
- }
- @test "DNS: Delete domain" {
- # skip
- run v-delete-dns-domain $user $domain
- assert_success
- refute_output
- }
- @test "WEB: Delete domain" {
- # skip
- run v-delete-web-domain $user $domain
- assert_success
- refute_output
- }
- @test "Delete user" {
- # skip
- run v-delete-user $user
- assert_success
- refute_output
- }
- @test "Ip: Delete the test IP" {
- # skip
- run v-delete-sys-ip 198.18.0.125
- assert_success
- refute_output
- }
- @test 'assert()' {
- touch '/var/log/test.log'
- assert [ -e '/var/log/test.log' ]
- }
|