You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
4.6 KiB
151 lines
4.6 KiB
#!/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"
|
|
} |