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  }