diff options
| author | Ben Straub <bs@github.com> | 2013-01-31 14:04:21 -0800 |
|---|---|---|
| committer | Ben Straub <bs@github.com> | 2013-01-31 14:04:21 -0800 |
| commit | cf7038a65cb080a2946202fe6cbbe52aefae1fd4 (patch) | |
| tree | 379e3be397c781f7af8e06d89f4fb024bd8c05db /tests-clar/network/urlparse.c | |
| parent | 7602cb7c0ea0d69efd30640af234be20393bf57c (diff) | |
| download | libgit2-cf7038a65cb080a2946202fe6cbbe52aefae1fd4.tar.gz | |
Enhance url parsing to include passwords
Diffstat (limited to 'tests-clar/network/urlparse.c')
| -rw-r--r-- | tests-clar/network/urlparse.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tests-clar/network/urlparse.c b/tests-clar/network/urlparse.c new file mode 100644 index 000000000..29d0506df --- /dev/null +++ b/tests-clar/network/urlparse.c @@ -0,0 +1,78 @@ +#include "clar_libgit2.h" +#include "netops.h" + +void test_network_urlparse__trivial(void) +{ + char *host, *port, *user, *pass; + + 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_sz(user, NULL); + cl_assert_equal_sz(pass, NULL); +} + +void test_network_urlparse__user(void) +{ + char *host, *port, *user, *pass; + + 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_sz(pass, NULL); +} + +void test_network_urlparse__user_pass(void) +{ + char *host, *port, *user, *pass; + + /* 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) +{ + char *host, *port, *user, *pass; + + /* 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_sz(user, NULL); + cl_assert_equal_sz(pass, NULL); +} + +void test_network_urlparse__user_port(void) +{ + char *host, *port, *user, *pass; + + /* 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_sz(pass, NULL); +} + +void test_network_urlparse__user_pass_port(void) +{ + char *host, *port, *user, *pass; + + /* 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"); +} |
