diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-10-13 06:32:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-13 06:32:57 +0200 |
commit | 5688d0e712b85bc892ce405a1b79e3571f6d6d0f (patch) | |
tree | 39277970bd3648781fbecd1ebdcc9b3d6693d4b9 /t | |
parent | 9263b7453169816c23b6f307fd225f3676d57a3a (diff) | |
download | bugzilla-5688d0e712b85bc892ce405a1b79e3571f6d6d0f.tar.gz bugzilla-5688d0e712b85bc892ce405a1b79e3571f6d6d0f.tar.xz |
Bug 1495741 - memory issues: Avoid copying stuff in the webservice layer so much
Diffstat (limited to 't')
-rw-r--r-- | t/json-boxes.t | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/t/json-boxes.t b/t/json-boxes.t new file mode 100644 index 000000000..4d9816e83 --- /dev/null +++ b/t/json-boxes.t @@ -0,0 +1,36 @@ +#!/usr/bin/perl +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. +use strict; +use warnings; +use 5.10.1; +use lib qw( . lib local/lib/perl5 ); + +use Scalar::Util qw(weaken); +use Mojo::JSON qw(encode_json); +use Scalar::Util qw(refaddr); +use Test2::V0; + +use ok 'Bugzilla::WebService::JSON'; + +my $json = Bugzilla::WebService::JSON->new; +my $ref = {foo => 1}; +is(refaddr $json->decode($json->encode($ref)), refaddr $ref); + +my $box = $json->encode($ref); + +is($json->decode(q[{"foo":1}]), {foo => 1}); +is($json->decode($box), {foo => 1}); + +is "$box", $box->label; + +$box->encode; + +is encode_json([ $box ]), encode_json([ encode_json($box->value) ]); +is "$box", q[{"foo":1}]; + +done_testing; |