diff options
Diffstat (limited to 'integrations/git_test.go')
-rw-r--r-- | integrations/git_test.go | 60 |
1 files changed, 60 insertions, 0 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"))) + }) +} |