gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package integration
  4. import (
  5. "net/http"
  6. "testing"
  7. "code.gitea.io/gitea/modules/setting"
  8. "code.gitea.io/gitea/modules/test"
  9. "code.gitea.io/gitea/tests"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestSettingShowUserEmailExplore(t *testing.T) {
  13. defer tests.PrepareTestEnv(t)()
  14. showUserEmail := setting.UI.ShowUserEmail
  15. setting.UI.ShowUserEmail = true
  16. session := loginUser(t, "user2")
  17. req := NewRequest(t, "GET", "/explore/users?sort=alphabetically")
  18. resp := session.MakeRequest(t, req, http.StatusOK)
  19. htmlDoc := NewHTMLParser(t, resp.Body)
  20. assert.Contains(t,
  21. htmlDoc.doc.Find(".explore.users").Text(),
  22. "user34@example.com",
  23. )
  24. setting.UI.ShowUserEmail = false
  25. req = NewRequest(t, "GET", "/explore/users?sort=alphabetically")
  26. resp = session.MakeRequest(t, req, http.StatusOK)
  27. htmlDoc = NewHTMLParser(t, resp.Body)
  28. assert.NotContains(t,
  29. htmlDoc.doc.Find(".explore.users").Text(),
  30. "user34@example.com",
  31. )
  32. setting.UI.ShowUserEmail = showUserEmail
  33. }
  34. func TestSettingShowUserEmailProfile(t *testing.T) {
  35. defer tests.PrepareTestEnv(t)()
  36. showUserEmail := setting.UI.ShowUserEmail
  37. // user1: keep_email_private = false, user2: keep_email_private = true
  38. setting.UI.ShowUserEmail = true
  39. // user1 can see own visible email
  40. session := loginUser(t, "user1")
  41. req := NewRequest(t, "GET", "/user1")
  42. resp := session.MakeRequest(t, req, http.StatusOK)
  43. htmlDoc := NewHTMLParser(t, resp.Body)
  44. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  45. // user1 can not see user2's hidden email
  46. req = NewRequest(t, "GET", "/user2")
  47. resp = session.MakeRequest(t, req, http.StatusOK)
  48. htmlDoc = NewHTMLParser(t, resp.Body)
  49. // Should only contain if the user visits their own profile page
  50. assert.NotContains(t, htmlDoc.doc.Find(".user.profile").Text(), "user2@example.com")
  51. // user2 can see user1's visible email
  52. session = loginUser(t, "user2")
  53. req = NewRequest(t, "GET", "/user1")
  54. resp = session.MakeRequest(t, req, http.StatusOK)
  55. htmlDoc = NewHTMLParser(t, resp.Body)
  56. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  57. // user2 can see own hidden email
  58. session = loginUser(t, "user2")
  59. req = NewRequest(t, "GET", "/user2")
  60. resp = session.MakeRequest(t, req, http.StatusOK)
  61. htmlDoc = NewHTMLParser(t, resp.Body)
  62. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user2@example.com")
  63. setting.UI.ShowUserEmail = false
  64. // user1 can see own (now hidden) email
  65. session = loginUser(t, "user1")
  66. req = NewRequest(t, "GET", "/user1")
  67. resp = session.MakeRequest(t, req, http.StatusOK)
  68. htmlDoc = NewHTMLParser(t, resp.Body)
  69. assert.Contains(t, htmlDoc.doc.Find(".user.profile").Text(), "user1@example.com")
  70. setting.UI.ShowUserEmail = showUserEmail
  71. }
  72. func TestSettingLandingPage(t *testing.T) {
  73. defer tests.PrepareTestEnv(t)()
  74. defer test.MockVariableValue(&setting.LandingPageURL)()
  75. setting.LandingPageURL = setting.LandingPageHome
  76. req := NewRequest(t, "GET", "/")
  77. MakeRequest(t, req, http.StatusOK)
  78. setting.LandingPageURL = setting.LandingPageExplore
  79. req = NewRequest(t, "GET", "/")
  80. resp := MakeRequest(t, req, http.StatusSeeOther)
  81. assert.Equal(t, "/explore", resp.Header().Get("Location"))
  82. setting.LandingPageURL = setting.LandingPageOrganizations
  83. req = NewRequest(t, "GET", "/")
  84. resp = MakeRequest(t, req, http.StatusSeeOther)
  85. assert.Equal(t, "/explore/organizations", resp.Header().Get("Location"))
  86. setting.LandingPageURL = setting.LandingPageLogin
  87. req = NewRequest(t, "GET", "/")
  88. resp = MakeRequest(t, req, http.StatusSeeOther)
  89. assert.Equal(t, "/user/login", resp.Header().Get("Location"))
  90. }