summaryrefslogtreecommitdiff
path: root/tests/libgit2/network
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2022-11-23 13:57:07 +0000
committerGitHub <noreply@github.com>2022-11-23 13:57:07 +0000
commit12832bab7363e92bfa45d1ef3c3bc10495d71abd (patch)
tree6fd346ca691c1cd39a0e3058a9dfe5075d460eb8 /tests/libgit2/network
parentd0203b6484812a44331e99d6754c955844d49fdb (diff)
parent1ee9b1fb2d5bb60b1f02d3767282afa2b8c8c016 (diff)
downloadlibgit2-12832bab7363e92bfa45d1ef3c3bc10495d71abd.tar.gz
Merge pull request #6326 from libgit2/ethomson/url_parse
URL parsing for google-compatible URLs
Diffstat (limited to 'tests/libgit2/network')
-rw-r--r--tests/libgit2/network/url/joinpath.c194
-rw-r--r--tests/libgit2/network/url/parse.c557
-rw-r--r--tests/libgit2/network/url/pattern.c103
-rw-r--r--tests/libgit2/network/url/redirect.c147
-rw-r--r--tests/libgit2/network/url/scp.c321
-rw-r--r--tests/libgit2/network/url/valid.c17
6 files changed, 0 insertions, 1339 deletions
diff --git a/tests/libgit2/network/url/joinpath.c b/tests/libgit2/network/url/joinpath.c
deleted file mode 100644
index bf4557138..000000000
--- a/tests/libgit2/network/url/joinpath.c
+++ /dev/null
@@ -1,194 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-#include "netops.h"
-
-static git_net_url source, target;
-
-void test_network_url_joinpath__initialize(void)
-{
- memset(&source, 0, sizeof(source));
- memset(&target, 0, sizeof(target));
-}
-
-void test_network_url_joinpath__cleanup(void)
-{
- git_net_url_dispose(&source);
- git_net_url_dispose(&target);
-}
-
-void test_network_url_joinpath__target_paths_and_queries(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com/a/b"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/c/d"));
- cl_assert_equal_s(target.path, "/a/b/c/d");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/c/d?foo"));
- cl_assert_equal_s(target.path, "/a/b/c/d");
- cl_assert_equal_s(target.query, "foo");
- git_net_url_dispose(&target);
-}
-
-void test_network_url_joinpath__source_query_removed(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com/a/b?query&one&two"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/c/d"));
- cl_assert_equal_s(target.path, "/a/b/c/d");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/c/d?foo"));
- cl_assert_equal_s(target.path, "/a/b/c/d");
- cl_assert_equal_s(target.query, "foo");
- git_net_url_dispose(&target);
-}
-
-void test_network_url_joinpath__source_lacks_path(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/"));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, ""));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar?hello"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-}
-
-void test_network_url_joinpath__source_is_slash(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com/"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/"));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, ""));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar?hello"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-}
-
-
-void test_network_url_joinpath__source_has_query(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com?query"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/"));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, ""));
- cl_assert_equal_s(target.path, "/");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/asdf?hello"));
- cl_assert_equal_s(target.path, "/asdf");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/foo/bar?hello"));
- cl_assert_equal_s(target.path, "/foo/bar");
- cl_assert_equal_s(target.query, "hello");
- git_net_url_dispose(&target);
-}
-
-
-void test_network_url_joinpath__empty_query_ignored(void)
-{
- cl_git_pass(git_net_url_parse(&source, "http://example.com/foo"));
-
- cl_git_pass(git_net_url_joinpath(&target, &source, "/bar/baz?"));
- cl_assert_equal_s(target.path, "/foo/bar/baz");
- cl_assert_equal_p(target.query, NULL);
- git_net_url_dispose(&target);
-}
diff --git a/tests/libgit2/network/url/parse.c b/tests/libgit2/network/url/parse.c
deleted file mode 100644
index 8149ba52c..000000000
--- a/tests/libgit2/network/url/parse.c
+++ /dev/null
@@ -1,557 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-
-static git_net_url conndata;
-
-void test_network_url_parse__initialize(void)
-{
- memset(&conndata, 0, sizeof(conndata));
-}
-
-void test_network_url_parse__cleanup(void)
-{
- git_net_url_dispose(&conndata);
-}
-
-/* Hostname */
-
-void test_network_url_parse__hostname_trivial(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com/"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_implied_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_implied_root_custom_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com:42"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "42");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__hostname_implied_root_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com:"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_encoded_password(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@hostname.com:1234/"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "hostname.com");
- cl_assert_equal_s(conndata.port, "1234");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass/is@bad");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__hostname_user(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@example.com/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_user_pass(void)
-{
- /* user:pass@hostname.tld/resource */
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@example.com/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_port(void)
-{
- /* hostname.tld:port/resource */
- cl_git_pass(git_net_url_parse(&conndata,
- "https://example.com:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__hostname_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://example.com:/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__hostname_user_port(void)
-{
- /* user@hostname.tld:port/resource */
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@example.com:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__hostname_user_pass_port(void)
-{
- /* user:pass@hostname.tld:port/resource */
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@example.com:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-/* IPv4 addresses */
-
-void test_network_url_parse__ipv4_trivial(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1/"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_implied_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_implied_root_custom_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1:42"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "42");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv4_implied_root_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1:"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_encoded_password(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@192.168.1.1:1234/"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "1234");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass/is@bad");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv4_user(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@192.168.1.1/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_user_pass(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@192.168.1.1/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://192.168.1.1:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv4_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://192.168.1.1:/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv4_user_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@192.168.1.1:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv4_user_pass_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@192.168.1.1:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "192.168.1.1");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-/* IPv6 addresses */
-
-void test_network_url_parse__ipv6_trivial(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]/"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_implied_root(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_implied_root_custom_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]:42"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "42");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv6_implied_root_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]:"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_encoded_password(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@[fe80::dcad:beff:fe00:0001]:1234/"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "1234");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass/is@bad");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv6_user(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@[fe80::dcad:beff:fe00:0001]/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_user_pass(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@[fe80::dcad:beff:fe00:0001]/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://[fe80::dcad:beff:fe00:0001]:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv6_empty_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata, "http://[fe80::dcad:beff:fe00:0001]:/resource"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_parse__ipv6_user_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user@[fe80::dcad:beff:fe00:0001]:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv6_user_pass_port(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user:pass@[fe80::dcad:beff:fe00:0001]:9191/resource"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "fe80::dcad:beff:fe00:0001");
- cl_assert_equal_s(conndata.port, "9191");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "user");
- cl_assert_equal_s(conndata.password, "pass");
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_parse__ipv6_invalid_addresses(void)
-{
- /* Opening bracket missing */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]:42"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@fe80::dcad:beff:fe00:0001]:1234/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@fe80::dcad:beff:fe00:0001]/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@fe80::dcad:beff:fe00:0001]/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://fe80::dcad:beff:fe00:0001]:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001]:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@fe80::dcad:beff:fe00:0001]:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@fe80::dcad:beff:fe00:0001]:9191/resource"));
-
- /* Closing bracket missing */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001:42"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@[fe80::dcad:beff:fe00:0001:1234/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@[fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@[fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://[fe80::dcad:beff:fe00:0001:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://[fe80::dcad:beff:fe00:0001:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@[fe80::dcad:beff:fe00:0001:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@[fe80::dcad:beff:fe00:0001:9191/resource"));
- /* Both brackets missing */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001:42"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass%2fis%40bad@fe80::dcad:beff:fe00:0001:1234/"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@fe80::dcad:beff:fe00:0001/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://fe80::dcad:beff:fe00:0001:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "http://fe80::dcad:beff:fe00:0001:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user@fe80::dcad:beff:fe00:0001:9191/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "https://user:pass@fe80::dcad:beff:fe00:0001:9191/resource"));
-
- /* Invalid character inside address */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata, "http://[fe8o::dcad:beff:fe00:0001]/resource"));
-}
diff --git a/tests/libgit2/network/url/pattern.c b/tests/libgit2/network/url/pattern.c
deleted file mode 100644
index 5e4495f70..000000000
--- a/tests/libgit2/network/url/pattern.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-
-struct url_pattern {
- const char *url;
- const char *pattern;
- bool matches;
-};
-
-void test_network_url_pattern__single(void)
-{
- git_net_url url;
- size_t i;
-
- struct url_pattern url_patterns[] = {
- /* Wildcard matches */
- { "https://example.com/", "", false },
- { "https://example.com/", "*", true },
-
- /* Literal and wildcard matches */
- { "https://example.com/", "example.com", true },
- { "https://example.com/", ".example.com", true },
- { "https://example.com/", "*.example.com", true },
- { "https://www.example.com/", "www.example.com", true },
- { "https://www.example.com/", ".example.com", true },
- { "https://www.example.com/", "*.example.com", true },
-
- /* Literal and wildcard failures */
- { "https://example.com/", "example.org", false },
- { "https://example.com/", ".example.org", false },
- { "https://example.com/", "*.example.org", false },
- { "https://foo.example.com/", "www.example.com", false },
-
- /*
- * A port in the pattern is optional; if no port is
- * present, it matches *all* ports.
- */
- { "https://example.com/", "example.com:443", true },
- { "https://example.com/", "example.com:80", false },
- { "https://example.com:1443/", "example.com", true },
-
- /* Failures with similar prefix/suffix */
- { "https://texample.com/", "example.com", false },
- { "https://example.com/", "mexample.com", false },
- { "https://example.com:44/", "example.com:443", false },
- { "https://example.com:443/", "example.com:44", false },
- };
-
- for (i = 0; i < ARRAY_SIZE(url_patterns); i++) {
- cl_git_pass(git_net_url_parse(&url, url_patterns[i].url));
- cl_assert_(git_net_url_matches_pattern(&url, url_patterns[i].pattern) == url_patterns[i].matches, url_patterns[i].pattern);
- git_net_url_dispose(&url);
- }
-}
-
-void test_network_url_pattern__list(void)
-{
- git_net_url url;
- size_t i;
-
- struct url_pattern url_patterns[] = {
- /* Wildcard matches */
- { "https://example.com/", "", false },
- { "https://example.com/", "*", true },
- { "https://example.com/", ",example.com,", true },
- { "https://example.com/", "foo,,example.com,,bar", true },
- { "https://example.com/", "foo,,zzz,,*,,bar", true },
-
- /* Literals */
- { "https://example.com/", "example.com", true },
- { "https://example.com/", "foo.bar,example.com", true },
- { "https://example.com/", "foo.bar", false },
- { "https://example.com/", "foo.bar,example.org", false },
- { "https://www.example.com/", "foo.example.com,www.example.com,bar.example.com", true },
- { "https://www.example.com/", "foo.example.com,baz.example.com,bar.example.com", false },
- { "https://foo.example.com/", "www.example.com", false },
- { "https://foo.example.com/", "bar.example.com,www.example.com,", false },
-
- /* Wildcards */
- { "https://example.com/", ".example.com", true },
- { "https://example.com/", "*.example.com", true },
- { "https://example.com/", "foo.com,bar.com,.example.com", true },
- { "https://example.com/", ".foo.com,.bar.com,.example.com", true },
- { "https://example.com/", ".foo.com,.bar.com,asdf.com", false },
- { "https://example.com/", "*.foo,*.bar,*.example.com,*.asdf", true },
- { "https://example.com/", "*.foo,*.bar,*.asdf", false },
-
-
- /* Ports! */
- { "https://example.com/", "example.com:443", true },
- { "https://example.com/", "example.com:42,example.com:443,example.com:99", true },
- { "https://example.com/", "example.com:42,example.com:80,example.org:443", false },
- { "https://example.com:1443/", "example.com", true },
- { "https://example.com:44/", "example.com:443", false },
- { "https://example.com:443/", "example.com:44", false },
- };
-
- for (i = 0; i < ARRAY_SIZE(url_patterns); i++) {
- cl_git_pass(git_net_url_parse(&url, url_patterns[i].url));
- cl_assert_(git_net_url_matches_pattern_list(&url, url_patterns[i].pattern) == url_patterns[i].matches, url_patterns[i].pattern);
- git_net_url_dispose(&url);
- }
-}
diff --git a/tests/libgit2/network/url/redirect.c b/tests/libgit2/network/url/redirect.c
deleted file mode 100644
index a94db7daf..000000000
--- a/tests/libgit2/network/url/redirect.c
+++ /dev/null
@@ -1,147 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-#include "netops.h"
-
-static git_net_url conndata;
-
-void test_network_url_redirect__initialize(void)
-{
- memset(&conndata, 0, sizeof(conndata));
-}
-
-void test_network_url_redirect__cleanup(void)
-{
- git_net_url_dispose(&conndata);
-}
-
-void test_network_url_redirect__redirect_http(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "http://example.com/foo/bar/baz"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "http://example.com/foo/bar/baz", false, "bar/baz"));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/foo/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__redirect_ssl(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://example.com/foo/bar/baz"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "https://example.com/foo/bar/baz", false, "bar/baz"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/foo/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__redirect_leaves_root_path(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://example.com/foo/bar/baz"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "https://example.com/foo/bar/baz", false, "/foo/bar/baz"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__redirect_encoded_username_password(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://user%2fname:pass%40word%zyx%v@example.com/foo/bar/baz"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "https://user%2fname:pass%40word%zyx%v@example.com/foo/bar/baz", false, "bar/baz"));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/foo/");
- cl_assert_equal_s(conndata.username, "user/name");
- cl_assert_equal_s(conndata.password, "pass@word%zyx%v");
-}
-
-void test_network_url_redirect__redirect_cross_host_allowed(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://bar.com/bar/baz"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "https://foo.com/bar/baz", true, NULL));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "foo.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/bar/baz");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__redirect_cross_host_denied(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://bar.com/bar/baz"));
- cl_git_fail_with(git_net_url_apply_redirect(&conndata,
- "https://foo.com/bar/baz", false, NULL), -1);
-}
-
-void test_network_url_redirect__redirect_http_downgrade_denied(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://foo.com/bar/baz"));
- cl_git_fail_with(git_net_url_apply_redirect(&conndata,
- "http://foo.com/bar/baz", true, NULL), -1);
-}
-
-void test_network_url_redirect__redirect_relative(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "http://foo.com/bar/baz/biff"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "/zap/baz/biff?bam", true, NULL));
- cl_assert_equal_s(conndata.scheme, "http");
- cl_assert_equal_s(conndata.host, "foo.com");
- cl_assert_equal_s(conndata.port, "80");
- cl_assert_equal_s(conndata.path, "/zap/baz/biff?bam");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__redirect_relative_ssl(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://foo.com/bar/baz/biff"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "/zap/baz/biff?bam", true, NULL));
- cl_assert_equal_s(conndata.scheme, "https");
- cl_assert_equal_s(conndata.host, "foo.com");
- cl_assert_equal_s(conndata.port, "443");
- cl_assert_equal_s(conndata.path, "/zap/baz/biff?bam");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
-}
-
-void test_network_url_redirect__service_query_no_query_params_in_location(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://foo.com/bar/info/refs?service=git-upload-pack"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "/baz/info/refs", true, "/info/refs?service=git-upload-pack"));
- cl_assert_equal_s(conndata.path, "/baz");
-}
-
-void test_network_url_redirect__service_query_with_query_params_in_location(void)
-{
- cl_git_pass(git_net_url_parse(&conndata,
- "https://foo.com/bar/info/refs?service=git-upload-pack"));
- cl_git_pass(git_net_url_apply_redirect(&conndata,
- "/baz/info/refs?service=git-upload-pack", true, "/info/refs?service=git-upload-pack"));
- cl_assert_equal_s(conndata.path, "/baz");
-}
diff --git a/tests/libgit2/network/url/scp.c b/tests/libgit2/network/url/scp.c
deleted file mode 100644
index 8cdc832ae..000000000
--- a/tests/libgit2/network/url/scp.c
+++ /dev/null
@@ -1,321 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-
-static git_net_url conndata;
-
-void test_network_url_scp__initialize(void)
-{
- memset(&conndata, 0, sizeof(conndata));
-}
-
-void test_network_url_scp__cleanup(void)
-{
- git_net_url_dispose(&conndata);
-}
-
-/* Hostname */
-
-void test_network_url_scp__hostname_trivial(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "example.com:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__hostname_bracketed(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[example.com]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__hostname_root(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "example.com:/"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__hostname_user(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "git@example.com:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__hostname_user_bracketed(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[git@example.com]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__hostname_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[example.com:42]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "42");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__hostname_user_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[git@example.com:42]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "example.com");
- cl_assert_equal_s(conndata.port, "42");
- cl_assert_equal_s(conndata.path, "/resource");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__ipv4_trivial(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "192.168.99.88:/resource/a/b/c"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "192.168.99.88");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/a/b/c");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__ipv4_bracketed(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[192.168.99.88]:/resource/a/b/c"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "192.168.99.88");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/a/b/c");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__ipv4_user(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "git@192.168.99.88:/resource/a/b/c"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "192.168.99.88");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/a/b/c");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__ipv4_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[192.168.99.88:1111]:/resource/a/b/c"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "192.168.99.88");
- cl_assert_equal_s(conndata.port, "1111");
- cl_assert_equal_s(conndata.path, "/resource/a/b/c");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__ipv4_user_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[git@192.168.99.88:1111]:/resource/a/b/c"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "192.168.99.88");
- cl_assert_equal_s(conndata.port, "1111");
- cl_assert_equal_s(conndata.path, "/resource/a/b/c");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__ipv6_trivial(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[fe80::dcad:beff:fe00:0001]:/resource/foo"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/foo");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__ipv6_user(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "git@[fe80::dcad:beff:fe00:0001]:/resource/foo"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/foo");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__ipv6_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[[fe80::dcad:beff:fe00:0001]:99]:/resource/foo"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "99");
- cl_assert_equal_s(conndata.path, "/resource/foo");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__ipv6_user_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[git@[fe80::dcad:beff:fe00:0001]:99]:/resource/foo"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "99");
- cl_assert_equal_s(conndata.path, "/resource/foo");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 0);
-}
-
-void test_network_url_scp__hexhost_and_port(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[fe:22]:/resource/foo"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "fe");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "/resource/foo");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__malformed_ipv6_one(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "fe80::dcad:beff:fe00:0001]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "fe80");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, ":dcad:beff:fe00:0001]:/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__malformed_ipv6_two(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "[fe80::dcad:beff:fe00:0001]:42]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "42]:/resource");
- cl_assert_equal_p(conndata.username, NULL);
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__malformed_ipv6_with_user(void)
-{
- cl_git_pass(git_net_url_parse_scp(&conndata, "git@[fe80::dcad:beff:fe00:0001]:42]:/resource"));
- cl_assert_equal_s(conndata.scheme, "ssh");
- cl_assert_equal_s(conndata.host, "[fe80::dcad:beff:fe00:0001]");
- cl_assert_equal_s(conndata.port, "22");
- cl_assert_equal_s(conndata.path, "42]:/resource");
- cl_assert_equal_s(conndata.username, "git");
- cl_assert_equal_p(conndata.password, NULL);
- cl_assert_equal_i(git_net_url_is_default_port(&conndata), 1);
-}
-
-void test_network_url_scp__invalid_addresses(void)
-{
- /* Path is required */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "example.com"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "example.com:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[example.com:42]:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[git@example.com:42]:"));
-
- /* Host is required */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- ":"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- ":foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "git@:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[]:"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "git@[]:"));
-
- /* User is required if specified */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "@example.com:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "@:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[@localhost:22]:foo"));
-
- /* Port is required in brackets */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[example.com:]:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[git@example.com:]:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[fe:]:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[@localhost]:foo"));
-
- /* Extra brackets are disallowed */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[git@[[fe80::dcad:beff:fe00:0001]]:42]:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[[git@[fe80::dcad:beff:fe00:0001]]:42]:foo"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[[git@[fe80::dcad:beff:fe00:0001]:42]]:foo"));
-
- /* Closing bracket missing */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[fe80::dcad:beff:fe00:0001:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[[fe80::dcad:beff:fe00:0001]:42:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[git@[fe80::dcad:beff:fe00:0001]:42:/resource"));
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse_scp(&conndata,
- "[git@[fe80::dcad:beff:fe00:0001:42]:/resource"));
-
- /* Invalid character inside address */
- cl_git_fail_with(GIT_EINVALIDSPEC, git_net_url_parse(&conndata,
- "[fe8o::dcad:beff:fe00:0001]:/resource"));
-}
diff --git a/tests/libgit2/network/url/valid.c b/tests/libgit2/network/url/valid.c
deleted file mode 100644
index 2b2cb7ba4..000000000
--- a/tests/libgit2/network/url/valid.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "clar_libgit2.h"
-#include "net.h"
-
-void test_network_url_valid__test(void)
-{
- cl_assert(git_net_str_is_url("http://example.com/"));
- cl_assert(git_net_str_is_url("file://localhost/tmp/foo/"));
- cl_assert(git_net_str_is_url("ssh://user@host:42/tmp"));
- cl_assert(git_net_str_is_url("git+ssh://user@host:42/tmp"));
- cl_assert(git_net_str_is_url("ssh+git://user@host:42/tmp"));
- cl_assert(git_net_str_is_url("https://user:pass@example.com/foo/bar"));
-
- cl_assert(!git_net_str_is_url("host:foo.git"));
- cl_assert(!git_net_str_is_url("host:/foo.git"));
- cl_assert(!git_net_str_is_url("[host:42]:/foo.git"));
- cl_assert(!git_net_str_is_url("[user@host:42]:/foo.git"));
-}