]> git.proxmox.com Git - libgit2.git/blob - tests/network/cred.c
6994cc0c3652fd71d8949392eed5ca97d6b83f5d
[libgit2.git] / tests / network / cred.c
1 #include "clar_libgit2.h"
2
3 #include "git2/cred_helpers.h"
4
5 void test_network_cred__stock_userpass_validates_args(void)
6 {
7 git_cred_userpass_payload payload = {0};
8
9 cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, NULL));
10
11 payload.username = "user";
12 cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, &payload));
13
14 payload.username = NULL;
15 payload.username = "pass";
16 cl_git_fail(git_cred_userpass(NULL, NULL, NULL, 0, &payload));
17 }
18
19 void test_network_cred__stock_userpass_validates_that_method_is_allowed(void)
20 {
21 git_cred *cred;
22 git_cred_userpass_payload payload = {"user", "pass"};
23
24 cl_git_fail(git_cred_userpass(&cred, NULL, NULL, 0, &payload));
25 cl_git_pass(git_cred_userpass(&cred, NULL, NULL, GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload));
26 cred->free(cred);
27 }
28
29 void test_network_cred__stock_userpass_properly_handles_username_in_url(void)
30 {
31 git_cred *cred;
32 git_cred_userpass_plaintext *plain;
33 git_cred_userpass_payload payload = {"alice", "password"};
34
35 cl_git_pass(git_cred_userpass(&cred, NULL, NULL, GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload));
36 plain = (git_cred_userpass_plaintext*)cred;
37 cl_assert_equal_s(plain->username, "alice");
38 cred->free(cred);
39
40 cl_git_pass(git_cred_userpass(&cred, NULL, "bob", GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload));
41 plain = (git_cred_userpass_plaintext*)cred;
42 cl_assert_equal_s(plain->username, "alice");
43 cred->free(cred);
44
45 payload.username = NULL;
46 cl_git_pass(git_cred_userpass(&cred, NULL, "bob", GIT_CREDTYPE_USERPASS_PLAINTEXT, &payload));
47 plain = (git_cred_userpass_plaintext*)cred;
48 cl_assert_equal_s(plain->username, "bob");
49 cred->free(cred);
50 }