use strict;
-use Test::More tests => 11;
+use Test::More tests => 14;
use lib 't';
+
+use File::Temp;
use Support::TestSetup;
use Test::Exception;
use SL::File;
Support::TestSetup::login();
+my $temp_dir = File::Temp::tempdir("kivi-t-file-filesystem.XXXXXX", TMPDIR => 1, CLEANUP => 1);
+my $storage_dir = "$temp_dir/storage";
+
+mkdir($storage_dir) || die $!;
+
my $db = SL::DB::Object->new->db;
$db->dbh->do("UPDATE defaults SET doc_files = 't'");
-$db->dbh->do("UPDATE defaults SET doc_files_rootpath = '/var/tmp/kivifs'");
+$db->dbh->do("UPDATE defaults SET doc_files_rootpath = ?", undef, $storage_dir);
-my $scannerfile = '/var/tmp/f2';
+my $scannerfile = "${temp_dir}/f2";
clear_up();
reset_state();
$content5 = $file6[1]->get_content;
ok( $$content5 eq 'inhalt3 created' ,"file has right old content");
-print "\n\nController:\n";
+#print "\n\nController Test:\n";
# now test controller
#$::form->{object_id} = 1;
#$::form->{object_type}= 'sales_order';
#$::form->{file_type} = 'document';
+
+my $output;
+open(my $outputFH, '>', \$output) or die; # This shouldn't fail
+my $oldFH = select $outputFH;
+
$::form->{id} = $file1->id;
-print "id=".$::form->{id}."\n";
use SL::Controller::File;
SL::Controller::File->action_download();
+
+select $oldFH;
+close $outputFH;
+my @lines = split "\n" , $output;
+ok($lines[4] eq 'inhalt1 uploaded' ,"controller download has correct content");
+
+#some controller checks
$::form->{object_id} = 12345678;
$::form->{object_type} = undef;
+my $result='xx1';
eval {
SL::Controller::File->check_object_params();
+ $result='yy1';
1;
} or do {
- print $@;
+ $result=$@;
};
-$::form->{object_type} ='xx';
-$::form->{file_type} ='yy';
+$result = substr($result,0,14);
+#print $result."\n";
+ok($result eq "No object type","correct error 'No object type'");
+
+$::form->{object_type} ='sales_order';
+$::form->{file_type} ='';
+$result='xx2';
eval {
SL::Controller::File->check_object_params();
+ $result='yy2';
1;
} or do {
- print $@;
+ $result=$@;
};
+$result = substr($result,0,12);
+#print $result."\n";
+ok($result eq "No file type","correct error 'No file type'");
clear_up();
done_testing;
sub clear_up {
- SL::Dev::File->delete_all();
- unlink($scannerfile);
-};
+ # Cleaning up may fail.
+ eval {
+ SL::Dev::File->delete_all();
+ unlink($scannerfile);
+ };
+}
sub reset_state {
my %params = @_;