Tests: Tests skippen, wenn Template-Cache-Verzeichnis nicht schreibbar ist
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 2 Jul 2013 08:17:29 +0000 (10:17 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 2 Jul 2013 08:19:32 +0000 (10:19 +0200)
t/Support/TestSetup.pm
t/controllers/base/render.t
t/presenter/base/render.t

index 2fbbd2d..081e7b1 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 
 use Data::Dumper;
 use CGI qw( -no_xhtml);
+use IO::File;
 use SL::Auth;
 use SL::Form;
 use SL::Locale;
@@ -56,4 +57,19 @@ sub login {
   _login($client, $login);
 }
 
+sub templates_cache_writable {
+  my $dir = $::lx_office_conf{paths}->{userspath} . '/templates-cache';
+  return 1 if -w $dir;
+
+  # Try actually creating a file. Due to ACLs this might be possible
+  # even if the basic Unix permissions and Perl's -w test say
+  # otherwise.
+  my $file = "${dir}/.writetest";
+  my $out  = IO::File->new($file, "w") || return 0;
+  $out->close;
+  unlink $file;
+
+  return 1;
+}
+
 1;
index 0a15078..3d5bad0 100644 (file)
@@ -14,6 +14,12 @@ no warnings 'uninitialized';
 
 Support::TestSetup::login();
 
+if (!Support::TestSetup::templates_cache_writable()) {
+  plan skip_all => 'Cache dir not writable for this test';
+} else {
+  plan tests => 19;
+}
+
 sub reset_test_env {
   $ENV{HTTP_USER_AGENT} = 'Perl Tests';
 
index 5d7c96e..4e389f9 100644 (file)
@@ -9,6 +9,12 @@ use SL::Presenter;
 
 Support::TestSetup::login();
 
+if (!Support::TestSetup::templates_cache_writable()) {
+  plan skip_all => 'Cache dir not writable for this test';
+} else {
+  plan tests => 11;
+}
+
 my $pr = SL::Presenter->get;
 
 # Passing invalid parameters: