#include "clar_libgit2.h" #include "remote.h" #include "repository.h" #define REPO_PATH "testrepo2/.gitted" #define REMOTE_ORIGIN "origin" #define REMOTE_INSTEADOF "insteadof-test" static git_repository *g_repo; static git_remote *g_remote; void test_remote_insteadof__initialize(void) { g_repo = NULL; g_remote = NULL; } void test_remote_insteadof__cleanup(void) { git_repository_free(g_repo); git_remote_free(g_remote); } void test_remote_insteadof__url_insteadof_not_applicable(void) { cl_git_pass(git_repository_open(&g_repo, cl_fixture(REPO_PATH))); cl_git_pass(git_remote_lookup(&g_remote, g_repo, REMOTE_ORIGIN)); cl_assert_equal_s( git_remote_url(g_remote), "https://github.com/libgit2/false.git"); } void test_remote_insteadof__url_insteadof_applicable(void) { cl_git_pass(git_repository_open(&g_repo, cl_fixture(REPO_PATH))); cl_git_pass(git_remote_lookup(&g_remote, g_repo, REMOTE_INSTEADOF)); cl_assert_equal_s( git_remote_url(g_remote), "http://github.com/libgit2/libgit2"); } void test_remote_insteadof__pushurl_insteadof_not_applicable(void) { cl_git_pass(git_repository_open(&g_repo, cl_fixture(REPO_PATH))); cl_git_pass(git_remote_lookup(&g_remote, g_repo, REMOTE_ORIGIN)); cl_assert_equal_p(git_remote_pushurl(g_remote), NULL); } void test_remote_insteadof__pushurl_insteadof_applicable(void) { cl_git_pass(git_repository_open(&g_repo, cl_fixture(REPO_PATH))); cl_git_pass(git_remote_lookup(&g_remote, g_repo, REMOTE_INSTEADOF)); cl_assert_equal_s( git_remote_pushurl(g_remote), "git@github.com:libgit2/libgit2"); } void test_remote_insteadof__anonymous_remote(void) { cl_git_pass(git_repository_open(&g_repo, cl_fixture(REPO_PATH))); cl_git_pass(git_remote_create_anonymous(&g_remote, g_repo, "http://example.com/libgit2/libgit2")); cl_assert_equal_s( git_remote_url(g_remote), "http://github.com/libgit2/libgit2"); cl_assert_equal_p(git_remote_pushurl(g_remote), NULL); }