@@ -6,6 +6,8 @@ package setting
66import (
77 "testing"
88
9+ "code.gitea.io/gitea/modules/structs"
10+
911 "github.com/gobwas/glob"
1012 "github.com/stretchr/testify/assert"
1113)
@@ -44,3 +46,87 @@ EMAIL_DOMAIN_BLOCKLIST = d3, *.b
4446 assert .True (t , match (Service .EmailDomainBlockList , "foo.b" ))
4547 assert .False (t , match (Service .EmailDomainBlockList , "d1" ))
4648}
49+
50+ func TestLoadServiceVisibilityModes (t * testing.T ) {
51+ oldService := Service
52+ defer func () {
53+ Service = oldService
54+ }()
55+
56+ kases := map [string ]func (){
57+ `
58+ [service]
59+ DEFAULT_USER_VISIBILITY = public
60+ ALLOWED_USER_VISIBILITY_MODES = public,limited,private
61+ ` : func () {
62+ assert .Equal (t , "public" , Service .DefaultUserVisibility )
63+ assert .Equal (t , structs .VisibleTypePublic , Service .DefaultUserVisibilityMode )
64+ assert .Equal (t , []string {"public" , "limited" , "private" }, Service .AllowedUserVisibilityModes )
65+ },
66+ `
67+ [service]
68+ DEFAULT_USER_VISIBILITY = public
69+ ` : func () {
70+ assert .Equal (t , "public" , Service .DefaultUserVisibility )
71+ assert .Equal (t , structs .VisibleTypePublic , Service .DefaultUserVisibilityMode )
72+ assert .Equal (t , []string {"public" , "limited" , "private" }, Service .AllowedUserVisibilityModes )
73+ },
74+ `
75+ [service]
76+ DEFAULT_USER_VISIBILITY = limited
77+ ` : func () {
78+ assert .Equal (t , "limited" , Service .DefaultUserVisibility )
79+ assert .Equal (t , structs .VisibleTypeLimited , Service .DefaultUserVisibilityMode )
80+ assert .Equal (t , []string {"public" , "limited" , "private" }, Service .AllowedUserVisibilityModes )
81+ },
82+ `
83+ [service]
84+ ALLOWED_USER_VISIBILITY_MODES = public,limited,private
85+ ` : func () {
86+ assert .Equal (t , "public" , Service .DefaultUserVisibility )
87+ assert .Equal (t , structs .VisibleTypePublic , Service .DefaultUserVisibilityMode )
88+ assert .Equal (t , []string {"public" , "limited" , "private" }, Service .AllowedUserVisibilityModes )
89+ },
90+ `
91+ [service]
92+ DEFAULT_USER_VISIBILITY = public
93+ ALLOWED_USER_VISIBILITY_MODES = limited,private
94+ ` : func () {
95+ assert .Equal (t , "limited" , Service .DefaultUserVisibility )
96+ assert .Equal (t , structs .VisibleTypeLimited , Service .DefaultUserVisibilityMode )
97+ assert .Equal (t , []string {"limited" , "private" }, Service .AllowedUserVisibilityModes )
98+ },
99+ `
100+ [service]
101+ DEFAULT_USER_VISIBILITY = my_type
102+ ALLOWED_USER_VISIBILITY_MODES = limited,private
103+ ` : func () {
104+ assert .Equal (t , "limited" , Service .DefaultUserVisibility )
105+ assert .Equal (t , structs .VisibleTypeLimited , Service .DefaultUserVisibilityMode )
106+ assert .Equal (t , []string {"limited" , "private" }, Service .AllowedUserVisibilityModes )
107+ },
108+ `
109+ [service]
110+ DEFAULT_USER_VISIBILITY = public
111+ ALLOWED_USER_VISIBILITY_MODES = public, limit, privated
112+ ` : func () {
113+ assert .Equal (t , "public" , Service .DefaultUserVisibility )
114+ assert .Equal (t , structs .VisibleTypePublic , Service .DefaultUserVisibilityMode )
115+ assert .Equal (t , []string {"public" }, Service .AllowedUserVisibilityModes )
116+ },
117+ }
118+
119+ for kase , fun := range kases {
120+ t .Run (kase , func (t * testing.T ) {
121+ cfg , err := NewConfigProviderFromData (kase )
122+ assert .NoError (t , err )
123+ loadServiceFrom (cfg )
124+ fun ()
125+ // reset
126+ Service .AllowedUserVisibilityModesSlice = []bool {true , true , true }
127+ Service .AllowedUserVisibilityModes = []string {}
128+ Service .DefaultUserVisibility = ""
129+ Service .DefaultUserVisibilityMode = structs .VisibleTypePublic
130+ })
131+ }
132+ }
0 commit comments