2017-08-17 11:08:03 +02:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2017-08-17 11:08:03 +02:00
2022-09-02 15:18:23 -04:00
package integration
2017-08-17 11:08:03 +02:00
import (
"net/http"
"testing"
"code.gitea.io/gitea/modules/setting"
2022-09-02 15:18:23 -04:00
"code.gitea.io/gitea/tests"
2017-08-17 11:08:03 +02:00
"github.com/stretchr/testify/assert"
)
func TestSettingShowUserEmailExplore ( t * testing . T ) {
2022-09-02 15:18:23 -04:00
defer tests . PrepareTestEnv ( t ) ( )
2017-08-17 11:08:03 +02:00
showUserEmail := setting . UI . ShowUserEmail
setting . UI . ShowUserEmail = true
session := loginUser ( t , "user2" )
2023-05-06 10:04:55 -04:00
req := NewRequest ( t , "GET" , "/explore/users?sort=alphabetically" )
2017-08-17 11:08:03 +02:00
resp := session . MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
assert . Contains ( t ,
2023-08-01 00:13:42 +02:00
htmlDoc . doc . Find ( ".explore.users" ) . Text ( ) ,
2023-04-07 12:08:36 +02:00
"user34@example.com" ,
2017-08-17 11:08:03 +02:00
)
setting . UI . ShowUserEmail = false
2023-05-06 10:04:55 -04:00
req = NewRequest ( t , "GET" , "/explore/users?sort=alphabetically" )
2017-08-17 11:08:03 +02:00
resp = session . MakeRequest ( t , req , http . StatusOK )
htmlDoc = NewHTMLParser ( t , resp . Body )
assert . NotContains ( t ,
2023-08-01 00:13:42 +02:00
htmlDoc . doc . Find ( ".explore.users" ) . Text ( ) ,
2023-04-07 12:08:36 +02:00
"user34@example.com" ,
2017-08-17 11:08:03 +02:00
)
setting . UI . ShowUserEmail = showUserEmail
}
func TestSettingShowUserEmailProfile ( t * testing . T ) {
2022-09-02 15:18:23 -04:00
defer tests . PrepareTestEnv ( t ) ( )
2017-08-17 11:08:03 +02:00
showUserEmail := setting . UI . ShowUserEmail
2023-03-28 05:27:32 +08:00
// user1: keep_email_private = false, user2: keep_email_private = true
2017-08-17 11:08:03 +02:00
setting . UI . ShowUserEmail = true
2023-04-08 10:05:21 +00:00
// user1 can see own visible email
2023-03-28 05:27:32 +08:00
session := loginUser ( t , "user1" )
req := NewRequest ( t , "GET" , "/user1" )
2017-08-17 11:08:03 +02:00
resp := session . MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
2023-03-28 05:27:32 +08:00
assert . Contains ( t , htmlDoc . doc . Find ( ".user.profile" ) . Text ( ) , "user1@example.com" )
2017-08-17 11:08:03 +02:00
2023-04-08 10:05:21 +00:00
// user1 can not see user2's hidden email
2017-08-17 11:08:03 +02:00
req = NewRequest ( t , "GET" , "/user2" )
resp = session . MakeRequest ( t , req , http . StatusOK )
htmlDoc = NewHTMLParser ( t , resp . Body )
2023-04-08 10:05:21 +00:00
// Should only contain if the user visits their own profile page
2023-03-28 05:27:32 +08:00
assert . NotContains ( t , htmlDoc . doc . Find ( ".user.profile" ) . Text ( ) , "user2@example.com" )
2017-08-17 11:08:03 +02:00
2023-04-08 10:05:21 +00:00
// user2 can see user1's visible email
2023-03-28 05:27:32 +08:00
session = loginUser ( t , "user2" )
req = NewRequest ( t , "GET" , "/user1" )
resp = session . MakeRequest ( t , req , http . StatusOK )
htmlDoc = NewHTMLParser ( t , resp . Body )
assert . Contains ( t , htmlDoc . doc . Find ( ".user.profile" ) . Text ( ) , "user1@example.com" )
2019-02-19 15:11:50 +01:00
2023-04-08 10:05:21 +00:00
// user2 can see own hidden email
2023-03-28 05:27:32 +08:00
session = loginUser ( t , "user2" )
2019-02-19 15:11:50 +01:00
req = NewRequest ( t , "GET" , "/user2" )
resp = session . MakeRequest ( t , req , http . StatusOK )
htmlDoc = NewHTMLParser ( t , resp . Body )
2023-04-08 10:05:21 +00:00
assert . Contains ( t , htmlDoc . doc . Find ( ".user.profile" ) . Text ( ) , "user2@example.com" )
2023-03-28 05:27:32 +08:00
setting . UI . ShowUserEmail = false
2023-04-08 10:05:21 +00:00
// user1 can see own (now hidden) email
2023-03-28 05:27:32 +08:00
session = loginUser ( t , "user1" )
req = NewRequest ( t , "GET" , "/user1" )
resp = session . MakeRequest ( t , req , http . StatusOK )
htmlDoc = NewHTMLParser ( t , resp . Body )
2023-04-08 10:05:21 +00:00
assert . Contains ( t , htmlDoc . doc . Find ( ".user.profile" ) . Text ( ) , "user1@example.com" )
2023-03-28 05:27:32 +08:00
setting . UI . ShowUserEmail = showUserEmail
2017-08-17 11:08:03 +02:00
}
2018-06-15 05:42:46 +02:00
func TestSettingLandingPage ( t * testing . T ) {
2022-09-02 15:18:23 -04:00
defer tests . PrepareTestEnv ( t ) ( )
2018-06-15 05:42:46 +02:00
landingPage := setting . LandingPageURL
setting . LandingPageURL = setting . LandingPageHome
req := NewRequest ( t , "GET" , "/" )
MakeRequest ( t , req , http . StatusOK )
setting . LandingPageURL = setting . LandingPageExplore
req = NewRequest ( t , "GET" , "/" )
2022-03-23 05:54:07 +01:00
resp := MakeRequest ( t , req , http . StatusSeeOther )
2018-06-15 05:42:46 +02:00
assert . Equal ( t , "/explore" , resp . Header ( ) . Get ( "Location" ) )
setting . LandingPageURL = setting . LandingPageOrganizations
req = NewRequest ( t , "GET" , "/" )
2022-03-23 05:54:07 +01:00
resp = MakeRequest ( t , req , http . StatusSeeOther )
2018-06-15 05:42:46 +02:00
assert . Equal ( t , "/explore/organizations" , resp . Header ( ) . Get ( "Location" ) )
2020-01-06 17:50:44 +01:00
setting . LandingPageURL = setting . LandingPageLogin
req = NewRequest ( t , "GET" , "/" )
2022-03-23 05:54:07 +01:00
resp = MakeRequest ( t , req , http . StatusSeeOther )
2020-01-06 17:50:44 +01:00
assert . Equal ( t , "/user/login" , resp . Header ( ) . Get ( "Location" ) )
2018-06-15 05:42:46 +02:00
setting . LandingPageURL = landingPage
}