diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2017-11-03 01:51:03 +0800 |
---|---|---|
committer | Kim "BKC" Carlbäcker <kim.carlbacker@gmail.com> | 2017-11-02 18:51:03 +0100 |
commit | f70758dec918b01f0895bb747decfdf110ae52bd (patch) | |
tree | d15d365b386a3369944f805edfad025e7550633a /integrations | |
parent | eecaba20310483f64e0e4500fa3ac85e23ced18e (diff) | |
download | gitea-f70758dec918b01f0895bb747decfdf110ae52bd.tar.gz gitea-f70758dec918b01f0895bb747decfdf110ae52bd.zip |
Add git clone test on integration test (#1682)
Diffstat (limited to 'integrations')
-rw-r--r-- | integrations/git_test.go | 60 | ||||
-rw-r--r-- | integrations/integration_test.go | 7 |
2 files changed, 65 insertions, 2 deletions
diff --git a/integrations/git_test.go b/integrations/git_test.go new file mode 100644 index 0000000000..5e6334d20a --- /dev/null +++ b/integrations/git_test.go @@ -0,0 +1,60 @@ +// 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 ( + "context" + "fmt" + "io/ioutil" + "net" + "net/http" + "os" + "path/filepath" + "testing" + "time" + + "code.gitea.io/git" + + "github.com/Unknwon/com" + "github.com/stretchr/testify/assert" +) + +func onGiteaWebRun(t *testing.T, callback func(*testing.T, string)) { + s := http.Server{ + Handler: mac, + } + + listener, err := net.Listen("tcp", "") + assert.NoError(t, err) + + defer func() { + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + s.Shutdown(ctx) + cancel() + }() + + go s.Serve(listener) + + _, port, err := net.SplitHostPort(listener.Addr().String()) + assert.NoError(t, err) + + callback(t, fmt.Sprintf("http://localhost:%s/", port)) +} + +func TestClone_ViaHTTP_NoLogin(t *testing.T) { + prepareTestEnv(t) + + onGiteaWebRun(t, func(t *testing.T, urlPrefix string) { + dstPath, err := ioutil.TempDir("", "repo1") + assert.NoError(t, err) + defer os.RemoveAll(dstPath) + + err = git.Clone(fmt.Sprintf("%suser2/repo1.git", urlPrefix), + dstPath, git.CloneRepoOptions{}) + assert.NoError(t, err) + + assert.True(t, com.IsExist(filepath.Join(dstPath, "README.md"))) + }) +} diff --git a/integrations/integration_test.go b/integrations/integration_test.go index 55014b5a41..eae0638587 100644 --- a/integrations/integration_test.go +++ b/integrations/integration_test.go @@ -16,6 +16,7 @@ import ( "net/url" "os" "path" + "path/filepath" "strings" "testing" @@ -51,7 +52,7 @@ func TestMain(m *testing.M) { err := models.InitFixtures( helper, - "models/fixtures/", + path.Join(filepath.Dir(setting.AppPath), "models/fixtures/"), ) if err != nil { fmt.Printf("Error initializing test database: %v\n", err) @@ -134,7 +135,9 @@ func initIntegrationTest() { func prepareTestEnv(t testing.TB) { assert.NoError(t, models.LoadFixtures()) assert.NoError(t, os.RemoveAll(setting.RepoRootPath)) - assert.NoError(t, com.CopyDir("integrations/gitea-repositories-meta", setting.RepoRootPath)) + + assert.NoError(t, com.CopyDir(path.Join(filepath.Dir(setting.AppPath), "integrations/gitea-repositories-meta"), + setting.RepoRootPath)) } type TestSession struct { |