diff options
Diffstat (limited to 't/e14_decode_prefix.t')
-rw-r--r-- | t/e14_decode_prefix.t | 29 |
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/; + |