2021-01-10 15:14:02 +03:00
// Copyright 2021 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2021-01-10 15:14:02 +03:00
2022-09-02 22:18:23 +03:00
package integration
2021-01-10 15:14:02 +03:00
import (
"net/http"
"strconv"
"testing"
2021-11-16 11:53:21 +03:00
"code.gitea.io/gitea/models/unittest"
2021-11-24 12:49:20 +03:00
user_model "code.gitea.io/gitea/models/user"
2022-09-02 22:18:23 +03:00
"code.gitea.io/gitea/tests"
2021-01-10 15:14:02 +03:00
"github.com/stretchr/testify/assert"
)
func TestAdminViewUsers ( t * testing . T ) {
2022-09-02 22:18:23 +03:00
defer tests . PrepareTestEnv ( t ) ( )
2021-01-10 15:14:02 +03:00
session := loginUser ( t , "user1" )
2024-10-10 07:56:49 +03:00
req := NewRequest ( t , "GET" , "/-/admin/users" )
2021-01-10 15:14:02 +03:00
session . MakeRequest ( t , req , http . StatusOK )
session = loginUser ( t , "user2" )
2024-10-10 07:56:49 +03:00
req = NewRequest ( t , "GET" , "/-/admin/users" )
2021-01-10 15:14:02 +03:00
session . MakeRequest ( t , req , http . StatusForbidden )
}
func TestAdminViewUser ( t * testing . T ) {
2022-09-02 22:18:23 +03:00
defer tests . PrepareTestEnv ( t ) ( )
2021-01-10 15:14:02 +03:00
session := loginUser ( t , "user1" )
2024-10-10 07:56:49 +03:00
req := NewRequest ( t , "GET" , "/-/admin/users/1" )
2021-01-10 15:14:02 +03:00
session . MakeRequest ( t , req , http . StatusOK )
session = loginUser ( t , "user2" )
2024-10-10 07:56:49 +03:00
req = NewRequest ( t , "GET" , "/-/admin/users/1" )
2021-01-10 15:14:02 +03:00
session . MakeRequest ( t , req , http . StatusForbidden )
}
func TestAdminEditUser ( t * testing . T ) {
2022-09-02 22:18:23 +03:00
defer tests . PrepareTestEnv ( t ) ( )
2021-01-10 15:14:02 +03:00
2021-11-24 12:49:20 +03:00
testSuccessfullEdit ( t , user_model . User { ID : 2 , Name : "newusername" , LoginName : "otherlogin" , Email : "new@e-mail.gitea" } )
2021-01-10 15:14:02 +03:00
}
2021-11-24 12:49:20 +03:00
func testSuccessfullEdit ( t * testing . T , formData user_model . User ) {
2022-03-23 07:54:07 +03:00
makeRequest ( t , formData , http . StatusSeeOther )
2021-01-10 15:14:02 +03:00
}
2021-11-24 12:49:20 +03:00
func makeRequest ( t * testing . T , formData user_model . User , headerCode int ) {
2021-01-10 15:14:02 +03:00
session := loginUser ( t , "user1" )
2024-10-10 06:48:21 +03:00
csrf := GetUserCSRFToken ( t , session )
2024-10-10 07:56:49 +03:00
req := NewRequestWithValues ( t , "POST" , "/-/admin/users/" + strconv . Itoa ( int ( formData . ID ) ) + "/edit" , map [ string ] string {
2021-01-10 15:14:02 +03:00
"_csrf" : csrf ,
"user_name" : formData . Name ,
"login_name" : formData . LoginName ,
"login_type" : "0-0" ,
"email" : formData . Email ,
} )
session . MakeRequest ( t , req , headerCode )
2022-08-16 05:22:25 +03:00
user := unittest . AssertExistsAndLoadBean ( t , & user_model . User { ID : formData . ID } )
2021-01-10 15:14:02 +03:00
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 ) {
2022-09-02 22:18:23 +03:00
defer tests . PrepareTestEnv ( t ) ( )
2021-01-10 15:14:02 +03:00
session := loginUser ( t , "user1" )
2024-10-10 06:48:21 +03:00
csrf := GetUserCSRFToken ( t , session )
2024-10-10 07:56:49 +03:00
req := NewRequestWithValues ( t , "POST" , "/-/admin/users/8/delete" , map [ string ] string {
2021-01-10 15:14:02 +03:00
"_csrf" : csrf ,
} )
2022-07-14 10:22:09 +03:00
session . MakeRequest ( t , req , http . StatusSeeOther )
2021-01-10 15:14:02 +03:00
assertUserDeleted ( t , 8 )
2021-11-24 12:49:20 +03:00
unittest . CheckConsistencyFor ( t , & user_model . User { } )
2021-01-10 15:14:02 +03:00
}