summaryrefslogtreecommitdiff
path: root/tests-clar/network/fetch.c
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-11-24 19:05:39 +0100
committernulltoken <emeric.fermas@gmail.com>2012-11-29 00:05:16 +0100
commit046a1573ffa2188ef23b535115bc6035960a71e0 (patch)
treef8cc908b7eda6cae123122d686abd74026ebfb67 /tests-clar/network/fetch.c
parent35108a216ebc06fb34e8dcfd5082bc9fc2e80417 (diff)
downloadlibgit2-046a1573ffa2188ef23b535115bc6035960a71e0.tar.gz
fetch: enhance test coverage
Diffstat (limited to 'tests-clar/network/fetch.c')
-rw-r--r--tests-clar/network/fetch.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests-clar/network/fetch.c b/tests-clar/network/fetch.c
index b80222f56..b9eaedf43 100644
--- a/tests-clar/network/fetch.c
+++ b/tests-clar/network/fetch.c
@@ -75,3 +75,36 @@ void test_network_fetch__no_tags_http(void)
{
do_fetch("http://github.com/libgit2/TestGitRepository.git", GIT_REMOTE_DOWNLOAD_TAGS_NONE, 3);
}
+
+static void transferProgressCallback(const git_transfer_progress *stats, void *payload)
+{
+ bool *invoked = (bool *)payload;
+ *invoked = true;
+}
+
+void test_network_fetch__doesnt_retrieve_a_pack_when_the_repository_is_up_to_date(void)
+{
+ git_repository *_repository;
+ git_remote *remote;
+ bool invoked = false;
+
+ cl_git_pass(git_clone_bare(&_repository, "https://github.com/libgit2/TestGitRepository.git", "./fetch/lg2", NULL, NULL));
+ git_repository_free(_repository);
+
+ cl_git_pass(git_repository_open(&_repository, "./fetch/lg2"));
+
+ cl_git_pass(git_remote_load(&remote, _repository, "origin"));
+ cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH));
+
+ cl_assert_equal_i(false, invoked);
+
+ cl_git_pass(git_remote_download(remote, &transferProgressCallback, &invoked));
+
+ cl_assert_equal_i(false, invoked);
+
+ cl_git_pass(git_remote_update_tips(remote));
+ git_remote_disconnect(remote);
+
+ git_remote_free(remote);
+ git_repository_free(_repository);
+}