Commit | Line | Data |
16504b15 |
1 | #!/usr/bin/perl |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
5 | |
6 | use strict; |
7 | use warnings; |
8 | |
9 | use Test::More; |
10 | use Test::Exception; |
11 | |
12 | { |
13 | |
14 | package Foo; |
15 | use Mouse; |
16 | |
17 | has 'foo' => ( is => 'rw', default => q{'} ); |
18 | has 'bar' => ( is => 'rw', default => q{\\} ); |
19 | has 'baz' => ( is => 'rw', default => q{"} ); |
20 | has 'buz' => ( is => 'rw', default => q{"'\\} ); |
21 | has 'faz' => ( is => 'rw', default => qq{\0} ); |
22 | |
23 | ::lives_ok { __PACKAGE__->meta->make_immutable } |
24 | 'no errors making a package immutable when it has default values that could break quoting'; |
25 | } |
26 | |
27 | my $foo = Foo->new; |
28 | is( $foo->foo, q{'}, |
29 | 'default value for foo attr' ); |
30 | is( $foo->bar, q{\\}, |
31 | 'default value for bar attr' ); |
32 | is( $foo->baz, q{"}, |
33 | 'default value for baz attr' ); |
34 | is( $foo->buz, q{"'\\}, |
35 | 'default value for buz attr' ); |
36 | is( $foo->faz, qq{\0}, |
37 | 'default value for faz attr' ); |
38 | |
39 | |
40 | # Lazy attrs were never broken, but it doesn't hurt to test that they |
41 | # won't be broken by any future changes. |
42 | { |
43 | |
44 | package Bar; |
45 | use Mouse; |
46 | |
47 | has 'foo' => ( is => 'rw', default => q{'}, lazy => 1 ); |
48 | has 'bar' => ( is => 'rw', default => q{\\}, lazy => 1 ); |
49 | has 'baz' => ( is => 'rw', default => q{"}, lazy => 1 ); |
50 | has 'buz' => ( is => 'rw', default => q{"'\\}, lazy => 1 ); |
51 | has 'faz' => ( is => 'rw', default => qq{\0}, lazy => 1 ); |
52 | |
53 | ::lives_ok { __PACKAGE__->meta->make_immutable } |
54 | 'no errors making a package immutable when it has lazy default values that could break quoting'; |
55 | } |
56 | |
57 | my $bar = Bar->new; |
58 | is( $bar->foo, q{'}, |
59 | 'default value for foo attr' ); |
60 | is( $bar->bar, q{\\}, |
61 | 'default value for bar attr' ); |
62 | is( $bar->baz, q{"}, |
63 | 'default value for baz attr' ); |
64 | is( $bar->buz, q{"'\\}, |
65 | 'default value for buz attr' ); |
66 | is( $bar->faz, qq{\0}, |
67 | 'default value for faz attr' ); |
68 | |
69 | done_testing; |