mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 07:21:36 +01:00 
			
		
		
		
	Add integration test for repository migration (#1983)
This commit is contained in:
		
							parent
							
								
									75f166b6b9
								
							
						
					
					
						commit
						754482bf5d
					
				
							
								
								
									
										14
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Makefile
									
									
									
									
									
								
							| @ -164,6 +164,20 @@ test-mysql: integrations.test | ||||
| test-pgsql: integrations.test | ||||
| 	GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/pgsql.ini ./integrations.test | ||||
| 
 | ||||
| 
 | ||||
| .PHONY: bench-sqlite | ||||
| bench-sqlite: integrations.sqlite.test | ||||
| 	GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.bench . | ||||
| 
 | ||||
| .PHONY: bench-mysql | ||||
| bench-mysql: integrations.test | ||||
| 	GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/mysql.ini ./integrations.test -test.bench . | ||||
| 
 | ||||
| .PHONY: bench-pgsql | ||||
| bench-pgsql: integrations.test | ||||
| 	GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/pgsql.ini ./integrations.test -test.bench . | ||||
| 
 | ||||
| 
 | ||||
| .PHONY: integration-test-coverage | ||||
| integration-test-coverage: integrations.cover.test | ||||
| 	GITEA_ROOT=${CURDIR} GITEA_CONF=integrations/mysql.ini ./integrations.cover.test -test.coverprofile=integration.coverage.out | ||||
|  | ||||
							
								
								
									
										70
									
								
								integrations/repo_migrate_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								integrations/repo_migrate_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | ||||
| // 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 ( | ||||
| 	"net/http" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| ) | ||||
| 
 | ||||
| func testRepoMigrate(t testing.TB, session *TestSession, cloneAddr, repoName string) *TestResponse { | ||||
| 	req := NewRequest(t, "GET", "/repo/migrate") | ||||
| 	resp := session.MakeRequest(t, req) | ||||
| 	assert.EqualValues(t, http.StatusOK, resp.HeaderCode) | ||||
| 	htmlDoc := NewHTMLParser(t, resp.Body) | ||||
| 
 | ||||
| 	link, exists := htmlDoc.doc.Find("form.ui.form").Attr("action") | ||||
| 	assert.True(t, exists, "The template has changed") | ||||
| 
 | ||||
| 	uid, exists := htmlDoc.doc.Find("#uid").Attr("value") | ||||
| 	assert.True(t, exists, "The template has changed") | ||||
| 
 | ||||
| 	req = NewRequestWithValues(t, "POST", link, map[string]string{ | ||||
| 		"_csrf":      htmlDoc.GetCSRF(), | ||||
| 		"clone_addr": cloneAddr, | ||||
| 		"uid":        uid, | ||||
| 		"repo_name":  repoName, | ||||
| 	}, | ||||
| 	) | ||||
| 	req.Header.Add("Content-Type", "application/x-www-form-urlencoded") | ||||
| 	resp = session.MakeRequest(t, req) | ||||
| 	assert.EqualValues(t, http.StatusFound, resp.HeaderCode) | ||||
| 
 | ||||
| 	return resp | ||||
| } | ||||
| 
 | ||||
| func TestRepoMigrate(t *testing.T) { | ||||
| 	prepareTestEnv(t) | ||||
| 	session := loginUser(t, "user2") | ||||
| 	testRepoMigrate(t, session, "https://github.com/go-gitea/git.git", "git") | ||||
| } | ||||
| 
 | ||||
| func BenchmarkRepoMigrate(b *testing.B) { | ||||
| 	samples := []struct { | ||||
| 		url  string | ||||
| 		name string | ||||
| 	}{ | ||||
| 		{url: "https://github.com/go-gitea/gitea.git", name: "gitea"}, | ||||
| 		{url: "https://github.com/ethantkoenig/manyfiles.git", name: "manyfiles"}, | ||||
| 		{url: "https://github.com/moby/moby.git", name: "moby"}, | ||||
| 		{url: "https://github.com/golang/go.git", name: "go"}, | ||||
| 		{url: "https://github.com/torvalds/linux.git", name: "linux"}, | ||||
| 	} | ||||
| 
 | ||||
| 	prepareTestEnv(b) | ||||
| 	session := loginUser(b, "user2") | ||||
| 	b.ResetTimer() | ||||
| 
 | ||||
| 	for _, s := range samples { | ||||
| 		b.Run(s.name, func(b *testing.B) { | ||||
| 			for i := 0; i < b.N; i++ { | ||||
| 				testRepoMigrate(b, session, s.url, s.name) | ||||
| 			} | ||||
| 
 | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user