code.gitea.io/gitea@v1.22.3/tests/integration/admin_user_test.go (about) 1 // Copyright 2021 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package integration 5 6 import ( 7 "net/http" 8 "strconv" 9 "testing" 10 11 "code.gitea.io/gitea/models/unittest" 12 user_model "code.gitea.io/gitea/models/user" 13 "code.gitea.io/gitea/tests" 14 15 "github.com/stretchr/testify/assert" 16 ) 17 18 func TestAdminViewUsers(t *testing.T) { 19 defer tests.PrepareTestEnv(t)() 20 21 session := loginUser(t, "user1") 22 req := NewRequest(t, "GET", "/admin/users") 23 session.MakeRequest(t, req, http.StatusOK) 24 25 session = loginUser(t, "user2") 26 req = NewRequest(t, "GET", "/admin/users") 27 session.MakeRequest(t, req, http.StatusForbidden) 28 } 29 30 func TestAdminViewUser(t *testing.T) { 31 defer tests.PrepareTestEnv(t)() 32 33 session := loginUser(t, "user1") 34 req := NewRequest(t, "GET", "/admin/users/1") 35 session.MakeRequest(t, req, http.StatusOK) 36 37 session = loginUser(t, "user2") 38 req = NewRequest(t, "GET", "/admin/users/1") 39 session.MakeRequest(t, req, http.StatusForbidden) 40 } 41 42 func TestAdminEditUser(t *testing.T) { 43 defer tests.PrepareTestEnv(t)() 44 45 testSuccessfullEdit(t, user_model.User{ID: 2, Name: "newusername", LoginName: "otherlogin", Email: "new@e-mail.gitea"}) 46 } 47 48 func testSuccessfullEdit(t *testing.T, formData user_model.User) { 49 makeRequest(t, formData, http.StatusSeeOther) 50 } 51 52 func makeRequest(t *testing.T, formData user_model.User, headerCode int) { 53 session := loginUser(t, "user1") 54 csrf := GetCSRF(t, session, "/admin/users/"+strconv.Itoa(int(formData.ID))+"/edit") 55 req := NewRequestWithValues(t, "POST", "/admin/users/"+strconv.Itoa(int(formData.ID))+"/edit", map[string]string{ 56 "_csrf": csrf, 57 "user_name": formData.Name, 58 "login_name": formData.LoginName, 59 "login_type": "0-0", 60 "email": formData.Email, 61 }) 62 63 session.MakeRequest(t, req, headerCode) 64 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: formData.ID}) 65 assert.Equal(t, formData.Name, user.Name) 66 assert.Equal(t, formData.LoginName, user.LoginName) 67 assert.Equal(t, formData.Email, user.Email) 68 } 69 70 func TestAdminDeleteUser(t *testing.T) { 71 defer tests.PrepareTestEnv(t)() 72 73 session := loginUser(t, "user1") 74 75 csrf := GetCSRF(t, session, "/admin/users/8/edit") 76 req := NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{ 77 "_csrf": csrf, 78 }) 79 session.MakeRequest(t, req, http.StatusSeeOther) 80 81 assertUserDeleted(t, 8) 82 unittest.CheckConsistencyFor(t, &user_model.User{}) 83 }