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 )