The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test::More;
BEGIN { plan tests => 7 };

BEGIN { $ENV{PERL_JSON_BACKEND} ||= 1; }

use JSON -support_by_pp;

SKIP: {
    skip "can't use JSON::XS.", 7, unless( JSON->backend->is_xs );

my $json = new JSON;


is($json->indent_length(2)->encode([1,{foo => 'bar'}, "1", "/"]), qq|[1,{"foo":"bar"},"1","/"]|);

is($json->indent->encode([1,{foo => 'bar'}, "1", "/"]), qq|[
  1,
  {
    "foo":"bar"
  },
  "1",
  "/"
]
|);


is($json->escape_slash(1)->pretty->indent_length(2)->encode([1,{foo => 'bar'}, "1", "/"]), qq|[
  1,
  {
    "foo" : "bar"
  },
  "1",
  "\\/"
]
|);


is($json->escape_slash(1)->pretty->indent_length(3)->encode([1,{foo => 'bar'}, "1", "/"]), qq|[
   1,
   {
      "foo" : "bar"
   },
   "1",
   "\\/"
]
|);

is($json->escape_slash(1)->pretty->indent_length(15)->encode([1,{foo => 'bar'}, "1", "/"]), qq|[
               1,
               {
                              "foo" : "bar"
               },
               "1",
               "\\/"
]
|);


is($json->indent_length(0)->encode([1,{foo => 'bar'}, "1", "/"]), qq|[
1,
{
"foo" : "bar"
},
"1",
"\\/"
]
|);

is($json->indent(0)->space_before(0)->space_after(0)->escape_slash(0)
        ->encode([1,{foo => 'bar'}, "1", "/"]), qq|[1,{"foo":"bar"},"1","/"]|);


}