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

user_test.go 3.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. // Copyright 2017 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. "testing"
  8. "code.gitea.io/gitea/models"
  9. "github.com/Unknwon/i18n"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestViewUser(t *testing.T) {
  13. prepareTestEnv(t)
  14. req := NewRequest(t, "GET", "/user2")
  15. resp := MakeRequest(req)
  16. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  17. }
  18. func TestRenameUsername(t *testing.T) {
  19. prepareTestEnv(t)
  20. session := loginUser(t, "user2")
  21. req := NewRequest(t, "GET", "/user/settings")
  22. resp := session.MakeRequest(t, req)
  23. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  24. htmlDoc := NewHTMLParser(t, resp.Body)
  25. req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
  26. "_csrf": htmlDoc.GetCSRF(),
  27. "name": "newUsername",
  28. "email": "user2@example.com",
  29. })
  30. resp = session.MakeRequest(t, req)
  31. assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
  32. models.AssertExistsAndLoadBean(t, &models.User{Name: "newUsername"})
  33. models.AssertNotExistsBean(t, &models.User{Name: "user2"})
  34. }
  35. func TestRenameInvalidUsername(t *testing.T) {
  36. prepareTestEnv(t)
  37. invalidUsernames := []string{
  38. "%2f*",
  39. "%2f.",
  40. "%2f..",
  41. "%00",
  42. "thisHas ASpace",
  43. }
  44. session := loginUser(t, "user2")
  45. for _, invalidUsername := range invalidUsernames {
  46. t.Logf("Testing username %s", invalidUsername)
  47. req := NewRequest(t, "GET", "/user/settings")
  48. resp := session.MakeRequest(t, req)
  49. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  50. htmlDoc := NewHTMLParser(t, resp.Body)
  51. req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
  52. "_csrf": htmlDoc.GetCSRF(),
  53. "name": invalidUsername,
  54. "email": "user2@example.com",
  55. })
  56. resp = session.MakeRequest(t, req)
  57. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  58. htmlDoc = NewHTMLParser(t, resp.Body)
  59. assert.Contains(t,
  60. htmlDoc.doc.Find(".ui.negative.message").Text(),
  61. i18n.Tr("en", "form.alpha_dash_dot_error"),
  62. )
  63. models.AssertNotExistsBean(t, &models.User{Name: invalidUsername})
  64. }
  65. }
  66. func TestRenameReservedUsername(t *testing.T) {
  67. prepareTestEnv(t)
  68. reservedUsernames := []string{
  69. "help",
  70. "user",
  71. "template",
  72. }
  73. session := loginUser(t, "user2")
  74. for _, reservedUsername := range reservedUsernames {
  75. t.Logf("Testing username %s", reservedUsername)
  76. req := NewRequest(t, "GET", "/user/settings")
  77. resp := session.MakeRequest(t, req)
  78. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  79. htmlDoc := NewHTMLParser(t, resp.Body)
  80. req = NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
  81. "_csrf": htmlDoc.GetCSRF(),
  82. "name": reservedUsername,
  83. "email": "user2@example.com",
  84. })
  85. resp = session.MakeRequest(t, req)
  86. assert.EqualValues(t, http.StatusFound, resp.HeaderCode)
  87. req = NewRequest(t, "GET", "/user/settings")
  88. resp = session.MakeRequest(t, req)
  89. assert.EqualValues(t, http.StatusOK, resp.HeaderCode)
  90. htmlDoc = NewHTMLParser(t, resp.Body)
  91. assert.Contains(t,
  92. htmlDoc.doc.Find(".ui.negative.message").Text(),
  93. i18n.Tr("en", "user.newName_reserved"),
  94. )
  95. models.AssertNotExistsBean(t, &models.User{Name: reservedUsername})
  96. }
  97. }