X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Ffile%2Ffilesystem.t;h=05e3284af54aa0ecf730cfae5c5a974ab04926be;hb=c39e831b3bceef01a851a0825ce6b19d1ddc3eda;hp=aa19ac7147f378b68abe04321e09dd39593c2521;hpb=c0b530184e94d6c61ea15b3c75bd66f51fe958eb;p=kivitendo-erp.git diff --git a/t/file/filesystem.t b/t/file/filesystem.t index aa19ac714..05e3284af 100644 --- a/t/file/filesystem.t +++ b/t/file/filesystem.t @@ -1,5 +1,5 @@ use strict; -use Test::More tests => 11; +use Test::More tests => 14; use lib 't'; @@ -7,93 +7,112 @@ use File::Temp; use Support::TestSetup; use Test::Exception; use SL::File; -use SL::Dev::File; +use SL::Dev::File qw(create_uploaded create_scanned create_created); 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 %common_params = ( + object_id => 1, + object_type => 'sales_order', +); -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 = ?", undef, $storage_dir); +mkdir($storage_dir) || die $!; +{ +local $::lx_office_conf{paths}->{document_path} = $storage_dir; +$::instance_conf->data; +local $::instance_conf->{data}{doc_files} = 1; -my $scannerfile = "${temp_dir}/f2"; +my $scanner_file = "${temp_dir}/f2"; clear_up(); -reset_state(); -my $file1 = SL::Dev::File::create_uploaded( file_name => 'file1', file_contents => 'inhalt1 uploaded' ); -my $file2 = SL::Dev::File::create_scanned( file_name => 'file2', file_contents => 'inhalt2 scanned', file_path => $scannerfile ); -my $file3 = SL::Dev::File::create_created( file_name => 'file3', file_contents => 'inhalt3 created' ); -my $file4 = SL::Dev::File::create_created( file_name => 'file3', file_contents => 'inhalt3 new version'); +note('testing SL::File'); + +my $file1 = create_uploaded( %common_params, file_name => 'file1', file_contents => 'content1 uploaded' ); +my $file2 = create_scanned( %common_params, file_name => 'file2', file_contents => 'content2 scanned', file_path => $scanner_file ); +my $file3 = create_created( %common_params, file_name => 'file3', file_contents => 'content3 created' ); +my $file4 = create_created( %common_params, file_name => 'file3', file_contents => 'content3 new version'); -is( SL::Dev::File->get_all_count(), 3,"total number of files created is 3"); -ok( $file1->file_name eq 'file1' ,"file has right name"); +is( SL::File->get_all_count(%common_params), 3, "3 files were created"); +ok( $file1->file_name eq 'file1' , "file1 has correct name"); my $content1 = $file1->get_content; -ok( $$content1 eq 'inhalt1 uploaded' ,"file has right content"); +ok( $$content1 eq 'content1 uploaded' , "file1 has correct content"); -is( -f $scannerfile ? 1 : 0, 0,"scanned document is moved from scanner"); +is( -f $scanner_file ? 1 : 0, 0, "scanned document was moved from scanner"); $file2->delete; -is( -f $scannerfile ? 1 : 0, 1,"scanned document is moved back to scanner"); -my $content2 = File::Slurp::read_file($scannerfile); -ok( $content2 eq 'inhalt2 scanned' ,"scanned file has right content"); +is( -f $scanner_file ? 1 : 0, 1, "scanned document was moved back to scanner"); +my $content2 = File::Slurp::read_file($scanner_file); +ok( $content2 eq 'content2 scanned' , "scanned file has correct content"); -my @file5 = SL::Dev::File->get_all(file_name => 'file3'); -is( scalar( @file5), 1, "one actual file found"); +my @file5 = SL::File->get_all(%common_params, file_name => 'file3'); +is( scalar @file5, 1, "get_all file3: one currnt file found"); my $content5 = $file5[0]->get_content(); -ok( $$content5 eq 'inhalt3 new version' ,"file has right actual content"); - -my @file6 = SL::Dev::File->get_all_versions(file_name => 'file3'); -is( scalar( @file6), 2,"two file versions found"); -$content5 = $file6[0]->get_content; -ok( $$content5 eq 'inhalt3 new version' ,"file has right actual content"); -$content5 = $file6[1]->get_content; -ok( $$content5 eq 'inhalt3 created' ,"file has right old content"); - -print "\n\nController:\n"; -# now test controller -#$::form->{object_id} = 1; -#$::form->{object_type}= 'sales_order'; -#$::form->{file_type} = 'document'; -$::form->{id} = $file1->id; -print "id=".$::form->{id}."\n"; +ok( $$content5 eq 'content3 new version' , "file has correct current content"); + +my @file6 = SL::File->get_all_versions(%common_params, file_name => 'file3'); +is( scalar @file6 , 2, "file3: two file versions found"); +my $content6 = $file6[0]->get_content; +ok( $$content6 eq 'content3 new version' , "file has correct current content"); +$content6 = $file6[1]->get_content; +ok( $$content6 eq 'content3 created' , "file has correct old content"); + +note('testing controller'); +my $output; +open(my $outputFH, '>', \$output) or die; # This shouldn't fail +my $oldFH = select $outputFH; + +$::form->{id} = $file1->id; use SL::Controller::File; SL::Controller::File->action_download(); + +select $oldFH; +close $outputFH; +my @lines = split "\n" , $output; +ok($lines[4] eq 'content1 uploaded', "controller download has correct content"); + +#some controller checks +$::form = Support::TestSetup->create_new_form; $::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'; +is(substr($result,0,14), "No object type", "controller error response 'No object type' ok"); + +$::form = Support::TestSetup->create_new_form; +$::form->{object_type} = 'sales_order'; +$::form->{file_type} = ''; + +$result='xx2'; eval { SL::Controller::File->check_object_params(); + $result='yy2'; 1; } or do { - print $@; + $result=$@; }; - -clear_up(); -done_testing; +is(substr($result,0,12), "No file type", "controller error response 'No file type' ok"); sub clear_up { # Cleaning up may fail. eval { - SL::Dev::File->delete_all(); - unlink($scannerfile); + SL::File->delete_all(%common_params); + unlink($scanner_file); }; } -sub reset_state { - my %params = @_; +} -}; +clear_up(); +done_testing; 1;