You've already forked oauth2-proxy
mirror of
https://github.com/oauth2-proxy/oauth2-proxy.git
synced 2025-07-15 01:44:22 +02:00
added tests for basic auth alert message feature
This commit is contained in:
@ -657,6 +657,59 @@ func TestManualSignInStoresUserGroupsInTheSession(t *testing.T) {
|
|||||||
assert.Equal(t, userGroups, s.Groups)
|
assert.Equal(t, userGroups, s.Groups)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ManualSignInValidator struct{}
|
||||||
|
|
||||||
|
func (ManualSignInValidator) Validate(user, password string) bool {
|
||||||
|
switch {
|
||||||
|
case user == "admin" && password == "adminPass":
|
||||||
|
return true
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ManualSignInWithCredentials(t *testing.T, user, pass string) int {
|
||||||
|
opts := baseTestOptions()
|
||||||
|
err := validation.Validate(opts)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
proxy, err := NewOAuthProxy(opts, func(email string) bool {
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
proxy.basicAuthValidator = ManualSignInValidator{}
|
||||||
|
|
||||||
|
rw := httptest.NewRecorder()
|
||||||
|
formData := url.Values{}
|
||||||
|
formData.Set("username", user)
|
||||||
|
formData.Set("password", pass)
|
||||||
|
signInReq, _ := http.NewRequest(http.MethodPost, "/oauth2/sign_in", strings.NewReader(formData.Encode()))
|
||||||
|
signInReq.Header.Add("Content-Type", "application/x-www-form-urlencoded")
|
||||||
|
proxy.ServeHTTP(rw, signInReq)
|
||||||
|
|
||||||
|
return rw.Code
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestManualSignInEmptyUsernameAlert(t *testing.T) {
|
||||||
|
statusCode := ManualSignInWithCredentials(t, "", "")
|
||||||
|
assert.Equal(t, http.StatusBadRequest, statusCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestManualSignInInvalidCredentialsAlert(t *testing.T) {
|
||||||
|
statusCode := ManualSignInWithCredentials(t, "admin", "")
|
||||||
|
assert.Equal(t, http.StatusUnauthorized, statusCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestManualSignInCorrectCredentials(t *testing.T) {
|
||||||
|
statusCode := ManualSignInWithCredentials(t, "admin", "adminPass")
|
||||||
|
assert.Equal(t, http.StatusFound, statusCode)
|
||||||
|
}
|
||||||
|
|
||||||
func TestSignInPageIncludesTargetRedirect(t *testing.T) {
|
func TestSignInPageIncludesTargetRedirect(t *testing.T) {
|
||||||
sipTest, err := NewSignInPageTest(false)
|
sipTest, err := NewSignInPageTest(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -57,7 +57,7 @@ var _ = Describe("Writer", func() {
|
|||||||
|
|
||||||
It("Writes the default sign in template", func() {
|
It("Writes the default sign in template", func() {
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
writer.WriteSignInPage(recorder, request, "/redirect")
|
writer.WriteSignInPage(recorder, request, "/redirect", http.StatusOK)
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(recorder.Result().Body)
|
body, err := ioutil.ReadAll(recorder.Result().Body)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
@ -104,7 +104,7 @@ var _ = Describe("Writer", func() {
|
|||||||
|
|
||||||
It("Writes the custom sign in template", func() {
|
It("Writes the custom sign in template", func() {
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
writer.WriteSignInPage(recorder, request, "/redirect")
|
writer.WriteSignInPage(recorder, request, "/redirect", http.StatusOK)
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(recorder.Result().Body)
|
body, err := ioutil.ReadAll(recorder.Result().Body)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
@ -151,7 +151,7 @@ var _ = Describe("Writer", func() {
|
|||||||
rw := httptest.NewRecorder()
|
rw := httptest.NewRecorder()
|
||||||
req := httptest.NewRequest("", "/sign-in", nil)
|
req := httptest.NewRequest("", "/sign-in", nil)
|
||||||
redirectURL := "<redirectURL>"
|
redirectURL := "<redirectURL>"
|
||||||
in.writer.WriteSignInPage(rw, req, redirectURL)
|
in.writer.WriteSignInPage(rw, req, redirectURL, http.StatusOK)
|
||||||
|
|
||||||
Expect(rw.Result().StatusCode).To(Equal(in.expectedStatus))
|
Expect(rw.Result().StatusCode).To(Equal(in.expectedStatus))
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ var _ = Describe("Writer", func() {
|
|||||||
}),
|
}),
|
||||||
Entry("With an override function", writerFuncsTableInput{
|
Entry("With an override function", writerFuncsTableInput{
|
||||||
writer: &WriterFuncs{
|
writer: &WriterFuncs{
|
||||||
SignInPageFunc: func(rw http.ResponseWriter, req *http.Request, redirectURL string) {
|
SignInPageFunc: func(rw http.ResponseWriter, req *http.Request, redirectURL string, statusCode int) {
|
||||||
rw.WriteHeader(202)
|
rw.WriteHeader(202)
|
||||||
rw.Write([]byte(fmt.Sprintf("%s %s", req.URL.Path, redirectURL)))
|
rw.Write([]byte(fmt.Sprintf("%s %s", req.URL.Path, redirectURL)))
|
||||||
},
|
},
|
||||||
|
@ -54,7 +54,7 @@ var _ = Describe("SignIn Page", func() {
|
|||||||
Context("WriteSignInPage", func() {
|
Context("WriteSignInPage", func() {
|
||||||
It("Writes the template to the response writer", func() {
|
It("Writes the template to the response writer", func() {
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
signInPage.WriteSignInPage(recorder, request, "/redirect")
|
signInPage.WriteSignInPage(recorder, request, "/redirect", http.StatusOK)
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(recorder.Result().Body)
|
body, err := ioutil.ReadAll(recorder.Result().Body)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
@ -68,7 +68,7 @@ var _ = Describe("SignIn Page", func() {
|
|||||||
signInPage.template = tmpl
|
signInPage.template = tmpl
|
||||||
|
|
||||||
recorder := httptest.NewRecorder()
|
recorder := httptest.NewRecorder()
|
||||||
signInPage.WriteSignInPage(recorder, request, "/redirect")
|
signInPage.WriteSignInPage(recorder, request, "/redirect", http.StatusOK)
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(recorder.Result().Body)
|
body, err := ioutil.ReadAll(recorder.Result().Body)
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Reference in New Issue
Block a user