| Index: third_party/JSON/JSON-2.59/t/e13_overloaded_eq.t
|
| diff --git a/third_party/JSON/JSON-2.59/t/e13_overloaded_eq.t b/third_party/JSON/JSON-2.59/t/e13_overloaded_eq.t
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2956aac052139a3b78b955adda5a362ff5337ed1
|
| --- /dev/null
|
| +++ b/third_party/JSON/JSON-2.59/t/e13_overloaded_eq.t
|
| @@ -0,0 +1,65 @@
|
| +
|
| +use strict;
|
| +use Test::More tests => 4;
|
| +
|
| +BEGIN {
|
| + $ENV{ PERL_JSON_BACKEND } = "JSON::backportPP";
|
| +}
|
| +
|
| +use JSON;
|
| +
|
| +my $json = JSON->new->convert_blessed;
|
| +
|
| +my $obj = OverloadedObject->new( 'foo' );
|
| +ok( $obj eq 'foo' );
|
| +is( $json->encode( [ $obj ] ), q{["foo"]} );
|
| +
|
| +# rt.cpan.org #64783
|
| +my $foo = bless {}, 'Foo';
|
| +my $bar = bless {}, 'Bar';
|
| +
|
| +eval q{ $json->encode( $foo ) };
|
| +ok($@);
|
| +eval q{ $json->encode( $bar ) };
|
| +ok(!$@);
|
| +
|
| +
|
| +package Foo;
|
| +
|
| +use strict;
|
| +use overload (
|
| + 'eq' => sub { 0 },
|
| + '""' => sub { $_[0] },
|
| + fallback => 1,
|
| +);
|
| +
|
| +sub TO_JSON {
|
| + return $_[0];
|
| +}
|
| +
|
| +package Bar;
|
| +
|
| +use strict;
|
| +use overload (
|
| + 'eq' => sub { 0 },
|
| + '""' => sub { $_[0] },
|
| + fallback => 1,
|
| +);
|
| +
|
| +sub TO_JSON {
|
| + return overload::StrVal($_[0]);
|
| +}
|
| +
|
| +
|
| +package OverloadedObject;
|
| +
|
| +use overload 'eq' => sub { $_[0]->{v} eq $_[1] }, '""' => sub { $_[0]->{v} }, fallback => 1;
|
| +
|
| +
|
| +sub new {
|
| + bless { v => $_[1] }, $_[0];
|
| +}
|
| +
|
| +
|
| +sub TO_JSON { "$_[0]"; }
|
| +
|
|
|