Date-LastModified
view release on metacpan or search on metacpan
test-dlmup.pl view on Meta::CPAN
# ------ set # of tests
plan(tests => 15);
# ------ no arguments
$output = join(" ", `bin/dlmup 2>&1`);
like($output, qr/usage: dlmup/, "no arguments");
# ------ bad config file from env
$output = join(" ", `DLMUPCFG=never-exist.cfg;export DLMUPCFG;bin/dlmup x 2>&1`);
like($output, qr/can't read 'never-exist.cfg'/, "bad config file from env");
# ------ bad config file direct
$output = join(" ", `bin/dlmup -fnot-exists.cfg x 2>&1`);
like($output, qr/can't read 'not-exists.cfg'/, "bad config file direct");
# ------ standard output
$stat = stat("$tmpdir/dir-new/file-new");
@date_time = localtime($stat->mtime);
$date = strftime("%Y-%M-%d %H:%m:%S", @date_time);
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "%Y-%M-%d %H:%m:%S" 2>&1`);
like($output, qr/$date/, "standard output");
# ------ standard output, friendly+different format
$date = strftime("%B %e, %Y", @date_time);
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "%B %e, %Y" 2>&1`);
like($output, qr/$date/, "standard output, friendly+different format");
# ------ verbose (first arg)
$output = join(" ", `bin/dlmup -v -f$tmpdir/datelastmod-1file.cfg "%B %e, %Y" 2>&1`);
like($output, qr#$tmpdir/dir-new/file-new#,
"verbose (first arg)");
# ------ verbose (last arg)
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg -v "%B %e, %Y" 2>&1`);
like($output, qr#$tmpdir/dir-new/file-new#,
"verbose (last arg)");
# ------ ignore arguments
$output = join(" ", `bin/dlmup -v -ignoreme -f$tmpdir/datelastmod-1file.cfg "%B %e, %Y" 2>&1`);
like($output, qr#$tmpdir/dir-new/file-new#,
"ignore arguments");
# ------ missing input file
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "%B %e, %Y" never-exist.zed 2>&1`);
like($output, qr/can't open 'never-exist.zed' because/,
"missing input file");
# ------ can't create output file
create_test_file("unwritable.html.dlmup");
chmod(0400, "unwritable.html.dlmup")
|| die "can't chmod 0400 unwritable.html.dlmup because: $!\n";
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "%B %e, %Y" unwritable.html 2>&1`);
like($output, qr/can't create 'unwritable.html.dlmup' because/,
"can't create output file");
# ------ fail on first of multiple files
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "%B %e, %Y" unwritable.html never-exist.zed 2>&1`);
like($output, qr/can't create 'unwritable.html.dlmup' because/,
"fail on first of multiple files (part 1)");
unlike($output, qr/can't open 'never-exist.zed'/,
"fail on first of multiple files (part 2)");
# ------ fail on last of multiple files
create_test_file("first.txt");
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "%B %e, %Y" first.txt unwritable.html 2>&1`);
like($output, qr/can't create 'unwritable.html.dlmup' because/,
"fail on last of multiple files");
# ------ changed one file
create_test_file("one-file.txt");
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "Last updated %B %e, %Y" one-file.txt 2>&1`);
ok(grep_file("Last updated $date", "one-file.txt"),
"changed one file");
# ------ changed multiple files
create_test_file("two-file-1.txt");
create_test_file("two-file-2.txt");
$output = join(" ", `bin/dlmup -f$tmpdir/datelastmod-1file.cfg "Last updated \\w+ \\d+, \\d+" "Last updated %B %e, %Y" two-file-1.txt two-file-2.txt 2>&1`);
ok( grep_file("Last updated $date", "two-file-1.txt")
&& grep_file("Last updated $date", "two-file-2.txt"),
"changed multiple files");
( run in 2.184 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )