summaryrefslogtreecommitdiff
path: root/tests-clar/network/urlparse.c
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2013-01-31 14:04:21 -0800
committerBen Straub <bs@github.com>2013-01-31 14:04:21 -0800
commitcf7038a65cb080a2946202fe6cbbe52aefae1fd4 (patch)
tree379e3be397c781f7af8e06d89f4fb024bd8c05db /tests-clar/network/urlparse.c
parent7602cb7c0ea0d69efd30640af234be20393bf57c (diff)
downloadlibgit2-cf7038a65cb080a2946202fe6cbbe52aefae1fd4.tar.gz
Enhance url parsing to include passwords
Diffstat (limited to 'tests-clar/network/urlparse.c')
-rw-r--r--tests-clar/network/urlparse.c78
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");
+}