Ark
view release on metacpan or search on metacpan
t/002_action_path.t view on Meta::CPAN
package TestApp;
use Ark;
package TestApp::Controller::Root;
use Ark 'Controller';
has '+namespace' => default => '';
sub default :Path Args {
my ($self, $c) = @_;
$c->res->status(404);
$c->res->content('404');
}
sub index :Path {
my ($self, $c) = @_;
$c->res->content('index');
}
sub local :Local {
my ($self, $c) = @_;
$c->res->content('local');
t/002_action_path.t view on Meta::CPAN
];
{
my $res = request( GET => '/');
ok($res, 'response ok');
isa_ok($res, 'HTTP::Response');
is($res->content, 'index', 'index content ok');
}
{
my $res = request( GET => '/404');
ok($res, 'response ok');
isa_ok($res, 'HTTP::Response');
is($res->code, 404, '404 status code ok');
is($res->content, '404', '404 content ok');
}
{
my $res = request( GET => '/local' );
ok($res, 'response ok');
isa_ok($res, 'HTTP::Response');
is($res->code, 200, '200 status code ok');
is($res->content, 'local', 'local content ok');
}
{
my $res = request( GET => '/local2/a1/a2' );
is($res->content, 'a1,a2', 'local2 with args content ok');
}
{
my $res = request( GET => '/local3' );
is($res->content, 'local3', 'local3 with args content ok');
$res = request( GET => '/local3/a1' );
is($res->code, 404, '404 status ok');
is($res->content, '404', 'local3 with args == 404 ok');
}
{
my $res = request( GET => '/local4/a1' );
is($res->content, 'local4:a1', 'local4 with args content ok');
$res = request( GET => '/local4' );
is($res->code, '404', 'local4 with no args is 404 ok');
$res = request( GET => '/local4/a1/a2/' );
is($res->code, '404', 'local4 with too many args is 404 ok');
}
{
my $res = request( GET => '/sub');
is($res->code, 200, '200 status ok');
is($res->content, 'sub/index', 'sub/index ok');
}
{
my $res = request( GET => '/global' );
t/detach_action_chain.t view on Meta::CPAN
{
package TestApp;
use Ark;
package TestApp::Controller::Root;
use Ark 'Controller';
has '+namespace' => default => '';
sub default :Private {
my ($self, $c) = @_;
$c->res->body('404');
}
package TestApp::Controller::Entry;
use Ark 'Controller';
sub entry :Chained('/') :PathPart('entry') :CaptureArgs(1) {
my ($self, $c, $entry_id) = @_;
$c->stash->{entry} = "entry$entry_id";
$c->detach('/default') if $entry_id eq '0';
}
t/detach_action_chain.t view on Meta::CPAN
{
my $res = request( GET => '/entry/1' );
ok($res->is_success, 'response ok');
is($res->content, 'entry1', 'chained without detach response ok');
}
{
my $res = request( GET => '/entry/0' );
ok($res->is_success, 'response ok');
is($res->content, '404', 'chained with detach response ok');
}
done_testing;
t/detach_action_chain2.t view on Meta::CPAN
{
package T;
use Ark;
package T::Controller::Root;
use Ark 'Controller';
has '+namespace' => default => '';
sub default :Private {
my ($self, $c) = @_;
$c->res->body('404');
}
package T::Controller::Entry;
use Ark 'Controller';
sub entry :Chained('/') :PathPart('entry') :CaptureArgs(1) {
my ($self, $c, $entry_id) = @_;
$c->stash->{entry} = $entry_id;
$c->res->body("entry$entry_id");
}
t/detach_action_chain2.t view on Meta::CPAN
{
my $res = request( GET => '/entry/1/more' );
ok($res->is_success, 'response ok');
is($res->content, 'entry1aftercheck', 'chained without detach response ok');
}
{
my $res = request( GET => '/entry/0/more' );
ok($res->is_success, 'response ok');
is($res->content, '404', 'chained with detach response ok');
}
done_testing;
__END__
web03% prove -vlr t/detach_action_chain2.t
t/detach_action_chain2.t ..
ok 1 - response ok
ok 2 - chained without detach response ok
ok 3 - response ok
not ok 4 - chained with detach response ok
# Failed test 'chained with detach response ok'
# at t/detach_action_chain2.t line 49.
# got: '404aftercheck'
# expected: '404'
1..4
# Looks like you failed 1 test of 4.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests
Test Summary Report
-------------------
t/detach_action_chain2.t (Wstat: 256 Tests: 4 Failed: 1)
Failed test: 4
Non-zero exit status: 1
t/regexp_action.t view on Meta::CPAN
package T1;
use Ark;
package T1::Controller::Root;
use Ark 'Controller';
has '+namespace' => default => '';
sub default :Path {
my ($self, $c) = @_;
$c->res->status(404);
$c->res->body('404 Not Found');
}
sub render :Private {
my ($self, $c, @path) = @_;
my $date = q[];
my ($yr, $mo, $da) = @{$c->stash}{qw/year month day/};
if ($yr && $mo && $da) {
$date = sprintf '%04d-%02d-%02d', $yr, $mo, $da;
}
( run in 1.738 second using v1.01-cache-2.11-cpan-39bf76dae61 )