@ -14,14 +14,14 @@ import (
"github.com/stretchr/testify/assert"
)
func testCreateBranch ( t * testing . T , session * TestSession , user , repo , oldRef Name , newBranchName string , expectedStatus int ) string {
func testCreateBranch ( t * testing . T , session * TestSession , user , repo , oldRef SubURL , newBranchName string , expectedStatus int ) string {
var csrf string
if expectedStatus == http . StatusNotFound {
csrf = GetCSRF ( t , session , path . Join ( user , repo , "src/ master") )
csrf = GetCSRF ( t , session , path . Join ( user , repo , "src/ branch/ master") )
} else {
csrf = GetCSRF ( t , session , path . Join ( user , repo , "src" , oldRef Name ) )
csrf = GetCSRF ( t , session , path . Join ( user , repo , "src" , oldRef SubURL ) )
}
req := NewRequestWithValues ( t , "POST" , path . Join ( user , repo , "branches/_new" , oldRef Name ) , map [ string ] string {
req := NewRequestWithValues ( t , "POST" , path . Join ( user , repo , "branches/_new" , oldRef SubURL ) , map [ string ] string {
"_csrf" : csrf ,
"new_branch_name" : newBranchName ,
} )
@ -34,72 +34,72 @@ func testCreateBranch(t *testing.T, session *TestSession, user, repo, oldRefName
func TestCreateBranch ( t * testing . T ) {
tests := [ ] struct {
Old BranchOrCommit string
NewBranch string
CreateRelease string
FlashMessage string
ExpectedStatus int
Old RefSubURL string
NewBranch string
CreateRelease string
FlashMessage string
ExpectedStatus int
} {
{
Old BranchOrCommit: " master",
NewBranch : "feature/test1" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test1" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "feature/test1" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test1" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : "" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.require_error" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.require_error" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : "feature=test1" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.git_ref_name_error" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "feature=test1" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.git_ref_name_error" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : strings . Repeat ( "b" , 101 ) ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.max_size_error" , "100" ) ,
Old RefSubURL: "branch/ master",
NewBranch : strings . Repeat ( "b" , 101 ) ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "form.NewBranchName" ) + i18n . Tr ( "en" , "form.max_size_error" , "100" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : "master" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.branch_already_exists" , "master" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "master" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.branch_already_exists" , "master" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : "master/test" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.branch_name_conflict" , "master/test" , "master" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "master/test" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.branch_name_conflict" , "master/test" , "master" ) ,
} ,
{
Old BranchOrCommit: " acd1d892867872cb47f3993468605b8aa59aa2e0",
NewBranch : "feature/test2" ,
ExpectedStatus : http . StatusNotFound ,
Old RefSubURL: "commit/ acd1d892867872cb47f3993468605b8aa59aa2e0",
NewBranch : "feature/test2" ,
ExpectedStatus : http . StatusNotFound ,
} ,
{
Old BranchOrCommit: " 65f1bf27bc3bf70f64657658635e66094edbcb4d",
NewBranch : "feature/test3" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test3" ) ,
Old RefSubURL: "commit/ 65f1bf27bc3bf70f64657658635e66094edbcb4d",
NewBranch : "feature/test3" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test3" ) ,
} ,
{
Old BranchOrCommit: " master",
NewBranch : "v1.0.0" ,
CreateRelease : "v1.0.0" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.tag_collision" , "v1.0.0" ) ,
Old RefSubURL: "branch/ master",
NewBranch : "v1.0.0" ,
CreateRelease : "v1.0.0" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.tag_collision" , "v1.0.0" ) ,
} ,
{
Old BranchOrCommit: " v1.0.0",
NewBranch : "feature/test4" ,
CreateRelease : "v1.0.0" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test4" ) ,
Old RefSubURL: "tag/ v1.0.0",
NewBranch : "feature/test4" ,
CreateRelease : "v1.0.0" ,
ExpectedStatus : http . StatusFound ,
FlashMessage : i18n . Tr ( "en" , "repo.branch.create_success" , "feature/test4" ) ,
} ,
}
for _ , test := range tests {
@ -108,7 +108,7 @@ func TestCreateBranch(t *testing.T) {
if test . CreateRelease != "" {
createNewRelease ( t , session , "/user2/repo1" , test . CreateRelease , test . CreateRelease , false , false )
}
redirectURL := testCreateBranch ( t , session , "user2" , "repo1" , test . Old BranchOrCommit , test . NewBranch , test . ExpectedStatus )
redirectURL := testCreateBranch ( t , session , "user2" , "repo1" , test . Old RefSubURL , test . NewBranch , test . ExpectedStatus )
if test . ExpectedStatus == http . StatusFound {
req := NewRequest ( t , "GET" , redirectURL )
resp := session . MakeRequest ( t , req , http . StatusOK )
@ -124,7 +124,7 @@ func TestCreateBranch(t *testing.T) {
func TestCreateBranchInvalidCSRF ( t * testing . T ) {
prepareTestEnv ( t )
session := loginUser ( t , "user2" )
req := NewRequestWithValues ( t , "POST" , "user2/repo1/branches/_new/ master", map [ string ] string {
req := NewRequestWithValues ( t , "POST" , "user2/repo1/branches/_new/ branch/ master", map [ string ] string {
"_csrf" : "fake_csrf" ,
"new_branch_name" : "test" ,
} )