| #include "clar_libgit2.h" |
| #include "config/config_helpers.h" |
| |
| #include "repository.h" |
| |
| static git_remote *_remote; |
| static git_repository *_repo; |
| |
| void test_network_remote_delete__initialize(void) |
| { |
| _repo = cl_git_sandbox_init("testrepo.git"); |
| |
| cl_git_pass(git_remote_load(&_remote, _repo, "test")); |
| } |
| |
| void test_network_remote_delete__cleanup(void) |
| { |
| git_remote_free(_remote); |
| cl_git_sandbox_cleanup(); |
| } |
| |
| void test_network_remote_delete__cannot_delete_an_anonymous_remote(void) |
| { |
| git_remote *remote; |
| |
| cl_git_pass(git_remote_create_anonymous(&remote, _repo, "git://github.com/libgit2/libgit2", NULL)); |
| |
| cl_git_fail(git_remote_delete(remote)); |
| |
| git_remote_free(remote); |
| } |
| |
| void test_network_remote_delete__remove_remote_tracking_branches(void) |
| { |
| git_reference *ref; |
| |
| cl_git_pass(git_remote_delete(_remote)); |
| cl_git_fail_with(GIT_ENOTFOUND, git_reference_lookup(&ref, _repo, "refs/remotes/test/master")); |
| } |
| |
| void test_network_remote_delete__remove_remote_configuration_settings(void) |
| { |
| cl_assert(count_config_entries_match(_repo, "remote\\.test\\.+") > 0); |
| |
| cl_git_pass(git_remote_delete(_remote)); |
| |
| cl_assert_equal_i(0, count_config_entries_match(_repo, "remote\\.test\\.+")); |
| } |
| |
| void test_network_remote_delete__remove_branch_upstream_configuration_settings(void) |
| { |
| assert_config_entry_existence(_repo, "branch.mergeless.remote", true); |
| assert_config_entry_existence(_repo, "branch.master.remote", true); |
| |
| cl_git_pass(git_remote_delete(_remote)); |
| |
| assert_config_entry_existence(_repo, "branch.mergeless.remote", false); |
| assert_config_entry_existence(_repo, "branch.mergeless.merge", false); |
| assert_config_entry_existence(_repo, "branch.master.remote", false); |
| assert_config_entry_existence(_repo, "branch.master.merge", false); |
| } |