Catalyst-Runtime
view release on metacpan or search on metacpan
t/lib/MakeTestApp.pm view on Meta::CPAN
package MakeTestApp;
use strict;
use warnings;
use Exporter 'import';
use Cwd qw(abs_path);
use File::Spec::Functions qw(updir catdir);
use File::Basename qw(dirname);
use File::Path qw(rmtree);
use File::Copy::Recursive qw(dircopy);
our @EXPORT = qw(make_test_app);
our $root = abs_path(catdir(dirname(__FILE__), (updir) x 2));
sub make_test_app {
my $tmp = "$root/t/tmp";
rmtree $tmp if -d $tmp;
mkdir $tmp;
# create a TestApp and copy the test libs into it
my $testapp = "$tmp/TestApp";
mkdir $testapp;
mkdir "$testapp/lib";
mkdir "$testapp/script";
for my $command (qw(CGI FastCGI Server)) {
my $script = "$testapp/script/testapp_\L$command\E.pl";
open my $fh, '>:raw', $script
or die "can't create $script: $!";
print $fh <<"END_CODE";
#!/usr/bin/env perl
use Catalyst::ScriptRunner;
Catalyst::ScriptRunner->run('TestApp', '$command');
1;
END_CODE
close $fh;
chmod 0755, $script;
}
open my $fh, '>:raw', "$testapp/cpanfile";
close $fh;
File::Copy::Recursive::dircopy( "$root/t/lib", "$testapp/lib" );
return $testapp;
}
1;
( run in 0.522 second using v1.01-cache-2.11-cpan-39bf76dae61 )