Index: third_party/JSON/JSON-2.59/t/20_unknown.t |
diff --git a/third_party/JSON/JSON-2.59/t/20_unknown.t b/third_party/JSON/JSON-2.59/t/20_unknown.t |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7686929ee0a5f7c0d4a01efd2a3ba892cec61366 |
--- /dev/null |
+++ b/third_party/JSON/JSON-2.59/t/20_unknown.t |
@@ -0,0 +1,54 @@ |
+ |
+use strict; |
+ |
+use Test::More; |
+BEGIN { plan tests => 10 }; |
+BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; } |
+ |
+ |
+use strict; |
+use JSON; |
+ |
+my $json = JSON->new; |
+ |
+eval q| $json->encode( [ sub {} ] ) |; |
+ok( $@ =~ /encountered CODE/, $@ ); |
+ |
+eval q| $json->encode( [ \-1 ] ) |; |
+ok( $@ =~ /cannot encode reference to scalar/, $@ ); |
+ |
+eval q| $json->encode( [ \undef ] ) |; |
+ok( $@ =~ /cannot encode reference to scalar/, $@ ); |
+ |
+eval q| $json->encode( [ \{} ] ) |; |
+ok( $@ =~ /cannot encode reference to scalar/, $@ ); |
+ |
+$json->allow_unknown; |
+ |
+is( $json->encode( [ sub {} ] ), '[null]' ); |
+is( $json->encode( [ \-1 ] ), '[null]' ); |
+is( $json->encode( [ \undef ] ), '[null]' ); |
+is( $json->encode( [ \{} ] ), '[null]' ); |
+ |
+ |
+SKIP: { |
+ |
+ skip "this test is for Perl 5.8 or later", 2 if( $] < 5.008 ); |
+ |
+$json->allow_unknown(0); |
+ |
+my $fh; |
+open( $fh, '>hoge.txt' ) or die $!; |
+ |
+eval q| $json->encode( [ $fh ] ) |; |
+ok( $@ =~ /encountered GLOB/, $@ ); |
+ |
+$json->allow_unknown(1); |
+ |
+is( $json->encode( [ $fh ] ), '[null]' ); |
+ |
+close $fh; |
+ |
+unlink('hoge.txt'); |
+ |
+} |