ASP4x-Linker
view release on metacpan or search on metacpan
t/010-basic/020-basic.t view on Meta::CPAN
#!/usr/bin/perl -w
use strict;
use warnings 'all';
use Test::More 'no_plan';
use ASP4::API;
use JSON::XS;
my $api; BEGIN { $api = ASP4::API->new }
use_ok('ASP4x::Linker');
BLANK: {
ok( my $res = $api->ua->get('/'), "GET /" );
ok( my $info = decode_json($res->content), "JSON is good" );
is_deeply $info, [
{
"widgetA" => {
"page_size" => undef,
"sort_col" => undef,
"sort_dir" => undef,
"page_number" => undef
}
},
{
t/010-basic/020-basic.t view on Meta::CPAN
"color" => undef,
"type" => undef,
"size" => undef
}
}
], "Data structure looks right";
};
T1: {
ok( my $res = $api->ua->get('/?widgetA.page_size=1&widgetB.page_size=2&widgetC.color=red&widgetD.size=large'), "GET /" );
ok( my $info = decode_json($res->content), "JSON is good" );
is_deeply $info, [
{
"widgetA" => {
"page_size" => 1,
"sort_col" => undef,
"sort_dir" => undef,
"page_number" => undef
}
},
{
t/010-basic/020-basic.t view on Meta::CPAN
"color" => undef,
"type" => undef,
"size" => 'large'
}
}
], "Data structure looks right";
};
T2: {
ok( my $res = $api->ua->get('/?widgetA.page_size=20&widgetA.page_number=40&widgetA.sort_col=name&widgetA.sort_dir=DESC&widgetB.page_size=10&widgetB.page_number=100&widgetB.sort_col=date&widgetB.sort_dir=ASC&widgetC.color=red&widgetC.type=shirt&widg...
ok( my $info = decode_json($res->content), "JSON is good" );
is_deeply $info, [
{
"widgetA" => {
"page_size" => 20,
"sort_col" => 'name',
"sort_dir" => 'DESC',
"page_number" => 40
}
},
{
t/htdocs/index.asp view on Meta::CPAN
<%
use ASP4x::Linker;
use JSON::XS;
my $linker = ASP4x::Linker->new();
$linker->add_widget(
name => "widgetA",
attrs => [qw/ page_number page_size sort_dir sort_col /]
);
$linker->add_widget(
name => "widgetB",
t/htdocs/index.asp view on Meta::CPAN
my @result = map {
my $widget = $_;
my $res = {
$widget->name => {
map { ($_ => $widget->get( $_ )) }
$widget->attrs
}
};
$res;
} $linker->widgets;
%><%= JSON::XS->new->utf8->pretty->encode( \@result ) %>
( run in 0.816 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )