| #include "clar_libgit2.h" |
| |
| #include "git2/cred_helpers.h" |
| |
| void test_network_cred__stock_userpass_validates_args(void) |
| { |
| git_cred_userpass_payload payload = {0}; |
| |
| cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, NULL)); |
| |
| payload.username = "user"; |
| cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, &payload)); |
| |
| payload.username = NULL; |
| payload.username = "pass"; |
| cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, &payload)); |
| } |
| |
| void test_network_cred__stock_userpass_validates_that_method_is_allowed(void) |
| { |
| git_cred *cred; |
| git_cred_userpass_payload payload = {"user", "pass"}; |
| |
| cl_git_fail(git_cred_userpass(&cred, NULL, NULL, 0, &payload)); |
| cl_git_pass(git_cred_userpass(&cred, NULL, NULL, GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload)); |
| cred->free(cred); |
| } |
| |
| void test_network_cred__stock_userpass_properly_handles_username_in_url(void) |
| { |
| git_cred *cred; |
| git_cred_userpass_plaintext *plain; |
| git_cred_userpass_payload payload = {"alice", "password"}; |
| |
| cl_git_pass(git_cred_userpass(&cred, NULL, NULL, GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload)); |
| plain = (git_cred_userpass_plaintext*)cred; |
| cl_assert_equal_s(plain->username, "alice"); |
| cred->free(cred); |
| |
| cl_git_pass(git_cred_userpass(&cred, NULL, "bob", GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload)); |
| plain = (git_cred_userpass_plaintext*)cred; |
| cl_assert_equal_s(plain->username, "alice"); |
| cred->free(cred); |
| |
| payload.username = NULL; |
| cl_git_pass(git_cred_userpass(&cred, NULL, "bob", GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload)); |
| plain = (git_cred_userpass_plaintext*)cred; |
| cl_assert_equal_s(plain->username, "bob"); |
| cred->free(cred); |
| } |