@@ -6,6 +6,8 @@ package setting
6
6
import (
7
7
"testing"
8
8
9
+ "code.gitea.io/gitea/modules/structs"
10
+
9
11
"github.com/gobwas/glob"
10
12
"github.com/stretchr/testify/assert"
11
13
)
@@ -44,3 +46,87 @@ EMAIL_DOMAIN_BLOCKLIST = d3, *.b
44
46
assert .True (t , match (Service .EmailDomainBlockList , "foo.b" ))
45
47
assert .False (t , match (Service .EmailDomainBlockList , "d1" ))
46
48
}
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