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