diff --git a/generate/input/descriptor.json b/generate/input/descriptor.json index a1586bd76..b9499381b 100644 --- a/generate/input/descriptor.json +++ b/generate/input/descriptor.json @@ -1348,9 +1348,6 @@ "sideband_progress": { "ignore": true }, - "transfer_progress": { - "ignore": true - }, "update_tips": { "ignore": true } diff --git a/generate/templates/partials/field_accessors.cc b/generate/templates/partials/field_accessors.cc index 88975a911..b5a6f5968 100644 --- a/generate/templates/partials/field_accessors.cc +++ b/generate/templates/partials/field_accessors.cc @@ -84,6 +84,7 @@ baton->{{ arg.name }} = {{ arg.name }}; {% endeach %} + baton->result = 0; baton->req.data = baton; baton->done = false; diff --git a/test/tests/remote.js b/test/tests/remote.js index da0ed13b5..a74245ddf 100644 --- a/test/tests/remote.js +++ b/test/tests/remote.js @@ -10,11 +10,13 @@ describe("Remote", function() { var reposPath = local("../repos/workdir/.git"); var url = "https://github.com/nodegit/test"; + var url2 = "https://github.com/nodegit/test2"; function removeOrigins(repository) { Remote.delete(repository, "origin1"); Remote.delete(repository, "origin2"); Remote.delete(repository, "origin3"); + Remote.delete(repository, "test2"); } before(function() { @@ -110,6 +112,40 @@ describe("Remote", function() { }); }); + it("can monitor transfer progress while downloading", function() { + // Set a reasonable timeout here now that our repository has grown. + this.timeout(600000); + + var repo = this.repository; + var wasCalled = false; + + return Remote.create(repo, "test2", url2) + .then(function() { + return repo.getRemote("test2"); + }) + .then(function(remote) { + remote.setCallbacks({ + credentials: function(url, userName) { + return NodeGit.Cred.sshKeyFromAgent(userName); + }, + certificateCheck: function() { + return 1; + }, + + transferProgress: function() { + wasCalled = true; + } + }); + + return remote.fetch(null, repo.defaultSignature(), null); + }) + .then(function() { + assert.ok(wasCalled); + + Remote.delete(repo, "test2"); + }); + }); + it("can fetch from a remote", function() { return this.repository.fetch("origin", { credentials: function(url, userName) {