aboutsummaryrefslogtreecommitdiffstats
path: root/integrations
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2017-11-03 01:51:03 +0800
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2017-11-02 18:51:03 +0100
commitf70758dec918b01f0895bb747decfdf110ae52bd (patch)
treed15d365b386a3369944f805edfad025e7550633a /integrations
parenteecaba20310483f64e0e4500fa3ac85e23ced18e (diff)
downloadgitea-f70758dec918b01f0895bb747decfdf110ae52bd.tar.gz
gitea-f70758dec918b01f0895bb747decfdf110ae52bd.zip
Add git clone test on integration test (#1682)
Diffstat (limited to 'integrations')
-rw-r--r--integrations/git_test.go60
-rw-r--r--integrations/integration_test.go7
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 {