| #include "clar_libgit2.h" |
| #include "netops.h" |
| |
| char *host, *port, *user, *pass; |
| |
| void test_network_urlparse__initialize(void) |
| { |
| host = port = user = pass = NULL; |
| } |
| |
| void test_network_urlparse__cleanup(void) |
| { |
| #define FREE_AND_NULL(x) if (x) { git__free(x); x = NULL; } |
| FREE_AND_NULL(host); |
| FREE_AND_NULL(port); |
| FREE_AND_NULL(user); |
| FREE_AND_NULL(pass); |
| } |
| |
| void test_network_urlparse__trivial(void) |
| { |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "example.com/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "8080"); |
| cl_assert_equal_p(user, NULL); |
| cl_assert_equal_p(pass, NULL); |
| } |
| |
| void test_network_urlparse__user(void) |
| { |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "user@example.com/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "8080"); |
| cl_assert_equal_s(user, "user"); |
| cl_assert_equal_p(pass, NULL); |
| } |
| |
| void test_network_urlparse__user_pass(void) |
| { |
| /* user:pass@hostname.tld/resource */ |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "user:pass@example.com/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "8080"); |
| cl_assert_equal_s(user, "user"); |
| cl_assert_equal_s(pass, "pass"); |
| } |
| |
| void test_network_urlparse__port(void) |
| { |
| /* hostname.tld:port/resource */ |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "example.com:9191/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "9191"); |
| cl_assert_equal_p(user, NULL); |
| cl_assert_equal_p(pass, NULL); |
| } |
| |
| void test_network_urlparse__user_port(void) |
| { |
| /* user@hostname.tld:port/resource */ |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "user@example.com:9191/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "9191"); |
| cl_assert_equal_s(user, "user"); |
| cl_assert_equal_p(pass, NULL); |
| } |
| |
| void test_network_urlparse__user_pass_port(void) |
| { |
| /* user:pass@hostname.tld:port/resource */ |
| cl_git_pass(gitno_extract_url_parts(&host, &port, &user, &pass, |
| "user:pass@example.com:9191/resource", "8080")); |
| cl_assert_equal_s(host, "example.com"); |
| cl_assert_equal_s(port, "9191"); |
| cl_assert_equal_s(user, "user"); |
| cl_assert_equal_s(pass, "pass"); |
| } |