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 2.253 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )