#!/bin/sh # # Test the XOAUTH2 support in send # if test -z "${MH_OBJ_DIR}"; then srcdir=`dirname "$0"`/../.. MH_OBJ_DIR=`cd "${srcdir}" && pwd`; export MH_OBJ_DIR fi . "${srcdir}/test/oauth/common.sh" check_exit '-eq 1' send - # gcov test_send_only_fakehttp() { start_fakehttp test_send_no_servers "$@" check_http_req } # # success cases # export XOAUTH XOAUTH='dXNlcj1ub2JvZHlAZXhhbXBsZS5jb20BYXV0aD1CZWFyZXIgdGVzdC1hY2Nlc3MBAQ==' # TEST start_test 'access token ready, smtp server accepts message' setup_draft fake_creds < "${testname}.expected-send-output" < "${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/\(post: error making HTTP request to OAuth2 authorization endpoint:\).*/\1 [details]/' "$f" > "$f".clean check "$f".clean "${testname}.expected-send-output" rm "$f" # TEST start_test 'refresh gets bogus 200 response from http server' expect_http_post_refresh fake_http_response '200 OK' <doh! EOF 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' expect_http_post_refresh fake_http_response '500 Server Error' <doh! EOF 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' expect_http_post_refresh fake_http_response '400 Bad Request' <> "${testname}.http-res" 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' XOAUTH='not-that-one' fake_creds <