mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Add integration tests for signin (#2363)
Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Lauris BH
						Lauris BH
					
				
			
			
				
	
			
			
			
						parent
						
							fd6e91077a
						
					
				
				
					commit
					8aadf79f80
				
			| @@ -160,6 +160,13 @@ const userPassword = "password" | ||||
|  | ||||
| var loginSessionCache = make(map[string]*TestSession, 10) | ||||
|  | ||||
| func emptyTestSession(t testing.TB) *TestSession { | ||||
| 	jar, err := cookiejar.New(nil) | ||||
| 	assert.NoError(t, err) | ||||
|  | ||||
| 	return &TestSession{jar: jar} | ||||
| } | ||||
|  | ||||
| func loginUser(t testing.TB, userName string) *TestSession { | ||||
| 	if session, ok := loginSessionCache[userName]; ok { | ||||
| 		return session | ||||
| @@ -185,13 +192,13 @@ func loginUserWithPassword(t testing.TB, userName, password string) *TestSession | ||||
| 	ch.Add("Cookie", strings.Join(resp.Headers["Set-Cookie"], ";")) | ||||
| 	cr := http.Request{Header: ch} | ||||
|  | ||||
| 	jar, err := cookiejar.New(nil) | ||||
| 	assert.NoError(t, err) | ||||
| 	session := emptyTestSession(t) | ||||
|  | ||||
| 	baseURL, err := url.Parse(setting.AppURL) | ||||
| 	assert.NoError(t, err) | ||||
| 	jar.SetCookies(baseURL, cr.Cookies()) | ||||
| 	session.jar.SetCookies(baseURL, cr.Cookies()) | ||||
|  | ||||
| 	return &TestSession{jar: jar} | ||||
| 	return session | ||||
| } | ||||
|  | ||||
| type TestResponseWriter struct { | ||||
|   | ||||
							
								
								
									
										60
									
								
								integrations/signin_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								integrations/signin_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| // Copyright 2017 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| package integrations | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
|  | ||||
| 	"github.com/Unknwon/i18n" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| ) | ||||
|  | ||||
| func testLoginFailed(t *testing.T, username, password, message string) { | ||||
| 	session := emptyTestSession(t) | ||||
| 	req := NewRequestWithValues(t, "POST", "/user/login", map[string]string{ | ||||
| 		"_csrf":     GetCSRF(t, session, "/user/login"), | ||||
| 		"user_name": username, | ||||
| 		"password":  password, | ||||
| 	}) | ||||
| 	resp := session.MakeRequest(t, req, http.StatusOK) | ||||
|  | ||||
| 	htmlDoc := NewHTMLParser(t, resp.Body) | ||||
| 	resultMsg := htmlDoc.doc.Find(".ui.message>p").Text() | ||||
|  | ||||
| 	assert.EqualValues(t, message, resultMsg) | ||||
| } | ||||
|  | ||||
| func TestSignin(t *testing.T) { | ||||
| 	prepareTestEnv(t) | ||||
|  | ||||
| 	user := models.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) | ||||
|  | ||||
| 	// add new user with user2's email | ||||
| 	user.Name = "testuser" | ||||
| 	user.LowerName = strings.ToLower(user.Name) | ||||
| 	user.ID = 0 | ||||
| 	models.AssertSuccessfulInsert(t, user) | ||||
|  | ||||
| 	samples := []struct { | ||||
| 		username string | ||||
| 		password string | ||||
| 		message  string | ||||
| 	}{ | ||||
| 		{username: "wrongUsername", password: "wrongPassword", message: i18n.Tr("en", "form.username_password_incorrect")}, | ||||
| 		{username: "wrongUsername", password: "password", message: i18n.Tr("en", "form.username_password_incorrect")}, | ||||
| 		{username: "user15", password: "wrongPassword", message: i18n.Tr("en", "form.username_password_incorrect")}, | ||||
| 		{username: "user1@example.com", password: "wrongPassword", message: i18n.Tr("en", "form.username_password_incorrect")}, | ||||
| 		// test for duplicate email | ||||
| 		{username: "user2@example.com", password: "password", message: i18n.Tr("en", "form.email_been_used")}, | ||||
| 	} | ||||
|  | ||||
| 	for _, s := range samples { | ||||
| 		testLoginFailed(t, s.username, s.password, s.message) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user