Move all Keycloak unit tests to Ginkgo
This commit is contained in:
		
							parent
							
								
									3369799853
								
							
						
					
					
						commit
						0886f8035c
					
				|  | @ -7,20 +7,18 @@ import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/http/httptest" | 	"net/http/httptest" | ||||||
| 	"net/url" | 	"net/url" | ||||||
| 	"testing" |  | ||||||
| 
 | 
 | ||||||
| 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | 	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions" | ||||||
| 	. "github.com/onsi/ginkgo" | 	. "github.com/onsi/ginkgo" | ||||||
| 	. "github.com/onsi/ginkgo/extensions/table" | 	. "github.com/onsi/ginkgo/extensions/table" | ||||||
| 	. "github.com/onsi/gomega" | 	. "github.com/onsi/gomega" | ||||||
| 	"github.com/stretchr/testify/assert" |  | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const ( | const ( | ||||||
| 	keycloakAccessToken  = "eyJKeycloak.eyJAccess.Token" | 	keycloakAccessToken  = "eyJKeycloak.eyJAccess.Token" | ||||||
| 	keycloakUserinfoPath = "/api/v3/user" | 	keycloakUserinfoPath = "/api/v3/user" | ||||||
| 
 | 
 | ||||||
| 	// Userinfo Test Cases
 | 	// Userinfo Test Cases querystring toggles
 | ||||||
| 	tcUIStandard      = "userinfo-standard" | 	tcUIStandard      = "userinfo-standard" | ||||||
| 	tcUIFail          = "userinfo-fail" | 	tcUIFail          = "userinfo-fail" | ||||||
| 	tcUISingleGroup   = "userinfo-single-group" | 	tcUISingleGroup   = "userinfo-single-group" | ||||||
|  | @ -111,6 +109,45 @@ func testKeycloakBackend() *httptest.Server { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var _ = Describe("Keycloak Provider Tests", func() { | var _ = Describe("Keycloak Provider Tests", func() { | ||||||
|  | 	Context("New Provider Init", func() { | ||||||
|  | 		It("uses defaults", func() { | ||||||
|  | 			providerData := NewKeycloakProvider(&ProviderData{}).Data() | ||||||
|  | 			Expect(providerData.ProviderName).To(Equal("Keycloak")) | ||||||
|  | 			Expect(providerData.LoginURL.String()).To(Equal("https://keycloak.org/oauth/authorize")) | ||||||
|  | 			Expect(providerData.RedeemURL.String()).To(Equal("https://keycloak.org/oauth/token")) | ||||||
|  | 			Expect(providerData.ProfileURL.String()).To(Equal("")) | ||||||
|  | 			Expect(providerData.ValidateURL.String()).To(Equal("https://keycloak.org/api/v3/user")) | ||||||
|  | 			Expect(providerData.Scope).To(Equal("api")) | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 		It("overrides defaults", func() { | ||||||
|  | 			p := NewKeycloakProvider( | ||||||
|  | 				&ProviderData{ | ||||||
|  | 					LoginURL: &url.URL{ | ||||||
|  | 						Scheme: "https", | ||||||
|  | 						Host:   "example.com", | ||||||
|  | 						Path:   "/oauth/auth"}, | ||||||
|  | 					RedeemURL: &url.URL{ | ||||||
|  | 						Scheme: "https", | ||||||
|  | 						Host:   "example.com", | ||||||
|  | 						Path:   "/oauth/token"}, | ||||||
|  | 					ValidateURL: &url.URL{ | ||||||
|  | 						Scheme: "https", | ||||||
|  | 						Host:   "example.com", | ||||||
|  | 						Path:   "/api/v3/user"}, | ||||||
|  | 					Scope: "profile"}) | ||||||
|  | 			providerData := p.Data() | ||||||
|  | 
 | ||||||
|  | 			Expect(providerData.ProviderName).To(Equal("Keycloak")) | ||||||
|  | 			Expect(providerData.LoginURL.String()).To(Equal("https://example.com/oauth/auth")) | ||||||
|  | 			Expect(providerData.RedeemURL.String()).To(Equal("https://example.com/oauth/token")) | ||||||
|  | 			Expect(providerData.ProfileURL.String()).To(Equal("")) | ||||||
|  | 			Expect(providerData.ValidateURL.String()).To(Equal("https://example.com/api/v3/user")) | ||||||
|  | 			Expect(providerData.Scope).To(Equal("profile")) | ||||||
|  | 		}) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	Context("With a test HTTP Server & Provider", func() { | ||||||
| 		var p *KeycloakProvider | 		var p *KeycloakProvider | ||||||
| 		var b *httptest.Server | 		var b *httptest.Server | ||||||
| 
 | 
 | ||||||
|  | @ -192,58 +229,5 @@ var _ = Describe("Keycloak Provider Tests", func() { | ||||||
| 				}), | 				}), | ||||||
| 			) | 			) | ||||||
| 		}) | 		}) | ||||||
|  | 	}) | ||||||
| }) | }) | ||||||
| 
 |  | ||||||
