5
5
package integrations
6
6
7
7
import (
8
+ "fmt"
8
9
"net/http"
9
10
"testing"
11
+
12
+ api "code.gitea.io/sdk/gitea"
10
13
)
11
14
12
15
func TestLinksNoLogin (t * testing.T ) {
@@ -24,10 +27,104 @@ func TestLinksNoLogin(t *testing.T) {
24
27
"/user/login" ,
25
28
"/user/forgot_password" ,
26
29
"/swagger" ,
30
+ // TODO: follow this page and test every link
31
+ "/assets/librejs/librejs.html" ,
27
32
}
28
33
29
34
for _ , link := range links {
30
35
req := NewRequest (t , "GET" , link )
31
36
MakeRequest (t , req , http .StatusOK )
32
37
}
33
38
}
39
+
40
+ func testLinksAsUser (userName string , t * testing.T ) {
41
+ var links = []string {
42
+ "/explore/repos" ,
43
+ "/explore/repos?q=test&tab=" ,
44
+ "/explore/users" ,
45
+ "/explore/users?q=test&tab=" ,
46
+ "/explore/organizations" ,
47
+ "/explore/organizations?q=test&tab=" ,
48
+ "/" ,
49
+ "/user/forgot_password" ,
50
+ "/swagger" ,
51
+ "/issues" ,
52
+ "/issues?type=your_repositories&repo=0&sort=&state=open" ,
53
+ "/issues?type=assigned&repo=0&sort=&state=open" ,
54
+ "/issues?type=created_by&repo=0&sort=&state=open" ,
55
+ "/issues?type=your_repositories&repo=0&sort=&state=closed" ,
56
+ "/issues?type=assigned&repo=0&sort=&state=closed" ,
57
+ "/issues?type=created_by&repo=0&sort=&state=closed" ,
58
+ "/pulls" ,
59
+ "/pulls?type=your_repositories&repo=0&sort=&state=open" ,
60
+ "/pulls?type=assigned&repo=0&sort=&state=open" ,
61
+ "/pulls?type=created_by&repo=0&sort=&state=open" ,
62
+ "/pulls?type=your_repositories&repo=0&sort=&state=closed" ,
63
+ "/pulls?type=assigned&repo=0&sort=&state=closed" ,
64
+ "/pulls?type=created_by&repo=0&sort=&state=closed" ,
65
+ "/notifications" ,
66
+ "/repo/create" ,
67
+ "/repo/migrate" ,
68
+ "/org/create" ,
69
+ "/user2" ,
70
+ "/user2?tab=stars" ,
71
+ "/user2?tab=activity" ,
72
+ "/user/settings" ,
73
+ "/user/settings/avatar" ,
74
+ "/user/settings/password" ,
75
+ "/user/settings/email" ,
76
+ "/user/settings/keys" ,
77
+ "/user/settings/applications" ,
78
+ "/user/settings/two_factor" ,
79
+ "/user/settings/account_link" ,
80
+ "/user/settings/organization" ,
81
+ "/user/settings/delete" ,
82
+ }
83
+
84
+ session := loginUser (t , userName )
85
+ for _ , link := range links {
86
+ req := NewRequest (t , "GET" , link )
87
+ session .MakeRequest (t , req , http .StatusOK )
88
+ }
89
+
90
+ reqAPI := NewRequestf (t , "GET" , "/api/v1/users/%s/repos" , userName )
91
+ respAPI := MakeRequest (t , reqAPI , http .StatusOK )
92
+
93
+ var apiRepos []api.Repository
94
+ DecodeJSON (t , respAPI , & apiRepos )
95
+
96
+ var repoLinks = []string {
97
+ "" ,
98
+ "/issues" ,
99
+ "/pulls" ,
100
+ "/commits/master" ,
101
+ "/graph" ,
102
+ "/settings" ,
103
+ "/settings/collaboration" ,
104
+ "/settings/branches" ,
105
+ "/settings/hooks" ,
106
+ // FIXME: below links should return 200 but 404 ??
107
+ //"/settings/hooks/git",
108
+ //"/settings/hooks/git/pre-receive",
109
+ //"/settings/hooks/git/update",
110
+ //"/settings/hooks/git/post-receive",
111
+ "/settings/keys" ,
112
+ "/releases" ,
113
+ "/releases/new" ,
114
+ //"/wiki/_pages",
115
+ "/wiki/_new" ,
116
+ }
117
+
118
+ for _ , repo := range apiRepos {
119
+ for _ , link := range repoLinks {
120
+ req := NewRequest (t , "GET" , fmt .Sprintf ("/%s/%s%s" , userName , repo .Name , link ))
121
+ session .MakeRequest (t , req , http .StatusOK )
122
+ }
123
+ }
124
+ }
125
+
126
+ func TestLinksLogin (t * testing.T ) {
127
+ prepareTestEnv (t )
128
+
129
+ testLinksAsUser ("user2" , t )
130
+ }
0 commit comments