Apache-SWIT/t/apache/100_worker.t
use strict;
use warnings FATAL => 'all';
use Test::More tests => 14;
use Apache::SWIT::Test::Utils;
use File::Slurp;
BEGIN { use_ok('T::Test');
use_ok('Apache::SWIT::Session');
use_ok('T::WorkPage');
};
unlink('/tmp/swit_worker.res');
my $dbh = Apache::SWIT::DB::Connection->instance->db_handle;
$dbh->do("set client_min_messages to warning");
T::WorkPage::Worker->create_table($dbh);
T::Test->make_aliases(work => 'T::WorkPage');
my $t = T::Test->new;
$t->root_location('/test');
$t->work_r(make_url => 1);
like($t->mech->uri, qr#/test/swit/r#);
like($t->mech->content, qr/hello world/);
is(-f '/tmp/swit_worker.res', undef);
sleep 2;
isnt(-f '/tmp/swit_worker.res', undef);
my $rfstr = read_file('/tmp/swit_worker.res');
like($rfstr, qr/hi/);
like($rfstr, qr/bye/);
unlink('/tmp/swit_worker.res');
$ENV{SWIT_HAS_APACHE} = 0;
$t = T::Test->new({ session_class => 'Apache::SWIT::Session' });
# in direct work is done synchroniously
$t->work_r(make_url => 1);
isnt(-f '/tmp/swit_worker.res', undef);
$rfstr = read_file('/tmp/swit_worker.res');
like($rfstr, qr/hi/);
like($rfstr, qr/bye/);
unlink('/tmp/swit_worker.res');
# and check that it works for update
$t->work_u(make_url => 1);
isnt(-f '/tmp/swit_worker.res', undef);
$rfstr = read_file('/tmp/swit_worker.res');
like($rfstr, qr/worku/);
unlink('/tmp/swit_worker.res');