#!perl use strict; use warnings; use Test::More 0.86; use HTTP::Tiny; my @tests = ( [ 'HtTp://Example.COM/', 'http', 'example.com', 80, '/', '', ], [ 'HtTp://Example.com:1024/', 'http', 'example.com', 1024, '/', '', ], [ 'http://example.com', 'http', 'example.com', 80, '/', '', ], [ 'http://example.com:', 'http', 'example.com', 80, '/', '', ], [ 'http://foo@example.com:', 'http', 'example.com', 80, '/', 'foo', ], [ 'http://foo:pass@example.com:', 'http', 'example.com', 80, '/', 'foo:pass', ], [ 'http://@example.com:', 'http', 'example.com', 80, '/', '', ], [ 'http://example.com?foo=bar', 'http', 'example.com', 80, '/?foo=bar', '', ], [ 'http://example.com?foo=bar#fragment', 'http', 'example.com', 80, '/?foo=bar', '', ], [ 'http://example.com/path?foo=bar', 'http', 'example.com', 80, '/path?foo=bar', '', ], [ 'http:///path?foo=bar', 'http', 'localhost', 80, '/path?foo=bar', '', ], [ 'HTTPS://example.com/', 'https', 'example.com', 443, '/', '', ], [ 'http://[::]:1024', 'http', '[::]', 1024, '/', '', ], [ 'xxx://foo/', 'xxx', 'foo', undef, '/', '', ], ); plan tests => scalar @tests; for my $test (@tests) { my $url = shift(@$test); my $got = [ HTTP::Tiny->_split_url($url) ]; my $exp = $test; is_deeply($got, $exp, "->split_url('$url')") or diag explain $got; }