func TestWebHandler_InvalidFields(t *testing.T) { config := &Config{ ConsumerKey: testConsumerKey, } handler := LoginHandler(config, testutils.AssertSuccessNotCalled(t), nil) ts := httptest.NewServer(ctxh.NewHandler(handler)) // assert errors occur for different missing/incorrect POST fields resp, err := http.PostForm(ts.URL, url.Values{"wrongKeyName": {testAccountEndpoint}, accountRequestHeaderField: {testAccountRequestHeader}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrMissingAccountEndpoint.Error()+"\n") resp, err = http.PostForm(ts.URL, url.Values{accountEndpointField: {"https://evil.com"}, accountRequestHeaderField: {testAccountRequestHeader}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrInvalidDigitsEndpoint.Error()+"\n") resp, err = http.PostForm(ts.URL, url.Values{accountEndpointField: {testAccountEndpoint}, accountRequestHeaderField: {`OAuth oauth_consumer_key="notmyconsumerkey",`}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrInvalidConsumerKey.Error()+"\n") // valid, but incorrect Digits account endpoint resp, err = http.PostForm(ts.URL, url.Values{accountEndpointField: {"https://api.digits.com/1.1/wrong.json"}, accountRequestHeaderField: {testAccountRequestHeader}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrUnableToGetDigitsAccount.Error()+"\n") }
func TestTokenHandler_InvalidFields(t *testing.T) { config := &oauth1.Config{} handler := TokenHandler(config, testutils.AssertSuccessNotCalled(t), nil) ts := httptest.NewServer(ctxh.NewHandler(handler)) // asert errors occur for different missing POST fields resp, err := http.PostForm(ts.URL, url.Values{"wrongFieldName": {testDigitsToken}, accessTokenSecretField: {testDigitsSecret}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrMissingToken.Error()+"\n") resp, err = http.PostForm(ts.URL, url.Values{accessTokenField: {testDigitsToken}, "wrongFieldName": {testDigitsSecret}}) assert.Nil(t, err) testutils.AssertBodyString(t, resp.Body, ErrMissingTokenSecret.Error()+"\n") }
func TestTokenHandler_Unauthorized(t *testing.T) { proxyClient, server := testutils.UnauthorizedTestServer() defer server.Close() // oauth1 Client will use the proxy client's base Transport ctx := context.WithValue(context.Background(), oauth1.HTTPClient, proxyClient) config := &oauth1.Config{} handler := TokenHandler(config, assertSuccessNotCalled(t), nil) ts := httptest.NewServer(ctxh.NewHandlerWithContext(ctx, handler)) // assert that error occurs indicating the Twitter User could not be confirmed resp, _ := http.PostForm(ts.URL, url.Values{accessTokenField: {testTwitterToken}, accessTokenSecretField: {testTwitterTokenSecret}}) testutils.AssertBodyString(t, resp.Body, ErrUnableToGetTwitterUser.Error()+"\n") }
func TestTokenHandler_ErrorVerifyingToken(t *testing.T) { proxyClient, server := testutils.NewErrorServer("Digits Account Endpoint Down", http.StatusInternalServerError) defer server.Close() // oauth1 Client will use the proxy client's base Transport ctx := context.WithValue(context.Background(), oauth1.HTTPClient, proxyClient) config := &oauth1.Config{} handler := TokenHandler(config, testutils.AssertSuccessNotCalled(t), nil) ts := httptest.NewServer(ctxh.NewHandlerWithContext(ctx, handler)) // assert that error occurs indicating the Digits Account could not be confirmed resp, _ := http.PostForm(ts.URL, url.Values{accessTokenField: {testDigitsToken}, accessTokenSecretField: {testDigitsSecret}}) testutils.AssertBodyString(t, resp.Body, ErrUnableToGetDigitsAccount.Error()+"\n") }
func TestWebHandler_ErrorGettingRequestToken(t *testing.T) { proxyClient, server := testutils.NewErrorServer("OAuth1 Service Down", http.StatusInternalServerError) defer server.Close() config := &Config{ ConsumerKey: testConsumerKey, Client: proxyClient, } handler := LoginHandler(config, testutils.AssertSuccessNotCalled(t), nil) ts := httptest.NewServer(ctxh.NewHandler(handler)) // assert that error occurs indicating the Digits Account cound not be confirmed resp, _ := http.PostForm(ts.URL, url.Values{accountEndpointField: {testAccountEndpoint}, accountRequestHeaderField: {testAccountRequestHeader}}) testutils.AssertBodyString(t, resp.Body, ErrUnableToGetDigitsAccount.Error()+"\n") }