aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/golang.org/x/oauth2/jwt/jwt_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/oauth2/jwt/jwt_test.go')
-rw-r--r--vendor/golang.org/x/oauth2/jwt/jwt_test.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/golang.org/x/oauth2/jwt/jwt_test.go b/vendor/golang.org/x/oauth2/jwt/jwt_test.go
index 9f82c71..1fbb9aa 100644
--- a/vendor/golang.org/x/oauth2/jwt/jwt_test.go
+++ b/vendor/golang.org/x/oauth2/jwt/jwt_test.go
@@ -8,11 +8,13 @@ import (
"context"
"encoding/base64"
"encoding/json"
+ "fmt"
"net/http"
"net/http/httptest"
"strings"
"testing"
+ "golang.org/x/oauth2"
"golang.org/x/oauth2/jws"
)
@@ -188,3 +190,32 @@ func TestJWTFetch_Assertion(t *testing.T) {
t.Errorf("access token header = %q; want %q", got, want)
}
}
+
+func TestTokenRetrieveError(t *testing.T) {
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("Content-type", "application/json")
+ w.WriteHeader(http.StatusBadRequest)
+ w.Write([]byte(`{"error": "invalid_grant"}`))
+ }))
+ defer ts.Close()
+
+ conf := &Config{
+ Email: "aaa@xxx.com",
+ PrivateKey: dummyPrivateKey,
+ TokenURL: ts.URL,
+ }
+
+ _, err := conf.TokenSource(context.Background()).Token()
+ if err == nil {
+ t.Fatalf("got no error, expected one")
+ }
+ _, ok := err.(*oauth2.RetrieveError)
+ if !ok {
+ t.Fatalf("got %T error, expected *RetrieveError", err)
+ }
+ // Test error string for backwards compatibility
+ expected := fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", "400 Bad Request", `{"error": "invalid_grant"}`)
+ if errStr := err.Error(); errStr != expected {
+ t.Fatalf("got %#v, expected %#v", errStr, expected)
+ }
+}