2017-10-26 02:49:16 +02:00
// Copyright 2017 The Gitea Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2017-10-26 02:49:16 +02:00
2022-09-02 15:18:23 -04:00
package integration
2017-10-26 02:49:16 +02:00
import (
"net/http"
"net/url"
"testing"
2022-06-26 16:19:22 +02:00
"code.gitea.io/gitea/modules/translation"
2022-09-02 15:18:23 -04:00
"code.gitea.io/gitea/tests"
2022-04-03 17:46:48 +08:00
2017-10-26 02:49:16 +02:00
"github.com/stretchr/testify/assert"
)
func TestViewBranches ( t * testing . T ) {
2022-09-02 15:18:23 -04:00
defer tests . PrepareTestEnv ( t ) ( )
2017-10-26 02:49:16 +02:00
req := NewRequest ( t , "GET" , "/user2/repo1/branches" )
resp := MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
_ , exists := htmlDoc . doc . Find ( ".delete-branch-button" ) . Attr ( "data-url" )
assert . False ( t , exists , "The template has changed" )
}
func TestDeleteBranch ( t * testing . T ) {
2022-09-02 15:18:23 -04:00
defer tests . PrepareTestEnv ( t ) ( )
2017-10-26 02:49:16 +02:00
deleteBranch ( t )
}
func TestUndoDeleteBranch ( t * testing . T ) {
2020-06-12 00:49:47 +01:00
onGiteaRun ( t , func ( t * testing . T , u * url . URL ) {
deleteBranch ( t )
2023-06-13 20:10:10 +08:00
htmlDoc , name := branchAction ( t , ".restore-branch-button" )
2020-06-12 00:49:47 +01:00
assert . Contains ( t ,
htmlDoc . doc . Find ( ".ui.positive.message" ) . Text ( ) ,
2024-02-15 05:48:45 +08:00
translation . NewLocale ( "en-US" ) . TrString ( "repo.branch.restore_success" , name ) ,
2020-06-12 00:49:47 +01:00
)
} )
2017-10-26 02:49:16 +02:00
}
func deleteBranch ( t * testing . T ) {
htmlDoc , name := branchAction ( t , ".delete-branch-button" )
assert . Contains ( t ,
htmlDoc . doc . Find ( ".ui.positive.message" ) . Text ( ) ,
2024-02-15 05:48:45 +08:00
translation . NewLocale ( "en-US" ) . TrString ( "repo.branch.deletion_success" , name ) ,
2017-10-26 02:49:16 +02:00
)
}
func branchAction ( t * testing . T , button string ) ( * HTMLDoc , string ) {
session := loginUser ( t , "user2" )
req := NewRequest ( t , "GET" , "/user2/repo1/branches" )
resp := session . MakeRequest ( t , req , http . StatusOK )
htmlDoc := NewHTMLParser ( t , resp . Body )
link , exists := htmlDoc . doc . Find ( button ) . Attr ( "data-url" )
2021-02-03 20:06:13 +01:00
if ! assert . True ( t , exists , "The template has changed" ) {
t . Skip ( )
}
2017-10-26 02:49:16 +02:00
req = NewRequestWithValues ( t , "POST" , link , map [ string ] string {
2021-10-21 15:37:43 +08:00
"_csrf" : htmlDoc . GetCSRF ( ) ,
2017-10-26 02:49:16 +02:00
} )
2019-06-12 21:41:28 +02:00
session . MakeRequest ( t , req , http . StatusOK )
2017-10-26 02:49:16 +02:00
url , err := url . Parse ( link )
assert . NoError ( t , err )
req = NewRequest ( t , "GET" , "/user2/repo1/branches" )
resp = session . MakeRequest ( t , req , http . StatusOK )
2021-02-03 20:06:13 +01:00
return NewHTMLParser ( t , resp . Body ) , url . Query ( ) . Get ( "name" )
2017-10-26 02:49:16 +02:00
}