Test-Simple
view release on metacpan or search on metacpan
t/modules/V1.t view on Meta::CPAN
use PerlIO;
my @subs = qw{
ok pass fail diag note todo skip
plan skip_all done_testing bail_out
gen_event
intercept context
cmp_ok
can_ok isa_ok DOES_ok
set_encoding
imported_ok not_imported_ok
ref_ok ref_is ref_is_not
mock mocked
dies lives try_ok
is like isnt unlike
match mismatch validator
hash array object meta number string bool check_isa
in_set not_in_set check_set
item field call call_list call_hash prop check all_items all_keys all_vals all_values
etc end filter_items
T F D DF E DNE FDNE U L
event fail_events
exact_ref
is_refcount is_oneref refcount
subtest
};
T2->not_imported_ok(qw/ok like done_testing/);
T2->imported_ok('subtest');
T2->ok(!T2->can('Dumper'), "Cannot 'Dumper'");
T2->HANDLE_INCLUDE('Data::Dumper', 'Dumper');
T2->can_ok(T2, ['Dumper'], "Added Dumper to the can list");
T2->can_ok(T2(), [@subs], "Handle can do it all");
T2->isa_ok(T2(), ['Test2::Handle'], "Got a handle instance");
T2->ok(Test2::Plugin::ExitSummary->active, "Exit Summary is loaded");
T2->ok(!defined(Test2::Plugin::SRand->seed), "SRand is not loaded");
subtest srand => sub {
Test2::V1->import('-srand', '-no-T2');
T2->ok(defined(Test2::Plugin::SRand->seed), "SRand is loaded");
};
subtest strictures => sub {
local $^H;
my $hbefore = $^H;
Test2::V1->import('-strict', '-no-T2');
my $hafter = $^H;
my $strict = do { local $^H; strict->import(); $^H };
T2->ok($strict, 'sanity, got $^H value for strict');
T2->ok(!($hbefore & $strict), "strict is not on before loading Test2::V0");
T2->ok(($hafter & $strict), "strict is on after loading Test2::V0");
};
subtest warnings => sub {
local ${^WARNING_BITS};
my $wbefore = ${^WARNING_BITS} || '';
Test2::V1->import('-warnings', '-no-T2');
my $wafter = ${^WARNING_BITS} || '';
my $warnings = do { local ${^WARNING_BITS}; 'warnings'->import(); ${^WARNING_BITS} || '' };
T2->ok($warnings, 'sanity, got ${^WARNING_BITS} value for warnings');
T2->ok($wbefore ne $warnings, "warnings are not on before loading Test2::V0") || diag($wbefore, "\n", $warnings);
T2->ok(($wafter & $warnings), "warnings are on after loading Test2::V0");
};
subtest utf8 => sub {
T2->ok(!utf8::is_utf8("ç¸"), "utf8 pragma is off");
eval <<' EOT';
package A::UTF8::Thingy;
use Test2::V1 '-utf8';
T2->ok(utf8::is_utf8("ç¸"), "utf8 pragma is on");
# -2 cause the subtest adds to the stack
my $format = test2_stack()->[-2]->format;
my $handles = $format->handles or return;
for my $hn (0 .. @$handles) {
my $h = $handles->[$hn] || next;
my $layers = { map {$_ => 1} PerlIO::get_layers($h) };
T2->ok($layers->{utf8}, "utf8 is on for formatter handle $hn");
}
EOT
};
subtest "rename imports" => sub {
package A::Consumer;
use Test2::V1 '-import', '!subtest', subtest => {-as => 'a_subtest'};
imported_ok('a_subtest');
not_imported_ok('subtest');
};
subtest "no meta" => sub {
package B::Consumer;
use Test2::V1 '-import', '!meta';
imported_ok('meta_check');
not_imported_ok('meta');
};
subtest "-x" => sub {
package C::Consumer;
use Test2::V1 '-x';
T2->imported_ok('dies');
};
subtest "unquoted -x" => sub {
package D::Consumer;
( run in 0.501 second using v1.01-cache-2.11-cpan-39bf76dae61 )