summaryrefslogtreecommitdiff
path: root/t/e14_decode_prefix.t
diff options
context:
space:
mode:
Diffstat (limited to 't/e14_decode_prefix.t')
-rw-r--r--t/e14_decode_prefix.t29
1 files changed, 29 insertions, 0 deletions
diff --git a/t/e14_decode_prefix.t b/t/e14_decode_prefix.t
new file mode 100644
index 0000000..3a2f2ef
--- /dev/null
+++ b/t/e14_decode_prefix.t
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More tests => 8;
+
+BEGIN {
+ $ENV{ PERL_JSON_BACKEND } = "JSON::backportPP";
+}
+
+use JSON;
+
+my $json = JSON->new;
+
+my $complete_text = qq/{"foo":"bar"}/;
+my $garbaged_text = qq/{"foo":"bar"}\n/;
+my $garbaged_text2 = qq/{"foo":"bar"}\n\n/;
+my $garbaged_text3 = qq/{"foo":"bar"}\n----/;
+
+is( ( $json->decode_prefix( $complete_text ) ) [1], 13 );
+is( ( $json->decode_prefix( $garbaged_text ) ) [1], 13 );
+is( ( $json->decode_prefix( $garbaged_text2 ) ) [1], 13 );
+is( ( $json->decode_prefix( $garbaged_text3 ) ) [1], 13 );
+
+eval { $json->decode( "\n" ) }; ok( $@ =~ /malformed JSON/ );
+eval { $json->decode('null') }; ok $@ =~ /allow_nonref/;
+
+eval { $json->decode_prefix( "\n" ) }; ok( $@ =~ /malformed JSON/ );
+eval { $json->decode_prefix('null') }; ok $@ =~ /allow_nonref/;
+