serval-dna/tests/meshmbrestful
2016-10-26 13:08:19 +10:30

100 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
source "${0%/*}/../testframework.sh"
source "${0%/*}/../testdefs.sh"
source "${0%/*}/../testdefs_json.sh"
setup_instance() {
set_instance $1
executeOk_servald config \
set api.restful.users.harry.password potter \
set api.restful.users.ron.password weasley \
set api.restful.users.hermione.password grainger \
set debug.http_server on \
set debug.httpd on \
set debug.meshmb on \
set debug.meshms on \
set debug.verbose on \
set log.console.level debug
set_extra_config
if [ -z "$IDENTITY_COUNT" ]; then
create_single_identity
else
create_identities $IDENTITY_COUNT
fi
}
set_extra_config() {
:
}
setup() {
setup_curl 7
setup_json
setup_servald
export SERVALD_RHIZOME_DB_RETRY_LIMIT_MS=60000
setup_instance +A
start_servald_instances +A
wait_until servald_restful_http_server_started +A
get_servald_restful_http_server_port PORTA +A
}
finally() {
stop_all_servald_servers
}
teardown() {
kill_all_servald_processes
assert_no_servald_processes
report_all_servald_servers
}
doc_MeshMBRestSend="Restful send of a broadcast message"
test_MeshMBRestSend() {
executeOk curl \
-H "Expect:" \
--silent --fail --show-error \
--output sendmessage.json \
--basic --user harry:potter \
--form "message=Hello World;type=text/plain;charset=utf-8" \
"http://$addr_localhost:$PORTA/restful/meshmb/$IDA1/sendmessage"
executeOk_servald rhizome export bundle $IDA1 broadcast.manifest broadcast
tfw_cat -h broadcast.manifest
tfw_cat -h broadcast
}
doc_MeshMBRestList="Restful list of meshmb messages"
setup_MeshMBRestList() {
setup
executeOk_servald meshmb send $IDA1 "Message 1"
executeOk_servald meshmb send $IDA1 "Message 2"
}
test_MeshMBRestList() {
executeOk curl \
-H "Expect:" \
--silent --fail --show-error \
--output listmessages.json \
--dump-header http.headers \
--basic --user harry:potter \
"http://$addr_localhost:$PORTA/restful/meshmb/$IDA1/messagelist.json"
tfw_cat http.headers listmessages.json
tfw_preserve listmessages.json
assert [ "$(jq '.rows | length' listmessages.json)" = 2 ]
transform_list_json listmessages.json list.json
tfw_preserve list.json
assertJq list.json \
"contains([
{ offset: 12,
text: \"Message 1\"
}
])"
assertJq list.json \
"contains([
{ offset: 30,
text: \"Message 2\"
}
])"
}
runTests "$@"