| func TestKeycloakProviderDefaults(t *testing.T) { |  | ||||||
| 	p, err := testKeycloakProvider(nil) |  | ||||||
| 	assert.NoError(t, err) |  | ||||||
| 	assert.NotEqual(t, nil, p) |  | ||||||
| 	assert.Equal(t, "Keycloak", p.Data().ProviderName) |  | ||||||
| 	assert.Equal(t, "https://keycloak.org/oauth/authorize", |  | ||||||
| 		p.Data().LoginURL.String()) |  | ||||||
| 	assert.Equal(t, "https://keycloak.org/oauth/token", |  | ||||||
| 		p.Data().RedeemURL.String()) |  | ||||||
| 	assert.Equal(t, "https://keycloak.org/api/v3/user", |  | ||||||
| 		p.Data().ValidateURL.String()) |  | ||||||
| 	assert.Equal(t, "api", p.Data().Scope) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func TestNewKeycloakProvider(t *testing.T) { |  | ||||||
| 	g := NewWithT(t) |  | ||||||
| 
 |  | ||||||
| 	// Test that defaults are set when calling for a new provider with nothing set
 |  | ||||||
| 	providerData := NewKeycloakProvider(&ProviderData{}).Data() |  | ||||||
| 	g.Expect(providerData.ProviderName).To(Equal("Keycloak")) |  | ||||||
| 	g.Expect(providerData.LoginURL.String()).To(Equal("https://keycloak.org/oauth/authorize")) |  | ||||||
| 	g.Expect(providerData.RedeemURL.String()).To(Equal("https://keycloak.org/oauth/token")) |  | ||||||
| 	g.Expect(providerData.ProfileURL.String()).To(Equal("")) |  | ||||||
| 	g.Expect(providerData.ValidateURL.String()).To(Equal("https://keycloak.org/api/v3/user")) |  | ||||||
| 	g.Expect(providerData.Scope).To(Equal("api")) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func TestKeycloakProviderOverrides(t *testing.T) { |  | ||||||
| 	p := NewKeycloakProvider( |  | ||||||
| 		&ProviderData{ |  | ||||||
| 			LoginURL: &url.URL{ |  | ||||||
| 				Scheme: "https", |  | ||||||
| 				Host:   "example.com", |  | ||||||
| 				Path:   "/oauth/auth"}, |  | ||||||
| 			RedeemURL: &url.URL{ |  | ||||||
| 				Scheme: "https", |  | ||||||
| 				Host:   "example.com", |  | ||||||
| 				Path:   "/oauth/token"}, |  | ||||||
| 			ValidateURL: &url.URL{ |  | ||||||
| 				Scheme: "https", |  | ||||||
| 				Host:   "example.com", |  | ||||||
| 				Path:   "/api/v3/user"}, |  | ||||||
| 			Scope: "profile"}) |  | ||||||
| 	assert.NotEqual(t, nil, p) |  | ||||||
| 	assert.Equal(t, "Keycloak", p.Data().ProviderName) |  | ||||||
| 	assert.Equal(t, "https://example.com/oauth/auth", |  | ||||||
| 		p.Data().LoginURL.String()) |  | ||||||
| 	assert.Equal(t, "https://example.com/oauth/token", |  | ||||||
| 		p.Data().RedeemURL.String()) |  | ||||||
| 	assert.Equal(t, "https://example.com/api/v3/user", |  | ||||||
| 		p.Data().ValidateURL.String()) |  | ||||||
| 	assert.Equal(t, "profile", p.Data().Scope) |  | ||||||
| } |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue