File: json.t

package info (click to toggle)
libhttp-entity-parser-perl 0.25-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 476 kB
  • sloc: perl: 394; makefile: 2
file content (29 lines) | stat: -rw-r--r-- 914 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use strict;
use warnings;
use Test::More;
use HTTP::Entity::Parser::JSON;
use Hash::MultiValue;
use utf8;

my $parser = HTTP::Entity::Parser::JSON->new();
$parser->add('{');
$parser->add('"hoge":["fuga","hige","\u306b\u307b\u3093\u3054"],');
$parser->add('"moji":{"kanji":{"ji":"\u5b57"}},');
$parser->add('"\u306b\u307b\u3093\u3054":"\u65e5\u672c\u8a9e",');
$parser->add('"shallow":[{"deeper": "sunk"}],');
$parser->add('"moge":"muga"');
$parser->add('}');

my ($params, $uploads) = $parser->finalize();
is_deeply(Hash::MultiValue->new(@$params)->as_hashref_mixed,
  +{
    'hoge'     => [ 'fuga', 'hige', Encode::encode_utf8('にほんご') ],
    'moge'     => 'muga',
    'moji'     => { 'kanji' => { 'ji' => Encode::encode_utf8('字') } },
    'shallow'  => [ { 'deeper' => 'sunk' } ],
    Encode::encode_utf8('にほんご') => Encode::encode_utf8('日本語'),
  });
is_deeply $uploads, [];

done_testing;