Move Test::Simple from lib to ext.
[p5sagit/p5-mst-13.2.git] / ext / Test-Simple / t / Builder / reset.t
CommitLineData
30e302f8 1#!/usr/bin/perl -w
2
3# Test Test::Builder->reset;
4
5BEGIN {
6 if( $ENV{PERL_CORE} ) {
7 chdir 't';
8 @INC = ('../lib', 'lib');
9 }
10 else {
11 unshift @INC, 't/lib';
12 }
13}
14chdir 't';
15
16
17use Test::Builder;
3e887aae 18my $Test = Test::Builder->new;
19my $tb = Test::Builder->create;
04955c14 20
3e887aae 21# We'll need this later to know the outputs were reset
04955c14 22my %Original_Output;
23$Original_Output{$_} = $tb->$_ for qw(output failure_output todo_output);
24
3e887aae 25# Alter the state of Test::Builder as much as possible.
26my $output = '';
27$tb->output(\$output);
28$tb->failure_output(\$output);
29$tb->todo_output(\$output);
04955c14 30
30e302f8 31$tb->plan(tests => 14);
32$tb->level(0);
33
30e302f8 34$tb->ok(1, "Running a test to alter TB's state");
35
30e302f8 36# This won't print since we just sent output off to oblivion.
37$tb->ok(0, "And a failure for fun");
38
39$Test::Builder::Level = 3;
40
41$tb->exported_to('Foofer');
42
43$tb->use_numbers(0);
44$tb->no_header(1);
45$tb->no_ending(1);
46
47
48# Now reset it.
49$tb->reset;
50
30e302f8 51
3e887aae 52$Test->ok( !defined $tb->exported_to, 'exported_to' );
53$Test->is_eq( $tb->expected_tests, 0, 'expected_tests' );
54$Test->is_eq( $tb->level, 1, 'level' );
55$Test->is_eq( $tb->use_numbers, 1, 'use_numbers' );
56$Test->is_eq( $tb->no_header, 0, 'no_header' );
57$Test->is_eq( $tb->no_ending, 0, 'no_ending' );
58$Test->is_eq( $tb->current_test, 0, 'current_test' );
59$Test->is_eq( scalar $tb->summary, 0, 'summary' );
60$Test->is_eq( scalar $tb->details, 0, 'details' );
61$Test->is_eq( fileno $tb->output,
62 fileno $Original_Output{output}, 'output' );
63$Test->is_eq( fileno $tb->failure_output,
64 fileno $Original_Output{failure_output}, 'failure_output' );
65$Test->is_eq( fileno $tb->todo_output,
66 fileno $Original_Output{todo_output}, 'todo_output' );
67
68$tb->current_test(12);
30e302f8 69$tb->level(0);
70$tb->ok(1, 'final test to make sure output was reset');
3e887aae 71
72$Test->current_test(13);
73$Test->done_testing(13);