2017-04-25 10:24:51 +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-07-15 17:21:51 +03:00
"fmt"
2017-04-25 10:24:51 +03:00
"net/http"
"testing"
2017-07-15 17:21:51 +03:00
"code.gitea.io/gitea/modules/setting"
"github.com/stretchr/testify/assert"
2017-04-25 10:24:51 +03:00
)
func TestViewRepo ( t * testing . T ) {
2017-04-28 16:23:28 +03:00
prepareTestEnv ( t )
2017-04-25 10:24:51 +03:00
2017-06-10 03:41:36 +03:00
req := NewRequest ( t , "GET" , "/user2/repo1" )
2017-07-07 22:36:47 +03:00
MakeRequest ( t , req , http . StatusOK )
2017-06-15 05:50:12 +03:00
req = NewRequest ( t , "GET" , "/user3/repo3" )
2017-07-07 22:36:47 +03:00
MakeRequest ( t , req , http . StatusNotFound )
2017-06-15 05:50:12 +03:00
2017-06-17 07:49:45 +03:00
session := loginUser ( t , "user1" )
2017-07-07 22:36:47 +03:00
session . MakeRequest ( t , req , http . StatusNotFound )
2017-06-15 05:50:12 +03:00
}
func TestViewRepo2 ( t * testing . T ) {
prepareTestEnv ( t )
req := NewRequest ( t , "GET" , "/user3/repo3" )
2017-06-17 07:49:45 +03:00
session := loginUser ( t , "user2" )
2017-07-07 22:36:47 +03:00
session . MakeRequest ( t , req , http . StatusOK )
2017-06-15 05:50:12 +03:00
}
func TestViewRepo3 ( t * testing . T ) {
prepareTestEnv ( t )
req := NewRequest ( t , "GET" , "/user3/repo3" )
2017-07-17 05:04:43 +03:00
session := loginUser ( t , "user4" )
2017-07-07 22:36:47 +03:00
session . MakeRequest ( t , req , http . StatusOK )
2017-04-25 10:24:51 +03:00
}
2017-07-15 17:21:51 +03:00
func TestViewRepo1CloneLinkAnonymous ( t * testing . T ) {
prepareTestEnv ( t )
req := NewRequest ( t , "GET" , "/user2/repo1" )
resp := MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
link , exists := htmlDoc . doc . Find ( "#repo-clone-https" ) . Attr ( "data-link" )
assert . True ( t , exists , "The template has changed" )
assert . Equal ( t , setting . AppURL + "user2/repo1.git" , link )
_ , exists = htmlDoc . doc . Find ( "#repo-clone-ssh" ) . Attr ( "data-link" )
assert . False ( t , exists )
}
func TestViewRepo1CloneLinkAuthorized ( t * testing . T ) {
prepareTestEnv ( t )
session := loginUser ( t , "user2" )
req := NewRequest ( t , "GET" , "/user2/repo1" )
resp := session . MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
link , exists := htmlDoc . doc . Find ( "#repo-clone-https" ) . Attr ( "data-link" )
assert . True ( t , exists , "The template has changed" )
assert . Equal ( t , setting . AppURL + "user2/repo1.git" , link )
link , exists = htmlDoc . doc . Find ( "#repo-clone-ssh" ) . Attr ( "data-link" )
assert . True ( t , exists , "The template has changed" )
sshURL := fmt . Sprintf ( "%s@%s:user2/repo1.git" , setting . RunUser , setting . SSH . Domain )
assert . Equal ( t , sshURL , link )
}