diff --git a/server/tests/common.sh b/server/tests/common.sh index bf3cf8a..a996878 100644 --- a/server/tests/common.sh +++ b/server/tests/common.sh @@ -17,4 +17,4 @@ export POST='-X POST' export arrows='>>>>>' export line='=============' -crl='curl --silent -i' +export crl='curl --silent -i' diff --git a/server/tests/main.sh b/server/tests/main.sh index baa64fd..9cc0559 100644 --- a/server/tests/main.sh +++ b/server/tests/main.sh @@ -10,22 +10,26 @@ # 1. is properly formatted # 2. has all the info we need & none we don't # 3. has basically nothing malicious about it -show_discrepancy() { - expect=$1 - actual=$2 - result=$3 +log_result() { + name=$1 + expect=$2 + actual=$3 + result=$4 + green='\033[1;32m' + red='\033[1;91m' + nc='\033[0m' if [ $expect != $actual ];then - red='\033[1;91m' - nc='\033[0m' echo -e ${red}==========${nc} echo "$result" | sed 's/^/\t/g' echo -e ${red}==========${nc} + else + echo -e ${green}${name}${nc} $expect $actual fi } source ./common.sh -export -f show_discrepancy +export -f log_result echo TestName ExpectedCode ActualCode bash ./verify_basic_cases.sh diff --git a/server/tests/todo.md b/server/tests/todo.md new file mode 100644 index 0000000..ded6d99 --- /dev/null +++ b/server/tests/todo.md @@ -0,0 +1,25 @@ +Testing happens on a per-modules basis + +# Messages + +All required, none finished + +# Channels + +* list\_all\_channels + + Good and bad users done + + Malicious users not done + +* create\_channel - not done + +* delete\_channel - not ready for testing + +* set\_channel\_attribute - not ready for testing + +# Invites + +* create - not tested + +* use - not tested diff --git a/server/tests/verify_basic_cases.sh b/server/tests/verify_basic_cases.sh index 8a5291b..365e8be 100644 --- a/server/tests/verify_basic_cases.sh +++ b/server/tests/verify_basic_cases.sh @@ -2,15 +2,21 @@ # Available tests marked with `TEST` - ez grep usage -active_tests='list_all_channels' +active_tests='list_all_channels create_channel' list_all_channels() { # TEST result=$(curl --silent -i $GET $url/channels/list -d $simple_key) code=$(echo "$result" | grep HTTP\/1.1 | awk '{print $2}') - echo "good_list_all_channels" 200 $code - show_discrepancy 200 $code "$result" + log_result "good_list_all_channels" 200 $code "$result" } +create_channel() { + echo create_channel 0 0 +} + +delete_channel() { + echo delete_channel 0 0 +} if [ -z $1 ];then for cmd in $active_tests;do $cmd diff --git a/server/tests/verify_err_cases.sh b/server/tests/verify_err_cases.sh index c4bf8ab..a5af94e 100644 --- a/server/tests/verify_err_cases.sh +++ b/server/tests/verify_err_cases.sh @@ -1,20 +1,20 @@ -#!/bin/sh +#!/bin/bash -active_tests='list_all_channels' +active_tests='list_channels_no_key list_channels_bad_key' -list_all_channels() { - echo $arrows Test: list_all_channels : no-key - curl $GET $url/channels/list - echo '\n'$line +list_channels_no_key() { + result=$($crl $GET $url/channels/list) + code=$(echo "$result" | grep HTTP\/1.1 | awk '{print $2}') + log_result list_channels_no_key 401 $code "$result" +} - echo $arrows Test: list_all_channels : wrong-key - curl $GET $url/channels/list -d '{"secret":"something else"}' - echo '\n'$line +list_channels_bad_key() { + result=$($crl $GET $url/channels/list -d '{"secret":"something else"}') + code=$(echo "$result" | grep HTTP\/1.1 | awk '{print $2}') + log_result list_channels_bad_key 401 $code "$result" } if [ -z $1 ];then - . ./tests/common.sh - echo Running tests $active_tests for cmd in $active_tests;do $cmd done diff --git a/server/tests/verify_mal_cases.sh b/server/tests/verify_mal_cases.sh index c114d50..a9bf588 100644 --- a/server/tests/verify_mal_cases.sh +++ b/server/tests/verify_mal_cases.sh @@ -1,3 +1 @@ -#!/bin/sh - -echo Running mal cases +#!/bin/bash