From adcdeb36b0892c61832eb9add0b5cd6e9610e064 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Fri, 1 Aug 2014 13:06:37 -0400 Subject: [PATCH] online::clone::credentials support default credentials --- tests/online/clone.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/tests/online/clone.c b/tests/online/clone.c index 88aacbd43..0cd0f3115 100644 --- a/tests/online/clone.c +++ b/tests/online/clone.c @@ -226,9 +226,28 @@ void test_online_clone__cred_callback_failure_return_code_is_tunnelled(void) cl_git_fail_with(git_clone(&g_repo, remote_url, "./foo", &g_options), -1); } +int cred_default( + git_cred **cred, + const char *url, + const char *user_from_url, + unsigned int allowed_types, + void *payload) +{ + GIT_UNUSED(url); + GIT_UNUSED(user_from_url); + GIT_UNUSED(payload); + + if (!(allowed_types & GIT_CREDTYPE_DEFAULT)) + return 0; + + return git_cred_default_new(cred); +} + void test_online_clone__credentials(void) { - /* Remote URL environment variable must be set. User and password are optional. */ + /* Remote URL environment variable must be set. + * User and password are optional. + */ const char *remote_url = cl_getenv("GITTEST_REMOTE_URL"); git_cred_userpass_payload user_pass = { cl_getenv("GITTEST_REMOTE_USER"), @@ -237,8 +256,12 @@ void test_online_clone__credentials(void) if (!remote_url) return; - g_options.remote_callbacks.credentials = git_cred_userpass; - g_options.remote_callbacks.payload = &user_pass; + if (cl_getenv("GITTEST_REMOTE_DEFAULT")) { + g_options.remote_callbacks.credentials = cred_default; + } else { + g_options.remote_callbacks.credentials = git_cred_userpass; + g_options.remote_callbacks.payload = &user_pass; + } cl_git_pass(git_clone(&g_repo, remote_url, "./foo", &g_options)); git_repository_free(g_repo); g_repo = NULL;