2017-08-17 18:52:28 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package integrations
import (
2017-08-23 12:53:35 +03:00
"fmt"
2017-08-17 18:52:28 +03:00
"net/http"
"testing"
2017-08-23 12:53:35 +03:00
api "code.gitea.io/sdk/gitea"
2017-08-17 18:52:28 +03:00
)
func TestLinksNoLogin ( t * testing . T ) {
prepareTestEnv ( 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/sign_up" ,
"/user/login" ,
"/user/forgot_password" ,
"/swagger" ,
2017-08-23 12:53:35 +03:00
// TODO: follow this page and test every link
2017-08-24 08:54:06 +03:00
"/vendor/librejs.html" ,
2017-08-17 18:52:28 +03:00
}
for _ , link := range links {
req := NewRequest ( t , "GET" , link )
MakeRequest ( t , req , http . StatusOK )
}
}
2017-08-23 12:53:35 +03:00
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" ,
2017-10-16 12:14:12 +03:00
"/user/settings/security" ,
"/user/settings/security/two_factor/enroll" ,
2017-08-23 12:53:35 +03:00
"/user/settings/email" ,
"/user/settings/keys" ,
"/user/settings/applications" ,
"/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 )
}