Commit | Line | Data |
---|---|---|
3bd791fa JK |
1 | #!./perl -w |
2 | # t/indent.t - Test Indent() | |
2bc27c6c TR |
3 | |
4 | use strict; | |
5 | use warnings; | |
6 | ||
3bd791fa | 7 | use Data::Dumper; |
dd9e86b4 | 8 | use Test::More tests => 9; |
3bd791fa JK |
9 | use lib qw( ./t/lib ); |
10 | use Testing qw( _dumptostr ); | |
11 | ||
12 | ||
13 | my $hash = { foo => 42 }; | |
14 | ||
15 | my (%dumpstr); | |
16 | my $dumper; | |
17 | ||
18 | $dumper = Data::Dumper->new([$hash]); | |
19 | $dumpstr{noindent} = _dumptostr($dumper); | |
20 | # $VAR1 = { | |
21 | # 'foo' => 42 | |
22 | # }; | |
23 | ||
24 | $dumper = Data::Dumper->new([$hash]); | |
25 | $dumper->Indent(); | |
26 | $dumpstr{indent_no_arg} = _dumptostr($dumper); | |
27 | ||
28 | $dumper = Data::Dumper->new([$hash]); | |
3bd791fa JK |
29 | $dumper->Indent(0); |
30 | $dumpstr{indent_0} = _dumptostr($dumper); | |
31 | # $VAR1 = {'foo' => 42}; # no newline | |
32 | ||
33 | $dumper = Data::Dumper->new([$hash]); | |
34 | $dumper->Indent(1); | |
35 | $dumpstr{indent_1} = _dumptostr($dumper); | |
36 | # $VAR1 = { | |
37 | # 'foo' => 42 | |
38 | # }; | |
39 | ||
40 | $dumper = Data::Dumper->new([$hash]); | |
41 | $dumper->Indent(2); | |
42 | $dumpstr{indent_2} = _dumptostr($dumper); | |
43 | # $VAR1 = { | |
44 | # 'foo' => 42 | |
45 | # }; | |
46 | ||
47 | is($dumpstr{noindent}, $dumpstr{indent_no_arg}, | |
48 | "absence of Indent is same as Indent()"); | |
3bd791fa JK |
49 | isnt($dumpstr{noindent}, $dumpstr{indent_0}, |
50 | "absence of Indent is different from Indent(0)"); | |
51 | isnt($dumpstr{indent_0}, $dumpstr{indent_1}, | |
52 | "Indent(0) is different from Indent(1)"); | |
53 | cmp_ok(length($dumpstr{indent_0}), '<=', length($dumpstr{indent_1}), | |
54 | "Indent(0) is more compact than Indent(1)"); | |
55 | is($dumpstr{noindent}, $dumpstr{indent_2}, | |
56 | "absence of Indent is same as Indent(2), i.e., 2 is default"); | |
57 | cmp_ok(length($dumpstr{indent_1}), '<=', length($dumpstr{indent_2}), | |
58 | "Indent(1) is more compact than Indent(2)"); | |
59 | ||
60 | my $array = [ qw| foo 42 | ]; | |
61 | $dumper = Data::Dumper->new([$array]); | |
62 | $dumper->Indent(2); | |
63 | $dumpstr{ar_indent_2} = _dumptostr($dumper); | |
64 | # $VAR1 = [ | |
65 | # 'foo', | |
66 | # '42' | |
67 | # ]; | |
68 | ||
69 | $dumper = Data::Dumper->new([$array]); | |
70 | $dumper->Indent(3); | |
71 | $dumpstr{ar_indent_3} = _dumptostr($dumper); | |
72 | # $VAR1 = [ | |
73 | # #0 | |
74 | # 'foo', | |
75 | # #1 | |
76 | # '42' | |
77 | # ]; | |
78 | ||
79 | isnt($dumpstr{ar_indent_2}, $dumpstr{ar_indent_3}, | |
80 | "On arrays, Indent(2) is different from Indent(3)"); | |
81 | like($dumpstr{ar_indent_3}, | |
1d6574a4 | 82 | qr/\#0.+'foo'.+\#1.+42/s, |
3bd791fa JK |
83 | "Indent(3) annotates array elements with their indices" |
84 | ); | |
83148b3e | 85 | sub count_newlines { scalar $_[0] =~ tr/\n// } |
f6b73532 FC |
86 | { |
87 | no if $] < 5.011, warnings => 'deprecated'; | |
83148b3e AC |
88 | is(count_newlines($dumpstr{ar_indent_2}) + 2, |
89 | count_newlines($dumpstr{ar_indent_3}), | |
f6b73532 FC |
90 | "Indent(3) runs 2 lines longer than Indent(2)"); |
91 | } | |
ed960e77 S |
92 | |
93 | __END__ | |
94 | is($dumpstr{noindent}, $dumpstr{indent_0}, | |
95 | "absence of Indent is same as Indent(0)"); | |
96 | isnt($dumpstr{noindent}, $dumpstr{indent_1}, | |
97 | "absence of Indent is different from Indent(1)"); | |
98 | print STDERR $dumpstr{indent_0}; | |
99 | print STDERR $dumpstr{ar_indent_3}; |