| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #!/usr/bin/env bats
- if [ "${PATH#*/usr/local/hestia/bin*}" = "$PATH" ]; then
- . /etc/profile.d/hestia.sh
- fi
- load 'test_helper/bats-support/load'
- load 'test_helper/bats-assert/load'
- load 'test_helper/bats-file/load'
- function random() {
- head /dev/urandom | tr -dc 0-9 | head -c$1
- }
- function setup() {
- source /tmp/hestia-api-env.sh
- source $HESTIA/func/main.sh
- source $HESTIA/conf/hestia.conf
- source $HESTIA/func/ip.sh
- }
- @test "[Success][ Admin/password ] List users" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "user=admin&password=$password&returncode=no&cmd=v-list-users&arg1=plain" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "admin"
- }
- @test "[Success][ Hash ] List users" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$apikey&returncode=no&cmd=v-list-users&arg1=plain" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "admin"
- }
- @test "[Fail][ APIV2 ] Create new user" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$accesskey&returncode=yes&cmd=v-add-user&arg1=hestiatest&arg2=strongpassword&arg3=info@hestiacp.com" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "don't have permission to run the command v-add-user"
- }
- @test "[Success][ Hash ] Create tmp file" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$apikey&cmd=v-make-tmp-file&arg1=strongpassword&arg2=clusterpassword" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "OK"
- }
- @test "[Success][ Hash ] Create new user" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$apikey&cmd=v-add-user&arg1=hestiatest&arg2=/tmp/clusterpassword&arg3=info@hestiacp.com&arg4=default" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "OK"
- }
- @test "[Success][ Hash ] Check password" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$apikey&cmd=v-check-user-password&arg1=hestiatest&arg2=strongpassword" "https://$server:$port/api/index.php"
- assert_success
- assert_output --partial "OK"
- }
- @test "[Success][ Local ] Add user" {
- run v-add-user hestiatest 1234BCD info@hestiacp.com
- assert_success
- }
- @test "[Success][ Local ] Add DNS domain" {
- run v-add-dns-domain hestiatest ilovehestiacp.com 127.0.0.1
- assert_success
- }
- @test "[Success][ APIV2 ] Add remote DNS host" {
- run v-add-remote-dns-host $server $port "$accesskey" '' api 'hestiatest'
- assert_success
- }
- @test "[Success][ APIV2 ] Sync DNS cluster 1" {
- run v-sync-dns-cluster
- assert_success
- }
- @test "[Success][ Local ] nslookup ilovehestiacp.com" {
- run nslookup ilovehestiacp.com $server
- assert_success
- assert_output --partial "127.0.0.1"
- }
- @test "[Success][ Local ] Add DNS domain 2" {
- run v-add-dns-domain hestiatest ilovehestiacp.org 127.0.0.1
- assert_success
- }
- @test "[Success][ Local ] Add DNS record" {
- run v-add-dns-record hestiatest ilovehestiacp.org test A 127.0.0.1 yes 20
- assert_success
- }
- @test "[Success][ Local ] nslookup test.ilovehestiacp.org" {
- run nslookup test.ilovehestiacp.org $server
- assert_failure 1
- assert_output --partial "REFUSED"
- run nslookup test.ilovehestiacp.org localhost
- assert_success
- assert_output --partial "127.0.0.1"
- }
- @test "[Success][ APIV2 ] Sync DNS cluster 2" {
- run v-sync-dns-cluster
- assert_success
- run nslookup test.ilovehestiacp.org $server
- assert_success
- assert_output --partial "127.0.0.1"
- }
- @test "[Success][ Local ] Delete DNS record" {
- run v-delete-dns-record hestiatest ilovehestiacp.org 20
- assert_success
- }
- @test "[Success][ Local ] nslookup test.ilovehestiacp.org 2" {
- run nslookup test.ilovehestiacp.org $server
- assert_success
- assert_output --partial "127.0.0.1"
- run nslookup test.ilovehestiacp.org localhost
- assert_failure
- }
- @test "[Success][ APIV2 ] Sync DNS cluster 3" {
- run v-sync-dns-cluster
- assert_success
- run nslookup test.ilovehestiacp.org $server
- assert_failure
- }
- @test "[Success][ APIV2 ] Delete remote DNS host" {
- run v-delete-remote-dns-host $server
- assert_success
- }
- @test "[Success][ Local ] Delete user" {
- run v-delete-user hestiatest
- assert_success
- }
- @test "[Success][ Hash ] Delete user" {
- run curl -k -s -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "hash=$apikey&cmd=v-delete-user&arg1=hestiatest" "https://$server:$port/api/index.php"
- }
|