Bus-Errors bei perl5.10 und perl5.12 verhindern.
[kivitendo-erp.git] / t / Support / TestSetup.pm
1 package Support::TestSetup;
2
3 use strict;
4
5 use Data::Dumper;
6 use CGI qw( -no_xhtml);
7 use SL::Auth;
8 use SL::Form;
9 use SL::Locale;
10 use SL::LXDebug;
11 use Data::Dumper;
12 use SL::LxOfficeConf;
13 use SL::InstanceConfiguration;
14
15 sub _login {
16   my $login = shift;
17
18   die 'need login' unless $login;
19
20   package main;
21
22   $::lxdebug       = LXDebug->new(target => LXDebug::STDERR_TARGET);
23   $::lxdebug->disable_sub_tracing;
24   $::locale        = Locale->new($::lx_office_conf{system}->{language});
25   $::form          = Form->new;
26   $::auth          = SL::Auth->new;
27   $::instance_conf = SL::InstanceConfiguration->new;
28   $::request       = { cgi => CGI->new({}) };
29
30   die 'cannot reach auth db'               unless $::auth->session_tables_present;
31
32   $::auth->restore_session;
33
34   require "bin/mozilla/common.pl";
35
36   die "cannot find user $login"            unless %::myconfig = $::auth->read_user(login => $login);
37
38   $::form->{login} = $login; # normaly implicit at login
39
40   die "cannot find locale for user $login" unless $::locale   = Locale->new($::myconfig{countrycode});
41
42   $::instance_conf->init;
43
44   return 1;
45 }
46
47 sub login {
48   SL::LxOfficeConf->read;
49
50   my $login        = shift || $::lx_office_conf{testing}{login}        || 'demo';
51   _login($login);
52 }
53
54 1;