code.gitea.io/gitea@v1.21.7/routers/web/user/home_test.go (about) 1 // Copyright 2017 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package user 5 6 import ( 7 "net/http" 8 "testing" 9 10 "code.gitea.io/gitea/models/db" 11 repo_model "code.gitea.io/gitea/models/repo" 12 "code.gitea.io/gitea/models/unittest" 13 "code.gitea.io/gitea/modules/contexttest" 14 "code.gitea.io/gitea/modules/setting" 15 16 "github.com/stretchr/testify/assert" 17 ) 18 19 func TestArchivedIssues(t *testing.T) { 20 // Arrange 21 setting.UI.IssuePagingNum = 1 22 assert.NoError(t, unittest.LoadFixtures()) 23 24 ctx, _ := contexttest.MockContext(t, "issues") 25 contexttest.LoadUser(t, ctx, 30) 26 ctx.Req.Form.Set("state", "open") 27 28 // Assume: User 30 has access to two Repos with Issues, one of the Repos being archived. 29 repos, _, _ := repo_model.GetUserRepositories(db.DefaultContext, &repo_model.SearchRepoOptions{Actor: ctx.Doer}) 30 assert.Len(t, repos, 3) 31 IsArchived := make(map[int64]bool) 32 NumIssues := make(map[int64]int) 33 for _, repo := range repos { 34 IsArchived[repo.ID] = repo.IsArchived 35 NumIssues[repo.ID] = repo.NumIssues 36 } 37 assert.False(t, IsArchived[50]) 38 assert.EqualValues(t, 1, NumIssues[50]) 39 assert.True(t, IsArchived[51]) 40 assert.EqualValues(t, 1, NumIssues[51]) 41 42 // Act 43 Issues(ctx) 44 45 // Assert: One Issue (ID 30) from one Repo (ID 50) is retrieved, while nothing from archived Repo 51 is retrieved 46 assert.EqualValues(t, http.StatusOK, ctx.Resp.Status()) 47 48 assert.EqualValues(t, map[int64]int64{50: 1}, ctx.Data["Counts"]) 49 assert.Len(t, ctx.Data["Issues"], 1) 50 assert.Len(t, ctx.Data["Repos"], 1) 51 } 52 53 func TestIssues(t *testing.T) { 54 setting.UI.IssuePagingNum = 1 55 assert.NoError(t, unittest.LoadFixtures()) 56 57 ctx, _ := contexttest.MockContext(t, "issues") 58 contexttest.LoadUser(t, ctx, 2) 59 ctx.Req.Form.Set("state", "closed") 60 Issues(ctx) 61 assert.EqualValues(t, http.StatusOK, ctx.Resp.Status()) 62 63 assert.EqualValues(t, map[int64]int64{1: 1, 2: 1}, ctx.Data["Counts"]) 64 assert.EqualValues(t, true, ctx.Data["IsShowClosed"]) 65 assert.Len(t, ctx.Data["Issues"], 1) 66 assert.Len(t, ctx.Data["Repos"], 2) 67 } 68 69 func TestPulls(t *testing.T) { 70 setting.UI.IssuePagingNum = 20 71 assert.NoError(t, unittest.LoadFixtures()) 72 73 ctx, _ := contexttest.MockContext(t, "pulls") 74 contexttest.LoadUser(t, ctx, 2) 75 ctx.Req.Form.Set("state", "open") 76 Pulls(ctx) 77 assert.EqualValues(t, http.StatusOK, ctx.Resp.Status()) 78 79 assert.Len(t, ctx.Data["Issues"], 5) 80 } 81 82 func TestMilestones(t *testing.T) { 83 setting.UI.IssuePagingNum = 1 84 assert.NoError(t, unittest.LoadFixtures()) 85 86 ctx, _ := contexttest.MockContext(t, "milestones") 87 contexttest.LoadUser(t, ctx, 2) 88 ctx.SetParams("sort", "issues") 89 ctx.Req.Form.Set("state", "closed") 90 ctx.Req.Form.Set("sort", "furthestduedate") 91 Milestones(ctx) 92 assert.EqualValues(t, http.StatusOK, ctx.Resp.Status()) 93 assert.EqualValues(t, map[int64]int64{1: 1}, ctx.Data["Counts"]) 94 assert.EqualValues(t, true, ctx.Data["IsShowClosed"]) 95 assert.EqualValues(t, "furthestduedate", ctx.Data["SortType"]) 96 assert.EqualValues(t, 1, ctx.Data["Total"]) 97 assert.Len(t, ctx.Data["Milestones"], 1) 98 assert.Len(t, ctx.Data["Repos"], 2) // both repo 42 and 1 have milestones and both are owned by user 2 99 } 100 101 func TestMilestonesForSpecificRepo(t *testing.T) { 102 setting.UI.IssuePagingNum = 1 103 assert.NoError(t, unittest.LoadFixtures()) 104 105 ctx, _ := contexttest.MockContext(t, "milestones") 106 contexttest.LoadUser(t, ctx, 2) 107 ctx.SetParams("sort", "issues") 108 ctx.SetParams("repo", "1") 109 ctx.Req.Form.Set("state", "closed") 110 ctx.Req.Form.Set("sort", "furthestduedate") 111 Milestones(ctx) 112 assert.EqualValues(t, http.StatusOK, ctx.Resp.Status()) 113 assert.EqualValues(t, map[int64]int64{1: 1}, ctx.Data["Counts"]) 114 assert.EqualValues(t, true, ctx.Data["IsShowClosed"]) 115 assert.EqualValues(t, "furthestduedate", ctx.Data["SortType"]) 116 assert.EqualValues(t, 1, ctx.Data["Total"]) 117 assert.Len(t, ctx.Data["Milestones"], 1) 118 assert.Len(t, ctx.Data["Repos"], 2) // both repo 42 and 1 have milestones and both are owned by user 2 119 }