whitespace cleanup
[catagits/Catalyst-Runtime.git] / t / optional_threads.t
CommitLineData
c7ded7aa 1use strict;
2use warnings;
3
4853fb50 4use Test::More;
5BEGIN {
6 plan skip_all => 'set TEST_THREADS to enable this test'
7 unless $ENV{TEST_THREADS};
8}
9
c7ded7aa 10use FindBin;
11use lib "$FindBin::Bin/lib";
c7ded7aa 12use Catalyst::Test 'TestApp';
13use Catalyst::Request;
14use Config;
15use HTTP::Response;
16
c7ded7aa 17if ( $Config{useithreads} && !$ENV{CATALYST_SERVER} ) {
18 require threads;
19 plan tests => 3;
20}
21else {
22 if ( $ENV{CATALYST_SERVER} ) {
23 plan skip_all => 'Using remote server';
24 }
25 else {
26 plan skip_all => 'Needs a Perl with ithreads enabled';
27 }
28}
88e5a8b0 29
c7ded7aa 30no warnings 'redefine';
31sub request {
88e5a8b0 32 my $thr = threads->new(
c7ded7aa 33 sub { Catalyst::Test::local_request('TestApp',@_) },
88e5a8b0 34 @_
c7ded7aa 35 );
36 $thr->join;
37}
38
39# test that running inside a thread works ok
40{
41 my @expected = qw[
42 TestApp::Controller::Action::Default->begin
43 TestApp::Controller::Action::Default->default
44 TestApp::View::Dump::Request->process
ef70874e 45 TestApp::Controller::Root->end
c7ded7aa 46 ];
47
48 my $expected = join( ", ", @expected );
88e5a8b0 49
c7ded7aa 50 ok( my $response = request('http://localhost/action/default'), 'Request' );
51 ok( $response->is_success, 'Response Successful 2xx' );
52 is( $response->header('X-Catalyst-Executed'), $expected, 'Executed actions' );
53}