summaryrefslogtreecommitdiffstats
path: root/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t')
-rw-r--r--third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t45
1 files changed, 45 insertions, 0 deletions
diff --git a/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t b/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t
new file mode 100644
index 0000000..18d09d4
--- /dev/null
+++ b/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t
@@ -0,0 +1,45 @@
+
+use strict;
+use Test::More;
+BEGIN { plan tests => 3 };
+
+BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; }
+
+use JSON -convert_blessed_universally;
+
+
+my $obj = Test->new( [ 1, 2, {foo => 'bar'} ] );
+
+$obj->[3] = Test2->new( { a => 'b' } );
+
+my $json = JSON->new->allow_blessed->convert_blessed;
+
+is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' );
+
+$json->convert_blessed(0);
+
+is( $json->encode( $obj ), 'null' );
+
+$json->allow_blessed(0)->convert_blessed(1);
+
+is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' );
+
+
+package Test;
+
+sub new {
+ bless $_[1], $_[0];
+}
+
+
+
+package Test2;
+
+sub new {
+ bless $_[1], $_[0];
+}
+
+sub TO_JSON {
+ "hoge";
+}
+