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