|
7 | 7 | "fmt" |
8 | 8 | "net/http" |
9 | 9 | "net/http/httptest" |
10 | | - "net/url" |
11 | 10 | "testing" |
12 | 11 |
|
13 | 12 | "code.gitea.io/gitea/models" |
@@ -81,62 +80,49 @@ func TestRepoForkToOrg(t *testing.T) { |
81 | 80 | } |
82 | 81 |
|
83 | 82 | func TestForkListLimitedAndPrivateRepos(t *testing.T) { |
| 83 | + defer tests.PrepareTestEnv(t)() |
84 | 84 | forkItemSelector := ".tw-flex.tw-items-center.tw-py-2" |
85 | 85 |
|
86 | | - onGiteaRun(t, func(t *testing.T, u *url.URL) { |
87 | | - user1Sess := loginUser(t, "user1") |
88 | | - user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user1"}) |
89 | | - limitedOrg := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 22}) |
90 | | - assert.EqualValues(t, structs.VisibleTypeLimited, limitedOrg.Visibility) |
91 | | - |
92 | | - ownerTeam1, err := org_model.OrgFromUser(limitedOrg).GetOwnerTeam(db.DefaultContext) |
93 | | - assert.NoError(t, err) |
94 | | - assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam1, user1)) |
95 | | - defer func() { |
96 | | - models.RemoveTeamMember(db.DefaultContext, ownerTeam1, user1) |
97 | | - }() |
98 | | - |
99 | | - testRepoFork(t, user1Sess, "user2", "repo1", limitedOrg.Name, "repo1", "") |
100 | | - |
101 | | - user4Sess := loginUser(t, "user4") |
102 | | - user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user4"}) |
103 | | - |
104 | | - privateOrg := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 23}) |
105 | | - assert.EqualValues(t, structs.VisibleTypePrivate, privateOrg.Visibility) |
106 | | - |
107 | | - ownerTeam2, err := org_model.OrgFromUser(privateOrg).GetOwnerTeam(db.DefaultContext) |
108 | | - assert.NoError(t, err) |
109 | | - assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam2, user4)) |
110 | | - defer func() { |
111 | | - models.RemoveTeamMember(db.DefaultContext, ownerTeam2, user4) |
112 | | - }() |
113 | | - |
114 | | - testRepoFork(t, user4Sess, "user2", "repo1", privateOrg.Name, "repo1", "") |
115 | | - |
116 | | - t.Run("Anomynous", func(t *testing.T) { |
117 | | - defer tests.PrintCurrentTest(t)() |
118 | | - |
119 | | - req := NewRequest(t, "GET", "/user2/repo1/forks") |
120 | | - resp := MakeRequest(t, req, http.StatusOK) |
121 | | - htmlDoc := NewHTMLParser(t, resp.Body) |
122 | | - assert.EqualValues(t, 0, htmlDoc.Find(forkItemSelector).Length()) |
123 | | - }) |
124 | | - |
125 | | - t.Run("Logged in", func(t *testing.T) { |
126 | | - defer tests.PrintCurrentTest(t)() |
127 | | - |
128 | | - req := NewRequest(t, "GET", "/user2/repo1/forks") |
129 | | - resp := user1Sess.MakeRequest(t, req, http.StatusOK) |
130 | | - htmlDoc := NewHTMLParser(t, resp.Body) |
131 | | - assert.EqualValues(t, 1, htmlDoc.Find(forkItemSelector).Length()) |
132 | | - |
133 | | - assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam2, user1)) |
134 | | - defer func() { |
135 | | - models.RemoveTeamMember(db.DefaultContext, ownerTeam2, user1) |
136 | | - }() |
137 | | - resp = user1Sess.MakeRequest(t, req, http.StatusOK) |
138 | | - htmlDoc = NewHTMLParser(t, resp.Body) |
139 | | - assert.EqualValues(t, 2, htmlDoc.Find(forkItemSelector).Length()) |
140 | | - }) |
| 86 | + user1Sess := loginUser(t, "user1") |
| 87 | + user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user1"}) |
| 88 | + |
| 89 | + // fork to a limited org |
| 90 | + limitedOrg := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 22}) |
| 91 | + assert.EqualValues(t, structs.VisibleTypeLimited, limitedOrg.Visibility) |
| 92 | + ownerTeam1, err := org_model.OrgFromUser(limitedOrg).GetOwnerTeam(db.DefaultContext) |
| 93 | + assert.NoError(t, err) |
| 94 | + assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam1, user1)) |
| 95 | + testRepoFork(t, user1Sess, "user2", "repo1", limitedOrg.Name, "repo1", "") |
| 96 | + |
| 97 | + // fork to a private org |
| 98 | + user4Sess := loginUser(t, "user4") |
| 99 | + user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user4"}) |
| 100 | + privateOrg := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 23}) |
| 101 | + assert.EqualValues(t, structs.VisibleTypePrivate, privateOrg.Visibility) |
| 102 | + ownerTeam2, err := org_model.OrgFromUser(privateOrg).GetOwnerTeam(db.DefaultContext) |
| 103 | + assert.NoError(t, err) |
| 104 | + assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam2, user4)) |
| 105 | + testRepoFork(t, user4Sess, "user2", "repo1", privateOrg.Name, "repo1", "") |
| 106 | + |
| 107 | + t.Run("Anonymous", func(t *testing.T) { |
| 108 | + defer tests.PrintCurrentTest(t)() |
| 109 | + req := NewRequest(t, "GET", "/user2/repo1/forks") |
| 110 | + resp := MakeRequest(t, req, http.StatusOK) |
| 111 | + htmlDoc := NewHTMLParser(t, resp.Body) |
| 112 | + assert.EqualValues(t, 0, htmlDoc.Find(forkItemSelector).Length()) |
| 113 | + }) |
| 114 | + |
| 115 | + t.Run("Logged in", func(t *testing.T) { |
| 116 | + defer tests.PrintCurrentTest(t)() |
| 117 | + |
| 118 | + req := NewRequest(t, "GET", "/user2/repo1/forks") |
| 119 | + resp := user1Sess.MakeRequest(t, req, http.StatusOK) |
| 120 | + htmlDoc := NewHTMLParser(t, resp.Body) |
| 121 | + assert.EqualValues(t, 1, htmlDoc.Find(forkItemSelector).Length()) |
| 122 | + |
| 123 | + assert.NoError(t, models.AddTeamMember(db.DefaultContext, ownerTeam2, user1)) |
| 124 | + resp = user1Sess.MakeRequest(t, req, http.StatusOK) |
| 125 | + htmlDoc = NewHTMLParser(t, resp.Body) |
| 126 | + assert.EqualValues(t, 2, htmlDoc.Find(forkItemSelector).Length()) |
141 | 127 | }) |
142 | 128 | } |
0 commit comments