@@ -212,21 +212,46 @@ func TestAPIViewRepo(t *testing.T) {
212
212
func TestAPIOrgRepos (t * testing.T ) {
213
213
prepareTestEnv (t )
214
214
user := models .AssertExistsAndLoadBean (t , & models.User {ID : 2 }).(* models.User )
215
+ user2 := models .AssertExistsAndLoadBean (t , & models.User {ID : 1 }).(* models.User )
216
+ user3 := models .AssertExistsAndLoadBean (t , & models.User {ID : 5 }).(* models.User )
215
217
// User3 is an Org. Check their repos.
216
218
sourceOrg := models .AssertExistsAndLoadBean (t , & models.User {ID : 3 }).(* models.User )
217
- // Login as User2.
218
- session := loginUser (t , user .Name )
219
- token := getTokenForLoggedInUser (t , session )
220
- req := NewRequestf (t , "GET" , "/api/v1/orgs/%s/repos?token=" + token , sourceOrg .Name )
221
- resp := session .MakeRequest (t , req , http .StatusOK )
222
219
223
- var apiRepos []* api.Repository
224
- DecodeJSON (t , resp , & apiRepos )
225
- expectedLen := models .GetCount (t , models.Repository {OwnerID : sourceOrg .ID },
226
- models .Cond ("is_private = ?" , false ))
227
- assert .Len (t , apiRepos , expectedLen )
228
- for _ , repo := range apiRepos {
229
- assert .False (t , repo .Private )
220
+ expectedResults := map [* models.User ]struct {
221
+ count int
222
+ includesPrivate bool
223
+ }{
224
+ nil : {count : 1 },
225
+ user : {count : 2 , includesPrivate : true },
226
+ user2 : {count : 3 , includesPrivate : true },
227
+ user3 : {count : 1 },
228
+ }
229
+
230
+ for userToLogin , expected := range expectedResults {
231
+ var session * TestSession
232
+ var testName string
233
+ var token string
234
+ if userToLogin != nil && userToLogin .ID > 0 {
235
+ testName = fmt .Sprintf ("LoggedUser%d" , userToLogin .ID )
236
+ session = loginUser (t , userToLogin .Name )
237
+ token = getTokenForLoggedInUser (t , session )
238
+ } else {
239
+ testName = "AnonymousUser"
240
+ session = emptyTestSession (t )
241
+ }
242
+ t .Run (testName , func (t * testing.T ) {
243
+ req := NewRequestf (t , "GET" , "/api/v1/orgs/%s/repos?token=" + token , sourceOrg .Name )
244
+ resp := session .MakeRequest (t , req , http .StatusOK )
245
+
246
+ var apiRepos []* api.Repository
247
+ DecodeJSON (t , resp , & apiRepos )
248
+ assert .Len (t , apiRepos , expected .count )
249
+ for _ , repo := range apiRepos {
250
+ if ! expected .includesPrivate {
251
+ assert .False (t , repo .Private )
252
+ }
253
+ }
254
+ })
230
255
}
231
256
}
232
257
0 commit comments