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;
+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;
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 {
- SL::LxOfficeConf->read;
+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;
+}
- my $login = shift || $::lx_office_conf{testing}{login} || 'demo';
- _login($login);
+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;