X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2FSupport%2FTestSetup.pm;h=6937b2ed2d3483d43f33e3526a99d5f122394a4a;hb=5349a1ed016ae603b39d73747eccc6792707db1c;hp=5b6e2bb1fcfe3eb6491db397d1438b7dc9dd604f;hpb=8e4ccdd50ed020591ec6caec89f043253ecc0653;p=kivitendo-erp.git diff --git a/t/Support/TestSetup.pm b/t/Support/TestSetup.pm index 5b6e2bb1f..6937b2ed2 100644 --- a/t/Support/TestSetup.pm +++ b/t/Support/TestSetup.pm @@ -4,28 +4,37 @@ use strict; use Data::Dumper; use CGI qw( -no_xhtml); +use IO::File; use SL::Auth; use SL::Form; use SL::Locale; use SL::LXDebug; use Data::Dumper; +use SL::Layout::None; use SL::LxOfficeConf; use SL::InstanceConfiguration; -SL::LxOfficeConf->read; +use SL::Request; -sub _login { - my $login = shift; +sub login { + $Data::Dumper::Sortkeys = 1; + $Data::Dumper::Indent = 2; + + SL::LxOfficeConf->read; - die 'need login' unless $login; + my $client = 'Unit-Tests'; + my $login = 'unittests'; package main; - $::lxdebug = LXDebug->new(file => \*STDERR); + $::lxdebug = LXDebug->new(target => LXDebug::STDERR_TARGET); + $::lxdebug->disable_sub_tracing; $::locale = Locale->new($::lx_office_conf{system}->{language}); - $::form = Form->new; - $::auth = SL::Auth->new; + $::form = Support::TestSetup->create_new_form; + $::auth = SL::Auth->new(unit_tests_database => 1); + die "Cannot find client with ID or name '$client'" if !$::auth->set_client($client); + $::instance_conf = SL::InstanceConfiguration->new; - $::request = { cgi => CGI->new({}) }; + $::request = Support::TestSetup->create_new_request; die 'cannot reach auth db' unless $::auth->session_tables_present; @@ -35,18 +44,42 @@ sub _login { die "cannot find user $login" unless %::myconfig = $::auth->read_user(login => $login); - $::form->{login} = $login; # normaly implicit at login - die "cannot find locale for user $login" unless $::locale = Locale->new($::myconfig{countrycode}); - $::instance_conf->init; + $SIG{__DIE__} = sub { Carp::confess( @_ ) } if $::lx_office_conf{debug}->{backtrace_on_die}; + return 1; } -sub login { - my $login = shift || $::lx_office_conf{testing}{login} || 'demo'; - _login($login); +sub create_new_form { Form->new('') } + +sub create_new_request { + my $self = shift; + + my $request = SL::Request->new( + cgi => CGI->new({}), + layout => SL::Layout::None->new, + @_, + ); + + $request->presenter->{template} = Template->new(template_config()) || die; + + return $request; +} + +sub template_config { + return { + INTERPOLATE => 0, + EVAL_PERL => 0, + ABSOLUTE => 1, + CACHE_SIZE => 0, + PLUGIN_BASE => 'SL::Template::Plugin', + INCLUDE_PATH => '.:templates/webpages/', + COMPILE_DIR => 'users/templates-cache-for-tests', + COMPILE_EXT => '.tcc', + ENCODING => 'utf8', + }; } 1;