| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- // Copyright 2021 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package integration
-
- import (
- "fmt"
- "net/http"
- "strconv"
- "testing"
-
- "code.gitea.io/gitea/models/unittest"
- user_model "code.gitea.io/gitea/models/user"
- "code.gitea.io/gitea/tests"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestAdminViewUsers(t *testing.T) {
- defer tests.PrepareTestEnv(t)()
-
- session := loginUser(t, "user1")
- req := NewRequest(t, "GET", "/-/admin/users")
- session.MakeRequest(t, req, http.StatusOK)
-
- session = loginUser(t, "user2")
- req = NewRequest(t, "GET", "/-/admin/users")
- session.MakeRequest(t, req, http.StatusForbidden)
- }
-
- func TestAdminViewUser(t *testing.T) {
- defer tests.PrepareTestEnv(t)()
-
- session := loginUser(t, "user1")
- req := NewRequest(t, "GET", "/-/admin/users/1")
- session.MakeRequest(t, req, http.StatusOK)
-
- session = loginUser(t, "user2")
- req = NewRequest(t, "GET", "/-/admin/users/1")
- session.MakeRequest(t, req, http.StatusForbidden)
- }
-
- func TestAdminEditUser(t *testing.T) {
- defer tests.PrepareTestEnv(t)()
-
- testSuccessfullEdit(t, user_model.User{ID: 2, Name: "newusername", LoginName: "otherlogin", Email: "new@e-mail.gitea"})
- }
-
- func testSuccessfullEdit(t *testing.T, formData user_model.User) {
- makeRequest(t, formData, http.StatusSeeOther)
- }
-
- func makeRequest(t *testing.T, formData user_model.User, headerCode int) {
- session := loginUser(t, "user1")
- csrf := GetUserCSRFToken(t, session)
- req := NewRequestWithValues(t, "POST", "/-/admin/users/"+strconv.Itoa(int(formData.ID))+"/edit", map[string]string{
- "_csrf": csrf,
- "user_name": formData.Name,
- "login_name": formData.LoginName,
- "login_type": "0-0",
- "email": formData.Email,
- })
-
- session.MakeRequest(t, req, headerCode)
- user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: formData.ID})
- assert.Equal(t, formData.Name, user.Name)
- assert.Equal(t, formData.LoginName, user.LoginName)
- assert.Equal(t, formData.Email, user.Email)
- }
-
- func TestAdminDeleteUser(t *testing.T) {
- defer tests.PrepareTestEnv(t)()
-
- session := loginUser(t, "user1")
-
- usersToDelete := []struct {
- userID int64
- purge bool
- }{
- {
- userID: 2,
- purge: true,
- },
- {
- userID: 8,
- },
- }
-
- for _, entry := range usersToDelete {
- t.Run(fmt.Sprintf("DeleteUser%d", entry.userID), func(t *testing.T) {
- user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: entry.userID})
- assert.NotNil(t, user)
-
- var query string
- if entry.purge {
- query = "?purge=true"
- }
-
- csrf := GetUserCSRFToken(t, session)
- req := NewRequestWithValues(t, "POST", fmt.Sprintf("/-/admin/users/%d/delete%s", entry.userID, query), map[string]string{
- "_csrf": csrf,
- })
- session.MakeRequest(t, req, http.StatusSeeOther)
-
- assertUserDeleted(t, entry.userID)
- unittest.CheckConsistencyFor(t, &user_model.User{})
- })
- }
- }
|