From: Shawn M Moore Date: Tue, 25 Nov 2008 04:36:55 +0000 (+0000) Subject: Steal the octal-defaults test from Moose, thankfully Mouse passes everything :) X-Git-Tag: 0.19~151 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=39c84648f251c030b21bc7ff7a35a83130be9f1a;p=gitmo%2FMouse.git Steal the octal-defaults test from Moose, thankfully Mouse passes everything :) --- diff --git a/t/603-octal-defaults.t b/t/603-octal-defaults.t new file mode 100644 index 0000000..8e41449 --- /dev/null +++ b/t/603-octal-defaults.t @@ -0,0 +1,119 @@ +#!/usr/bin/env perl +use Test::More qw(no_plan); + +# copied straight out of Moose t/100/019 + +{ + my $package = qq{ +package Test::Mouse::Go::Boom; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '019600', # this caused the original failure +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('quoted 019600 default works'); + my $obj = Test::Mouse::Go::Boom->new; + ::is( $obj->id, '019600', 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom2; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => 017600, +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom2->new; + ::is( $obj->id, 8064, 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom3; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => 0xFF, +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom3->new; + ::is( $obj->id, 255, 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom4; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '0xFF', +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom4->new; + ::is( $obj->id, '0xFF', 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom5; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '0 but true', +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom5->new; + ::is( $obj->id, '0 but true', 'value is still the same' ); +}