new
[urisagit/Perl-Docs.git] / t / prepend_file.t
CommitLineData
45094320 1
2use strict ;
3use warnings ;
4
5use lib qw(t) ;
6
7use File::Slurp qw( read_file write_file prepend_file ) ;
8use Test::More ;
9
10use TestDriver ;
11
12my $file = 'prepend_file' ;
13my $existing_data = <<PRE ;
14line 1
15line 2
16more
17PRE
18
19my $tests = [
20 {
21 name => 'prepend null',
22 sub => \&prepend_file,
23 prepend_data => '',
24 pretest => sub {
25 my( $test ) = @_ ;
26 write_file( $file, $existing_data ) ;
27 my $prepend_data = $test->{prepend_data} ;
28 $test->{args} = [
29 $file,
30 $prepend_data,
31 ] ;
32 $test->{expected} = "$prepend_data$existing_data" ;
33 },
34 posttest => sub { $_[0]->{result} = read_file( $file ) },
35 },
36 {
37 name => 'prepend line',
38 sub => \&prepend_file,
39 prepend_data => "line 0\n",
40 pretest => sub {
41 my( $test ) = @_ ;
42 write_file( $file, $existing_data ) ;
43 my $prepend_data = $test->{prepend_data} ;
44 $test->{args} = [
45 $file,
46 $prepend_data,
47 ] ;
48 $test->{expected} = "$prepend_data$existing_data" ;
49 },
50 posttest => sub { $_[0]->{result} = read_file( $file ) },
51 },
52 {
53 name => 'prepend partial line',
54 sub => \&prepend_file,
55 prepend_data => 'partial line',
56 pretest => sub {
57 my( $test ) = @_ ;
58 write_file( $file, $existing_data ) ;
59 my $prepend_data = $test->{prepend_data} ;
60 $test->{args} = [
61 $file,
62 $prepend_data,
63 ] ;
64 $test->{expected} = "$prepend_data$existing_data" ;
65 },
66 posttest => sub { $_[0]->{result} = read_file( $file ) },
67 },
68] ;
69
70test_driver( $tests ) ;
71
72unlink $file ;
73
74exit ;