Unverified Commit 31985775 by Edward Thomson Committed by GitHub

Merge pull request #4584 from libgit2/ethomson/bitbucket

online::clone: skip creds fallback test
parents 937e7e26 03c58778
...@@ -357,15 +357,45 @@ void test_online_clone__bitbucket_style(void) ...@@ -357,15 +357,45 @@ void test_online_clone__bitbucket_style(void)
cl_git_pass(git_clone(&g_repo, BB_REPO_URL, "./foo", &g_options)); cl_git_pass(git_clone(&g_repo, BB_REPO_URL, "./foo", &g_options));
git_repository_free(g_repo); g_repo = NULL; git_repository_free(g_repo); g_repo = NULL;
cl_fixture_cleanup("./foo"); cl_fixture_cleanup("./foo");
}
/* User and pass from URL */ void test_online_clone__bitbucket_uses_creds_in_url(void)
user_pass.password = "wrong"; {
git_cred_userpass_payload user_pass = {
"libgit2", "wrong"
};
g_options.fetch_opts.callbacks.credentials = git_cred_userpass;
g_options.fetch_opts.callbacks.payload = &user_pass;
/*
* Correct user and pass are in the URL; the (incorrect) creds in
* the `git_cred_userpass_payload` should be ignored.
*/
cl_git_pass(git_clone(&g_repo, BB_REPO_URL_WITH_PASS, "./foo", &g_options)); cl_git_pass(git_clone(&g_repo, BB_REPO_URL_WITH_PASS, "./foo", &g_options));
git_repository_free(g_repo); g_repo = NULL; git_repository_free(g_repo); g_repo = NULL;
cl_fixture_cleanup("./foo"); cl_fixture_cleanup("./foo");
}
/* Wrong password in URL, fall back to user_pass */ void test_online_clone__bitbucket_falls_back_to_specified_creds(void)
user_pass.password = "libgit2"; {
git_cred_userpass_payload user_pass = {
"libgit2", "libgit2"
};
g_options.fetch_opts.callbacks.credentials = git_cred_userpass;
g_options.fetch_opts.callbacks.payload = &user_pass;
/*
* TODO: as of March 2018, bitbucket sporadically fails with
* 403s instead of replying with a 401 - but only sometimes.
*/
cl_skip();
/*
* Incorrect user and pass are in the URL; the (correct) creds in
* the `git_cred_userpass_payload` should be used as a fallback.
*/
cl_git_pass(git_clone(&g_repo, BB_REPO_URL_WITH_WRONG_PASS, "./foo", &g_options)); cl_git_pass(git_clone(&g_repo, BB_REPO_URL_WITH_WRONG_PASS, "./foo", &g_options));
git_repository_free(g_repo); g_repo = NULL; git_repository_free(g_repo); g_repo = NULL;
cl_fixture_cleanup("./foo"); cl_fixture_cleanup("./foo");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment