#! perl
#
# Test for JSON variable filter

use strict;
use warnings;

use Test::More;
use Template::Flute;
use Class::Load qw(try_load_class);

try_load_class('JSON')
    or plan skip_all => "Missing JSON module.";

plan tests => 2;

my ($xml, $html, $flute, $ret);

$html =  <<EOF;
<script type="text/javascript" id="jsonvar">
</script>
EOF

# jsonvar filter
$xml = <<EOF;
<specification name="filters">
<value name="json" id="jsonvar" filter="json_var"/>
</specification>
EOF


$flute = Template::Flute->new(specification => $xml,
			      template => $html,
			      filters => {json_var => {options => {engine => 'eval'}}},
			      values => {json => {user => 'shopper@nitesi.biz'}},
);

$ret = $flute->process();

ok(index($ret, q{var json = eval('({"user":"shopper@nitesi.biz"})');}) > 0, "JSON variable filter test with eval engine")
    || diag ($ret);


$flute = Template::Flute->new(specification => $xml,
			      template => $html,
			      filters => {json_var => {options => {engine => 'jquery'}}},
			      values => {json => {user => 'shopper@nitesi.biz'}},
);

$ret = $flute->process();

ok(index($ret, q{var json = $.parseJSON('{"user":"shopper@nitesi.biz"}');}) > 0, "JSON variable filter test with jquery engine")
    || diag ($ret);
