use strict;
use Test::Builder::Tester;
use Test::More tests => 19; # includes those in t/setup_common
use Test::File;
my $test_directory = 'test_files';
SKIP: {
skip "setup already done", 5 if -d $test_directory;
require "t/setup_common";
};
chdir $test_directory or print "bail out! Could not change directories: $!";
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Subroutines are defined
ok( defined &Test::File::_dm_skeleton, "_dm_skeleton is defined" );
my $readable = 'readable';
my $not_there = 'not_there';
my $test_name = 'This is my test name';
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fake a non-multi-user OS
{
local $^O = 'dos';
ok( Test::File::_obviously_non_multi_user(), "Is not multi user" );
is( Test::File::_dm_skeleton(), 'skip', "Skip on single user systems" );
is( Test::File::_dm_skeleton($readable), 'skip', "Skip on single user systems" );
is( Test::File::_dm_skeleton($not_there), 'skip', "Skip on single user systems" );
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fake a multi-user OS with existing file
{
local $^O = 'MSWin32';
diag "$^O\n";;
ok( ! Test::File::_obviously_non_multi_user(), "Is multi user" );
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fake a multi-user OS with non-existing file
{
local $^O = 'MSWin32';
ok( ! Test::File::_obviously_non_multi_user(), "Is multi user" );
test_out( "not ok 1" );
test_diag(
"File [$not_there] does not exist!\n" .
"# Failed test at $0 line " . line_num(+4) . "."
);
Test::File::_dm_skeleton( $not_there );
test_test();
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fake a multi-user OS with no argument
{
local $^O = 'MSWin32';
ok( ! Test::File::_obviously_non_multi_user(), "Is multi user" );
test_out( "not ok 1" );
test_diag(
"File name not specified!\n" .
"# Failed test at $0 line " . line_num(+4) . "."
);
Test::File::_dm_skeleton();
test_test();
}
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
END {
chdir '..' or print "bail out! Could not change directories: $!";
unlink glob( "test_files/*" );
rmdir "test_files";
}