diff options
Diffstat (limited to 'tests/network/url/redirect.c')
-rw-r--r-- | tests/network/url/redirect.c | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/tests/network/url/redirect.c b/tests/network/url/redirect.c deleted file mode 100644 index 2c0b614d9..000000000 --- a/tests/network/url/redirect.c +++ /dev/null @@ -1,129 +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", "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", "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", "/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", "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_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", 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", 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", 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", 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", "/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", "/info/refs?service=git-upload-pack")); - cl_assert_equal_s(conndata.path, "/baz"); -} |