Add more test for login links and fix a bug on action retrieve (#2361)
* add more test for login links and fix a bug on action retrieve
This commit is contained in:
		
							parent
							
								
									8aadf79f80
								
							
						
					
					
						commit
						64b7068846
					
				
					 2 changed files with 98 additions and 1 deletions
				
			
		|  | @ -5,8 +5,11 @@ | |||
| package integrations | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"net/http" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	api "code.gitea.io/sdk/gitea" | ||||
| ) | ||||
| 
 | ||||
| func TestLinksNoLogin(t *testing.T) { | ||||
|  | @ -24,6 +27,8 @@ func TestLinksNoLogin(t *testing.T) { | |||
| 		"/user/login", | ||||
| 		"/user/forgot_password", | ||||
| 		"/swagger", | ||||
| 		// TODO: follow this page and test every link
 | ||||
| 		"/assets/librejs/librejs.html", | ||||
| 	} | ||||
| 
 | ||||
| 	for _, link := range links { | ||||
|  | @ -31,3 +36,95 @@ func TestLinksNoLogin(t *testing.T) { | |||
| 		MakeRequest(t, req, http.StatusOK) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func testLinksAsUser(userName string, t *testing.T) { | ||||
| 	var links = []string{ | ||||
| 		"/explore/repos", | ||||
| 		"/explore/repos?q=test&tab=", | ||||
| 		"/explore/users", | ||||
| 		"/explore/users?q=test&tab=", | ||||
| 		"/explore/organizations", | ||||
| 		"/explore/organizations?q=test&tab=", | ||||
| 		"/", | ||||
| 		"/user/forgot_password", | ||||
| 		"/swagger", | ||||
| 		"/issues", | ||||
| 		"/issues?type=your_repositories&repo=0&sort=&state=open", | ||||
| 		"/issues?type=assigned&repo=0&sort=&state=open", | ||||
| 		"/issues?type=created_by&repo=0&sort=&state=open", | ||||
| 		"/issues?type=your_repositories&repo=0&sort=&state=closed", | ||||
| 		"/issues?type=assigned&repo=0&sort=&state=closed", | ||||
| 		"/issues?type=created_by&repo=0&sort=&state=closed", | ||||
| 		"/pulls", | ||||
| 		"/pulls?type=your_repositories&repo=0&sort=&state=open", | ||||
| 		"/pulls?type=assigned&repo=0&sort=&state=open", | ||||
| 		"/pulls?type=created_by&repo=0&sort=&state=open", | ||||
| 		"/pulls?type=your_repositories&repo=0&sort=&state=closed", | ||||
| 		"/pulls?type=assigned&repo=0&sort=&state=closed", | ||||
| 		"/pulls?type=created_by&repo=0&sort=&state=closed", | ||||
| 		"/notifications", | ||||
| 		"/repo/create", | ||||
| 		"/repo/migrate", | ||||
| 		"/org/create", | ||||
| 		"/user2", | ||||
| 		"/user2?tab=stars", | ||||
| 		"/user2?tab=activity", | ||||
| 		"/user/settings", | ||||
| 		"/user/settings/avatar", | ||||
| 		"/user/settings/password", | ||||
| 		"/user/settings/email", | ||||
| 		"/user/settings/keys", | ||||
| 		"/user/settings/applications", | ||||
| 		"/user/settings/two_factor", | ||||
| 		"/user/settings/account_link", | ||||
| 		"/user/settings/organization", | ||||
| 		"/user/settings/delete", | ||||
| 	} | ||||
| 
 | ||||
| 	session := loginUser(t, userName) | ||||
| 	for _, link := range links { | ||||
| 		req := NewRequest(t, "GET", link) | ||||
| 		session.MakeRequest(t, req, http.StatusOK) | ||||
| 	} | ||||
| 
 | ||||
| 	reqAPI := NewRequestf(t, "GET", "/api/v1/users/%s/repos", userName) | ||||
| 	respAPI := MakeRequest(t, reqAPI, http.StatusOK) | ||||
| 
 | ||||
| 	var apiRepos []api.Repository | ||||
| 	DecodeJSON(t, respAPI, &apiRepos) | ||||
| 
 | ||||
| 	var repoLinks = []string{ | ||||
| 		"", | ||||
| 		"/issues", | ||||
| 		"/pulls", | ||||
| 		"/commits/master", | ||||
| 		"/graph", | ||||
| 		"/settings", | ||||
| 		"/settings/collaboration", | ||||
| 		"/settings/branches", | ||||
| 		"/settings/hooks", | ||||
| 		// FIXME: below links should return 200 but 404 ??
 | ||||
| 		//"/settings/hooks/git",
 | ||||
| 		//"/settings/hooks/git/pre-receive",
 | ||||
| 		//"/settings/hooks/git/update",
 | ||||
| 		//"/settings/hooks/git/post-receive",
 | ||||
| 		"/settings/keys", | ||||
| 		"/releases", | ||||
| 		"/releases/new", | ||||
| 		//"/wiki/_pages",
 | ||||
| 		"/wiki/_new", | ||||
| 	} | ||||
| 
 | ||||
| 	for _, repo := range apiRepos { | ||||
| 		for _, link := range repoLinks { | ||||
| 			req := NewRequest(t, "GET", fmt.Sprintf("/%s/%s%s", userName, repo.Name, link)) | ||||
| 			session.MakeRequest(t, req, http.StatusOK) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func TestLinksLogin(t *testing.T) { | ||||
| 	prepareTestEnv(t) | ||||
| 
 | ||||
| 	testLinksAsUser("user2", t) | ||||
| } | ||||
|  |  | |||
|  | @ -736,7 +736,7 @@ func GetFeeds(opts GetFeedsOptions) ([]*Action, error) { | |||
| 	var userIDCond builder.Cond = builder.Eq{"user_id": opts.RequestedUser.ID} | ||||
| 	if opts.Collaborate { | ||||
| 		userIDCond = userIDCond.Or(builder.Expr( | ||||
| 			`repo_id IN (SELECT repo_id FROM "access" WHERE access.user_id = ?)`, | ||||
| 			"repo_id IN (SELECT repo_id FROM `access` WHERE access.user_id = ?)", | ||||
| 			opts.RequestedUser.ID)) | ||||
| 	} | ||||
| 	cond = cond.And(userIDCond) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue