55package integrations
66
77import (
8+ "fmt"
89 "net/http"
910 "testing"
11+
12+ api "code.gitea.io/sdk/gitea"
1013)
1114
1215func TestLinksNoLogin (t * testing.T ) {
@@ -24,10 +27,104 @@ func TestLinksNoLogin(t *testing.T) {
2427 "/user/login" ,
2528 "/user/forgot_password" ,
2629 "/swagger" ,
30+ // TODO: follow this page and test every link
31+ "/assets/librejs/librejs.html" ,
2732 }
2833
2934 for _ , link := range links {
3035 req := NewRequest (t , "GET" , link )
3136 MakeRequest (t , req , http .StatusOK )
3237 }
3338}
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