Dancer2-Plugin-ViewCache
view release on metacpan or search on metacpan
t/00_core_keywords.t view on Meta::CPAN
use Modern::Perl;
use lib 't/lib';
use lib 'lib';
use Test2::V0;
use Test2::Tools::Subtest qw/subtest_buffered subtest_streamed/;
use FindBin qw($Bin);
use Plack::Test;
use HTTP::Request::Common;
use JSON::MaybeXS;
use File::Copy qw(copy);
my $test_db_file = 't/db/test_database.sqlite3';
my $clean_db_file = 't/db/test_database.sqlite3.orig';
# Test needs to start with a fresh database
if ( -f "$test_db_file" ) {
unlink("$test_db_file");
}
copy $clean_db_file, $test_db_file;
use TestViewCache;
plan(3);
my $test = Plack::Test->create( TestViewCache->to_app );
subtest 'Check keyword generate_guest_url with generated code' => sub {
plan(4);
my $res = $test->request( GET '/' );
ok( $res->is_success, 'Successful request' );
my $res_code = $res->code;
is( $res->code, '200', 'HTTP response 200 received' );
my $content = $res->content;
like( $content, qr/^https?:\/\//, 'Response has URL beginning with http' );
my $view_page = $test->request( GET $content);
like( $view_page->content, qr|<body>Hello world!</body>|, 'Page returned by the URL returns expected content' );
};
subtest_streamed 'Check keyword generate_guest_url with provided code' => sub {
plan(4);
my $random1 = int( rand(1000) );
my $random2 = int( rand(1000) );
my $custom_code = $random1 . 'abc' . $random2;
note("Custom code provided to site is $custom_code");
my $res_with_code = $test->request( GET '/' . $custom_code );
ok( $res_with_code->is_success, 'Successful request' );
my $res_code = $res_with_code->code;
is( $res_with_code->code, '200', 'HTTP response 200 received' );
my $content = $res_with_code->content;
like( $content, qr/$custom_code/, 'Response has URL containing the custom code provided by the caller' );
( run in 1.920 second using v1.01-cache-2.11-cpan-39bf76dae61 )