summaryrefslogtreecommitdiff
path: root/clone_test.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2015-08-31 13:05:36 +0200
committerCarlos Martín Nieto <[email protected]>2015-08-31 13:05:36 +0200
commite4b222288827c852e27f576e591d9630245d4b21 (patch)
tree462d6a45e7b6ea01018d61221558e9e4babb8c50 /clone_test.go
parent3d15c877d8d34c4268a7455bc60129681fa09100 (diff)
parent0b530c15cfff492e61c7afae55888fe1eeffe214 (diff)
Merge pull request #242 from pks-t/fix-populate-clone-options
clone: do not free clone options' payload
Diffstat (limited to 'clone_test.go')
-rw-r--r--clone_test.go45
1 files changed, 44 insertions, 1 deletions
diff --git a/clone_test.go b/clone_test.go
index fd83fec..86fced8 100644
--- a/clone_test.go
+++ b/clone_test.go
@@ -5,8 +5,11 @@ import (
"testing"
)
-func TestClone(t *testing.T) {
+const (
+ REMOTENAME = "testremote"
+)
+func TestClone(t *testing.T) {
repo := createTestRepo(t)
defer cleanupTestRepo(t, repo)
@@ -20,3 +23,43 @@ func TestClone(t *testing.T) {
checkFatal(t, err)
}
+
+func TestCloneWithCallback(t *testing.T) {
+ testPayload := 0
+
+ repo := createTestRepo(t)
+ defer cleanupTestRepo(t, repo)
+
+ seedTestRepo(t, repo)
+
+ path, err := ioutil.TempDir("", "git2go")
+ checkFatal(t, err)
+
+ opts := CloneOptions{
+ Bare: true,
+ RemoteCreateCallback: func(r Repository, name, url string) (*Remote, ErrorCode) {
+ testPayload += 1
+
+ remote, err := r.CreateRemote(REMOTENAME, url)
+ if err != nil {
+ return nil, ErrGeneric
+ }
+
+ return remote, ErrOk
+ },
+ }
+
+ repo2, err := Clone(repo.Path(), path, &opts)
+ defer cleanupTestRepo(t, repo2)
+
+ checkFatal(t, err)
+
+ if testPayload != 1 {
+ t.Fatal("Payload's value has not been changed")
+ }
+
+ remote, err := repo2.LookupRemote(REMOTENAME)
+ if err != nil || remote == nil {
+ t.Fatal("Remote was not created properly")
+ }
+}