7
7
"fmt"
8
8
"net/http"
9
9
"net/http/httptest"
10
+ "strings"
10
11
"testing"
11
12
12
13
"code.gitea.io/gitea/models/unittest"
@@ -16,7 +17,7 @@ import (
16
17
"github.com/stretchr/testify/assert"
17
18
)
18
19
19
- func testRepoGenerate (t * testing.T , session * TestSession , templateOwnerName , templateRepoName , generateOwnerName , generateRepoName string ) * httptest.ResponseRecorder {
20
+ func testRepoGenerate (t * testing.T , session * TestSession , templateID , templateOwnerName , templateRepoName , generateOwnerName , generateRepoName string ) * httptest.ResponseRecorder {
20
21
generateOwner := unittest .AssertExistsAndLoadBean (t , & user_model.User {Name : generateOwnerName })
21
22
22
23
// Step0: check the existence of the generated repo
@@ -41,28 +42,44 @@ func testRepoGenerate(t *testing.T, session *TestSession, templateOwnerName, tem
41
42
_ , exists = htmlDoc .doc .Find (fmt .Sprintf (".owner.dropdown .item[data-value=\" %d\" ]" , generateOwner .ID )).Attr ("data-value" )
42
43
assert .True (t , exists , fmt .Sprintf ("Generate owner '%s' is not present in select box" , generateOwnerName ))
43
44
req = NewRequestWithValues (t , "POST" , link , map [string ]string {
44
- "_csrf" : htmlDoc .GetCSRF (),
45
- "uid" : fmt .Sprintf ("%d" , generateOwner .ID ),
46
- "repo_name" : generateRepoName ,
47
- "git_content" : "true" ,
45
+ "_csrf" : htmlDoc .GetCSRF (),
46
+ "uid" : fmt .Sprintf ("%d" , generateOwner .ID ),
47
+ "repo_name" : generateRepoName ,
48
+ "repo_template" : templateID ,
49
+ "git_content" : "true" ,
48
50
})
49
51
session .MakeRequest (t , req , http .StatusSeeOther )
50
52
51
53
// Step4: check the existence of the generated repo
52
54
req = NewRequestf (t , "GET" , "/%s/%s" , generateOwnerName , generateRepoName )
55
+ session .MakeRequest (t , req , http .StatusOK )
56
+
57
+ // Step5: check substituted values in Readme
58
+ req = NewRequestf (t , "GET" , "/%s/%s/raw/branch/master/README.md" , generateOwnerName , generateRepoName )
59
+ resp = session .MakeRequest (t , req , http .StatusOK )
60
+ body := fmt .Sprintf (`# %s Readme
61
+ Owner: %s
62
+ Link: /%s/%s
63
+ Clone URL: http://localhost:3003/%s/%s.git` ,
64
+ generateRepoName , strings .ToUpper (generateOwnerName ), generateOwnerName , generateRepoName , generateOwnerName , generateRepoName )
65
+ assert .Equal (t , body , resp .Body .String ())
66
+
67
+ // Step6: check substituted values in substituted file path ${REPO_NAME}
68
+ req = NewRequestf (t , "GET" , "/%s/%s/raw/branch/master/%s.log" , generateOwnerName , generateRepoName , generateRepoName )
53
69
resp = session .MakeRequest (t , req , http .StatusOK )
70
+ assert .Equal (t , generateRepoName , resp .Body .String ())
54
71
55
72
return resp
56
73
}
57
74
58
75
func TestRepoGenerate (t * testing.T ) {
59
76
defer tests .PrepareTestEnv (t )()
60
77
session := loginUser (t , "user1" )
61
- testRepoGenerate (t , session , "user27" , "template1" , "user1" , "generated1" )
78
+ testRepoGenerate (t , session , "44" , " user27" , "template1" , "user1" , "generated1" )
62
79
}
63
80
64
81
func TestRepoGenerateToOrg (t * testing.T ) {
65
82
defer tests .PrepareTestEnv (t )()
66
83
session := loginUser (t , "user2" )
67
- testRepoGenerate (t , session , "user27" , "template1" , "user2" , "generated2" )
84
+ testRepoGenerate (t , session , "44" , " user27" , "template1" , "user2" , "generated2" )
68
85
}
0 commit comments