github.com/Tyktechnologies/tyk@v2.9.5+incompatible/gateway/middleware_test.go (about) 1 package gateway 2 3 import ( 4 "net/http" 5 "testing" 6 7 "github.com/TykTechnologies/tyk/apidef" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestBaseMiddleware_getAuthType(t *testing.T) { 12 spec := &APISpec{APIDefinition: &apidef.APIDefinition{}} 13 spec.AuthConfigs = map[string]apidef.AuthConfig{ 14 "authToken": {AuthHeaderName: "h1"}, 15 "basic": {AuthHeaderName: "h2"}, 16 //"coprocess": {AuthHeaderName: "h3"}, 17 "hmac": {AuthHeaderName: "h4"}, 18 "jwt": {AuthHeaderName: "h5"}, 19 "oauth": {AuthHeaderName: "h6"}, 20 "oidc": {AuthHeaderName: "h7"}, 21 } 22 23 baseMid := BaseMiddleware{Spec: spec} 24 25 r, _ := http.NewRequest(http.MethodGet, "", nil) 26 r.Header.Set("h1", "t1") 27 r.Header.Set("h2", "t2") 28 r.Header.Set("h3", "t3") 29 r.Header.Set("h4", "t4") 30 r.Header.Set("h5", "t5") 31 r.Header.Set("h6", "t6") 32 r.Header.Set("h7", "t7") 33 34 authKey := &AuthKey{BaseMiddleware: baseMid} 35 basic := &BasicAuthKeyIsValid{BaseMiddleware: baseMid} 36 //coprocess := &CoProcessMiddleware{BaseMiddleware: baseMid} 37 hmac := &HTTPSignatureValidationMiddleware{BaseMiddleware: baseMid} 38 jwt := &JWTMiddleware{BaseMiddleware: baseMid} 39 oauth := &Oauth2KeyExists{BaseMiddleware: baseMid} 40 oidc := &OpenIDMW{BaseMiddleware: baseMid} 41 42 // test getAuthType 43 assert.Equal(t, authTokenType, authKey.getAuthType()) 44 assert.Equal(t, basicType, basic.getAuthType()) 45 //assert.Equal(t, coprocessType, coprocess.getAuthType()) 46 assert.Equal(t, hmacType, hmac.getAuthType()) 47 assert.Equal(t, jwtType, jwt.getAuthType()) 48 assert.Equal(t, oauthType, oauth.getAuthType()) 49 assert.Equal(t, oidcType, oidc.getAuthType()) 50 51 // test getAuthToken 52 getToken := func(authType string, getAuthToken func(authType string, r *http.Request) (string, apidef.AuthConfig)) string { 53 token, _ := getAuthToken(authType, r) 54 return token 55 } 56 57 assert.Equal(t, "t1", getToken(authKey.getAuthType(), authKey.getAuthToken)) 58 assert.Equal(t, "t2", getToken(basic.getAuthType(), basic.getAuthToken)) 59 //assert.Equal(t, "t3", getToken(coprocess.getAuthType(), coprocess.getAuthToken)) 60 assert.Equal(t, "t4", getToken(hmac.getAuthType(), hmac.getAuthToken)) 61 assert.Equal(t, "t5", getToken(jwt.getAuthType(), jwt.getAuthToken)) 62 assert.Equal(t, "t6", getToken(oauth.getAuthType(), oauth.getAuthToken)) 63 assert.Equal(t, "t7", getToken(oidc.getAuthType(), oidc.getAuthToken)) 64 }