You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

admin_user_test.go 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package integrations
  5. import (
  6. "net/http"
  7. "strconv"
  8. "testing"
  9. "code.gitea.io/gitea/models"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestAdminViewUsers(t *testing.T) {
  13. prepareTestEnv(t)
  14. session := loginUser(t, "user1")
  15. req := NewRequest(t, "GET", "/admin/users")
  16. session.MakeRequest(t, req, http.StatusOK)
  17. session = loginUser(t, "user2")
  18. req = NewRequest(t, "GET", "/admin/users")
  19. session.MakeRequest(t, req, http.StatusForbidden)
  20. }
  21. func TestAdminViewUser(t *testing.T) {
  22. prepareTestEnv(t)
  23. session := loginUser(t, "user1")
  24. req := NewRequest(t, "GET", "/admin/users/1")
  25. session.MakeRequest(t, req, http.StatusOK)
  26. session = loginUser(t, "user2")
  27. req = NewRequest(t, "GET", "/admin/users/1")
  28. session.MakeRequest(t, req, http.StatusForbidden)
  29. }
  30. func TestAdminEditUser(t *testing.T) {
  31. prepareTestEnv(t)
  32. testSuccessfullEdit(t, models.User{ID: 2, Name: "newusername", LoginName: "otherlogin", Email: "new@e-mail.gitea"})
  33. }
  34. func testSuccessfullEdit(t *testing.T, formData models.User) {
  35. makeRequest(t, formData, http.StatusFound)
  36. }
  37. func makeRequest(t *testing.T, formData models.User, headerCode int) {
  38. session := loginUser(t, "user1")
  39. csrf := GetCSRF(t, session, "/admin/users/"+strconv.Itoa(int(formData.ID)))
  40. req := NewRequestWithValues(t, "POST", "/admin/users/"+strconv.Itoa(int(formData.ID)), map[string]string{
  41. "_csrf": csrf,
  42. "user_name": formData.Name,
  43. "login_name": formData.LoginName,
  44. "login_type": "0-0",
  45. "email": formData.Email,
  46. })
  47. session.MakeRequest(t, req, headerCode)
  48. user := models.AssertExistsAndLoadBean(t, &models.User{ID: formData.ID}).(*models.User)
  49. assert.Equal(t, formData.Name, user.Name)
  50. assert.Equal(t, formData.LoginName, user.LoginName)
  51. assert.Equal(t, formData.Email, user.Email)
  52. }
  53. func TestAdminDeleteUser(t *testing.T) {
  54. defer prepareTestEnv(t)()
  55. session := loginUser(t, "user1")
  56. csrf := GetCSRF(t, session, "/admin/users/8")
  57. req := NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{
  58. "_csrf": csrf,
  59. })
  60. session.MakeRequest(t, req, http.StatusOK)
  61. assertUserDeleted(t, 8)
  62. models.CheckConsistencyFor(t, &models.User{})
  63. }