Catalyst-Plugin-SpecialAction-Trail

 view release on metacpan or  search on metacpan

t/10-trail.t  view on Meta::CPAN

#!/usr/bin/env perl

use strict;
use warnings;

use Test::Most;

use FindBin;
use Path::Class;
use lib dir($FindBin::Bin)->subdir('lib')->stringify;

use HTTP::Request::Common;
use Catalyst::Test 'TestApp';

{
  my ($response, $c) = ctx_request(
    GET '/foo/quux'
  );

  ok(
    $response->is_success,
    "The request was successful ('trail' not enabled in the controller)"
  );

  eq_or_diff(
    $c->called_actions,
    [
      'TestApp::Controller::Foo::quux',
    ],
    "'trail' was not called ('trail' not enabled in the controller)"
  );
}

{
  my ($response, $c) = ctx_request(
    GET '/foo/bar/quux'
  );

  ok(
    $response->is_success,
    "The request was successful (controller with 'trail' enabled)"
  );

  eq_or_diff(
    $c->called_actions,
    [
      'TestApp::Controller::Foo::Bar::quux',
      'TestApp::Controller::Root::trail',
      'TestApp::Controller::Foo::trail',
      'TestApp::Controller::Foo::Bar::trail',
      'TestApp::Controller::Foo::Bar::end',
    ],
    "'trail' is called (controller with 'trail' enabled)"
  );
}

{
  my ($response, $c) = ctx_request(
    GET '/foo/qux/quux'
  );

  ok(
    $response->is_success,
    "The request was successful (controller with 'trail' enabled, "
      . "no 'trail' method)"
  );

  eq_or_diff(
    $c->called_actions,
    [
      'TestApp::Controller::Foo::Qux::quux',
      'TestApp::Controller::Root::trail',



( run in 2.571 seconds using v1.01-cache-2.11-cpan-5735350b133 )