diff options
| author | Carlos Martín Nieto <[email protected]> | 2015-08-31 13:05:36 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2015-08-31 13:05:36 +0200 |
| commit | e4b222288827c852e27f576e591d9630245d4b21 (patch) | |
| tree | 462d6a45e7b6ea01018d61221558e9e4babb8c50 /clone_test.go | |
| parent | 3d15c877d8d34c4268a7455bc60129681fa09100 (diff) | |
| parent | 0b530c15cfff492e61c7afae55888fe1eeffe214 (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.go | 45 |
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") + } +} |
