diff options
author | Hyunjee Kim <hj0426.kim@samsung.com> | 2020-03-17 09:38:42 +0900 |
---|---|---|
committer | Hyunjee Kim <hj0426.kim@samsung.com> | 2020-03-17 10:32:30 +0900 |
commit | 8d2a41273a56a33a291d292c1fbee03cce290694 (patch) | |
tree | d2e93626e62e86e0be5696b4ce240d0af7376a6a /t/07_pc_esc.t | |
parent | c5bbcb68877d7b8bdb968a69aa62b3b90853cb3f (diff) | |
download | perl-json-8d2a41273a56a33a291d292c1fbee03cce290694.tar.gz perl-json-8d2a41273a56a33a291d292c1fbee03cce290694.tar.bz2 perl-json-8d2a41273a56a33a291d292c1fbee03cce290694.zip |
Imported Upstream version 4.02upstream/4.02
Change-Id: I549bbbd41e3db39e6fd6f2b1f2c4c94b94071018
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
Diffstat (limited to 't/07_pc_esc.t')
-rw-r--r-- | t/07_pc_esc.t | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/t/07_pc_esc.t b/t/07_pc_esc.t new file mode 100644 index 0000000..1bb080c --- /dev/null +++ b/t/07_pc_esc.t @@ -0,0 +1,83 @@ +# +# このファイルのエンコーディングはUTF-8 +# + +# copied over from JSON::PC and modified to use JSON +# copied over from JSON::XS and modified to use JSON + +use Test::More; +use strict; +use utf8; +BEGIN { plan tests => 17 }; +BEGIN { $ENV{PERL_JSON_BACKEND} ||= "JSON::backportPP"; } + +use JSON; + +######################### +my ($js,$obj,$str); + +my $pc = new JSON; + +$obj = {test => qq|abc"def|}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\"def"}|); + +$obj = {qq|te"st| => qq|abc"def|}; +$str = $pc->encode($obj); +is($str,q|{"te\"st":"abc\"def"}|); + +$obj = {test => qq|abc/def|}; # / => \/ +$str = $pc->encode($obj); # but since version 0.99 +is($str,q|{"test":"abc/def"}|); # this handling is deleted. +$obj = $pc->decode($str); +is($obj->{test},q|abc/def|); + +$obj = {test => q|abc\def|}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\\\\def"}|); + +$obj = {test => "abc\bdef"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\bdef"}|); + +$obj = {test => "abc\fdef"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\fdef"}|); + +$obj = {test => "abc\ndef"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\ndef"}|); + +$obj = {test => "abc\rdef"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\rdef"}|); + +$obj = {test => "abc-def"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc-def"}|); + +$obj = {test => "abc(def"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc(def"}|); + +$obj = {test => "abc\\def"}; +$str = $pc->encode($obj); +is($str,q|{"test":"abc\\\\def"}|); + +$obj = {test => "あいうえお"}; +$str = $pc->encode($obj); +is($str,q|{"test":"あいうえお"}|); + +$obj = {"あいうえお" => "かきくけこ"}; +$str = $pc->encode($obj); +is($str,q|{"あいうえお":"かきくけこ"}|); + +$obj = $pc->decode(q|{"id":"abc\ndef"}|); +is($obj->{id},"abc\ndef",q|{"id":"abc\ndef"}|); + +$obj = $pc->decode(q|{"id":"abc\\\ndef"}|); +is($obj->{id},"abc\\ndef",q|{"id":"abc\\\ndef"}|); + +$obj = $pc->decode(q|{"id":"abc\\\\\ndef"}|); +is($obj->{id},"abc\\\ndef",q|{"id":"abc\\\\\ndef"}|); + |