1 package Support::TestSetup;
 
   6 use CGI qw( -no_xhtml);
 
  15 use SL::InstanceConfiguration;
 
  19   SL::LxOfficeConf->read;
 
  21   my $client = 'Unit-Tests';
 
  22   my $login  = 'unittests';
 
  26   $::lxdebug       = LXDebug->new(target => LXDebug::STDERR_TARGET);
 
  27   $::lxdebug->disable_sub_tracing;
 
  28   $::locale        = Locale->new($::lx_office_conf{system}->{language});
 
  30   $::auth          = SL::Auth->new(unit_tests_database => 1);
 
  31   die "Cannot find client with ID or name '$client'" if !$::auth->set_client($client);
 
  33   $::instance_conf = SL::InstanceConfiguration->new;
 
  34   $::request       = SL::Request->new( cgi => CGI->new({}), layout => SL::Layout::None->new );
 
  36   die 'cannot reach auth db'               unless $::auth->session_tables_present;
 
  38   $::auth->restore_session;
 
  40   require "bin/mozilla/common.pl";
 
  42   die "cannot find user $login"            unless %::myconfig = $::auth->read_user(login => $login);
 
  44   $::form->{login} = $login; # normaly implicit at login
 
  46   die "cannot find locale for user $login" unless $::locale   = Locale->new($::myconfig{countrycode});
 
  48   $::instance_conf->init;
 
  50   $SIG{__DIE__} = sub { Carp::confess( @_ ) } if $::lx_office_conf{debug}->{backtrace_on_die};
 
  55 sub templates_cache_writable {
 
  56   my $dir = $::lx_office_conf{paths}->{userspath} . '/templates-cache';
 
  59   # Try actually creating a file. Due to ACLs this might be possible
 
  60   # even if the basic Unix permissions and Perl's -w test say
 
  62   my $file = "${dir}/.writetest";
 
  63   my $out  = IO::File->new($file, "w") || return 0;