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  }