--- /dev/null
+// 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")))
+ })
+}
"net/url"
"os"
"path"
+ "path/filepath"
"strings"
"testing"
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)
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 {