X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2e04b8ea0e57e411665aa6a8814ff65db0d4cd2b..1d5e6d0340ba258b34b85ccdac4c402ccf4fd51e:/test/oauth/test-send?ds=sidebyside diff --git a/test/oauth/test-send b/test/oauth/test-send index f41f8965..4d5a850a 100755 --- a/test/oauth/test-send +++ b/test/oauth/test-send @@ -10,6 +10,8 @@ fi . "${srcdir}/test/oauth/common.sh" +check_exit '-eq 1' send - + test_send_only_fakehttp() { start_fakehttp test_send_no_servers "$@" @@ -35,7 +37,7 @@ expire-nobody@example.com: 2000000000 EOF start_fakesmtp -run_test "send -draft -server 127.0.0.1 -port ${smtp_port} -saslmech xoauth2 -authservice test -user nobody@example.com" +run_test "send -draft -server 127.0.0.1 -port ${smtp_port} -sasl -saslmech xoauth2 -authservice test -user nobody@example.com" # TEST start_test 'expired access token, refresh works, smtp server accepts message' @@ -163,29 +165,32 @@ setup_draft # TEST start_test 'no service definition' -run_test "send -draft -server 127.0.0.1 -port ${smtp_port} -saslmech xoauth2 -authservice bogus -user nobody@example.com" 'send: incomplete OAuth2 service definition: scope is missing' +run_test "send -draft -server 127.0.0.1 -port ${smtp_port} -sasl -saslmech xoauth2 -authservice bogus -user nobody@example.com" 'send: Unable to retrieve oauth profile entries: scope is missing' # TEST start_test 'no creds file -- should tell user to mhlogin' rm -f "${MHTMPDIR}/oauth-test" -test_send_no_servers 'send: no credentials -- run mhlogin -saslmech xoauth2 -authservice test' +test_send_only_fakesmtp 'post: no credentials -- run mhlogin -saslmech xoauth2 -authservice test +send: message not delivered to anyone' # TEST start_test 'empty creds file -- should tell user to mhlogin' fake_creds < /dev/null -test_send_no_servers 'send: user not found in cred file: nobody@example.com' +test_send_only_fakesmtp 'post: user not found in cred file: nobody@example.com +send: message not delivered to anyone' # TEST start_test 'garbage creds file' echo bork | fake_creds -test_send_no_servers 'send: eof encountered in field "bork" -send: error loading cred file' +test_send_only_fakesmtp 'post: eof encountered in field "bork" +post: error loading cred file +send: message not delivered to anyone' # TEST start_test 'unexpected field in creds file' @@ -195,7 +200,8 @@ bork: bork access-nobody@example.com: test-access EOF -test_send_no_servers 'send: error loading cred file: unexpected field' +test_send_only_fakesmtp 'post: error loading cred file: unexpected field +send: message not delivered to anyone' # TEST start_test 'garbage expiration time' @@ -205,7 +211,8 @@ access-nobody@example.com: test-access expire-nobody@example.com: 99999999999999999999999999999999 EOF -test_send_no_servers 'send: error loading cred file: invalid expiration time' +test_send_only_fakesmtp 'post: error loading cred file: invalid expiration time +send: message not delivered to anyone' # TEST start_test 'refresh response has no access token' @@ -223,8 +230,9 @@ fake_json_response < "${testname}.expected-send-output" < "${testname}.send-output" 2>&1 || true + -sasl -saslmech xoauth2 -authservice test -user nobody@example.com > "${testname}.send-output" 2>&1 || true # Clear out an error message we get from libcurl on some systems (seen at least # 3 different versions of this error message, on FreeBSD 10.1, Ubuntu 12.04, and # Ubuntu 14.04). f="${testname}.send-output" -sed 's/\(send: error making HTTP request to OAuth2 authorization endpoint:\).*/\1 [details]/' "$f" > "$f".clean +sed 's/\(post: error making HTTP request to OAuth2 authorization endpoint:\).*/\1 [details]/' "$f" > "$f".clean check "$f".clean "${testname}.expected-send-output" rm "$f" @@ -279,8 +291,9 @@ Content-Type: text/html doh! EOF -test_send_only_fakehttp 'send: error refreshing OAuth2 token -send: invalid response' +test_send 'post: error refreshing OAuth2 token +post: invalid response +send: message not delivered to anyone' # TEST start_test 'refresh gets 500 response from http server' @@ -293,8 +306,9 @@ Content-Type: text/html doh! EOF -test_send_only_fakehttp 'send: error refreshing OAuth2 token -send: invalid response' +test_send 'post: error refreshing OAuth2 token +post: invalid response +send: message not delivered to anyone' # TEST start_test 'refresh gets proper error from http' @@ -309,7 +323,8 @@ Content-Type: application/json } EOF -test_send_only_fakehttp 'send: credentials rejected -- run mhlogin -saslmech xoauth2 -authservice test' +test_send 'post: credentials rejected -- run mhlogin -saslmech xoauth2 -authservice test +send: message not delivered to anyone' # TEST start_test 'refresh gets response too big' @@ -331,8 +346,9 @@ EOF awk 'BEGIN { for (i = 0; i < 8192; i++) { print "." } }' \ >> "${testname}.http-res" -test_send_only_fakehttp 'send: error refreshing OAuth2 token -send: refusing to process response body larger than 8192 bytes' +test_send 'post: error refreshing OAuth2 token +post: refusing to process response body larger than 8192 bytes +send: message not delivered to anyone' # TEST start_test 'smtp server rejects token' @@ -344,15 +360,7 @@ access-nobody@example.com: test-access expire-nobody@example.com: 2000000000 EOF -test_send_only_fakesmtp 'post: problem initializing server; [BHST] Not no way, not no how! -send: message not delivered to anyone' - -# TEST -start_test "smtp server doesn't support oauth" - -unset XOAUTH - -test_send_only_fakesmtp 'post: problem initializing server; [BHST] SMTP server does not support SASL XOAUTH2 +test_send_only_fakesmtp 'post: problem initializing server; [BHST] Authentication failed: Not no way, not no how! send: message not delivered to anyone' # TEST @@ -370,8 +378,17 @@ fake_json_response <