9 |
9 |
use SL::File;
|
10 |
10 |
use SL::Dev::File qw(create_uploaded create_scanned create_created);
|
11 |
11 |
|
12 |
|
|
13 |
12 |
Support::TestSetup::login();
|
14 |
13 |
|
15 |
14 |
my $temp_dir = File::Temp::tempdir("kivi-t-file-filesystem.XXXXXX", TMPDIR => 1, CLEANUP => 1);
|
16 |
15 |
my $storage_dir = "$temp_dir/storage";
|
17 |
16 |
|
|
17 |
my %common_params = (
|
|
18 |
object_id => 1,
|
|
19 |
object_type => 'sales_order',
|
|
20 |
);
|
|
21 |
|
18 |
22 |
mkdir($storage_dir) || die $!;
|
19 |
23 |
{
|
20 |
24 |
local $::lx_office_conf{paths}->{document_path} = $storage_dir;
|
21 |
25 |
$::instance_conf->data;
|
22 |
26 |
local $::instance_conf->{data}{doc_files} = 1;
|
23 |
27 |
|
24 |
|
my $scannerfile = "${temp_dir}/f2";
|
|
28 |
my $scanner_file = "${temp_dir}/f2";
|
25 |
29 |
|
26 |
30 |
clear_up();
|
27 |
|
reset_state();
|
28 |
31 |
|
29 |
|
my $file1 = create_uploaded( file_name => 'file1', file_contents => 'inhalt1 uploaded' );
|
30 |
|
my $file2 = create_scanned( file_name => 'file2', file_contents => 'inhalt2 scanned', file_path => $scannerfile );
|
31 |
|
my $file3 = create_created( file_name => 'file3', file_contents => 'inhalt3 created' );
|
32 |
|
my $file4 = create_created( file_name => 'file3', file_contents => 'inhalt3 new version');
|
|
32 |
note('testing SL::File');
|
33 |
33 |
|
34 |
|
is( SL::Dev::File::get_all_count(), 3,"total number of files created is 3");
|
35 |
|
ok( $file1->file_name eq 'file1' ,"file has right name");
|
|
34 |
my $file1 = create_uploaded( %common_params, file_name => 'file1', file_contents => 'content1 uploaded' );
|
|
35 |
my $file2 = create_scanned( %common_params, file_name => 'file2', file_contents => 'content2 scanned', file_path => $scanner_file );
|
|
36 |
my $file3 = create_created( %common_params, file_name => 'file3', file_contents => 'content3 created' );
|
|
37 |
my $file4 = create_created( %common_params, file_name => 'file3', file_contents => 'content3 new version');
|
|
38 |
|
|
39 |
is( SL::File->get_all_count(%common_params), 3, "3 files were created");
|
|
40 |
ok( $file1->file_name eq 'file1' , "file1 has correct name");
|
36 |
41 |
my $content1 = $file1->get_content;
|
37 |
|
ok( $$content1 eq 'inhalt1 uploaded' ,"file has right content");
|
|
42 |
ok( $$content1 eq 'content1 uploaded' , "file1 has correct content");
|
38 |
43 |
|
39 |
|
is( -f $scannerfile ? 1 : 0, 0,"scanned document is moved from scanner");
|
|
44 |
is( -f $scanner_file ? 1 : 0, 0, "scanned document was moved from scanner");
|
40 |
45 |
|
41 |
46 |
$file2->delete;
|
42 |
|
is( -f $scannerfile ? 1 : 0, 1,"scanned document is moved back to scanner");
|
43 |
|
my $content2 = File::Slurp::read_file($scannerfile);
|
44 |
|
ok( $content2 eq 'inhalt2 scanned' ,"scanned file has right content");
|
|
47 |
is( -f $scanner_file ? 1 : 0, 1, "scanned document was moved back to scanner");
|
|
48 |
my $content2 = File::Slurp::read_file($scanner_file);
|
|
49 |
ok( $content2 eq 'content2 scanned' , "scanned file has correct content");
|
45 |
50 |
|
46 |
|
my @file5 = SL::Dev::File::get_all(file_name => 'file3');
|
47 |
|
is( scalar( @file5), 1, "one actual file found");
|
|
51 |
my @file5 = SL::File->get_all(%common_params, file_name => 'file3');
|
|
52 |
is( scalar @file5, 1, "get_all file3: one currnt file found");
|
48 |
53 |
my $content5 = $file5[0]->get_content();
|
49 |
|
ok( $$content5 eq 'inhalt3 new version' ,"file has right actual content");
|
50 |
|
|
51 |
|
my @file6 = SL::Dev::File::get_all_versions(file_name => 'file3');
|
52 |
|
is( scalar( @file6), 2,"two file versions found");
|
53 |
|
$content5 = $file6[0]->get_content;
|
54 |
|
ok( $$content5 eq 'inhalt3 new version' ,"file has right actual content");
|
55 |
|
$content5 = $file6[1]->get_content;
|
56 |
|
ok( $$content5 eq 'inhalt3 created' ,"file has right old content");
|
|
54 |
ok( $$content5 eq 'content3 new version' , "file has correct current content");
|
57 |
55 |
|
58 |
|
#print "\n\nController Test:\n";
|
59 |
|
# now test controller
|
60 |
|
#$::form->{object_id} = 1;
|
61 |
|
#$::form->{object_type}= 'sales_order';
|
62 |
|
#$::form->{file_type} = 'document';
|
|
56 |
my @file6 = SL::File->get_all_versions(%common_params, file_name => 'file3');
|
|
57 |
is( scalar @file6 , 2, "file3: two file versions found");
|
|
58 |
my $content6 = $file6[0]->get_content;
|
|
59 |
ok( $$content6 eq 'content3 new version' , "file has correct current content");
|
|
60 |
$content6 = $file6[1]->get_content;
|
|
61 |
ok( $$content6 eq 'content3 created' , "file has correct old content");
|
63 |
62 |
|
|
63 |
note('testing controller');
|
64 |
64 |
my $output;
|
65 |
65 |
open(my $outputFH, '>', \$output) or die; # This shouldn't fail
|
66 |
66 |
my $oldFH = select $outputFH;
|
67 |
67 |
|
68 |
|
$::form->{id} = $file1->id;
|
|
68 |
$::form->{id} = $file1->id;
|
69 |
69 |
use SL::Controller::File;
|
70 |
70 |
SL::Controller::File->action_download();
|
71 |
71 |
|
72 |
72 |
select $oldFH;
|
73 |
73 |
close $outputFH;
|
74 |
74 |
my @lines = split "\n" , $output;
|
75 |
|
ok($lines[4] eq 'inhalt1 uploaded' ,"controller download has correct content");
|
|
75 |
ok($lines[4] eq 'content1 uploaded', "controller download has correct content");
|
76 |
76 |
|
77 |
77 |
#some controller checks
|
|
78 |
$::form = Support::TestSetup->create_new_form;
|
78 |
79 |
$::form->{object_id} = 12345678;
|
79 |
80 |
$::form->{object_type} = undef;
|
80 |
81 |
my $result='xx1';
|
81 |
82 |
eval {
|
82 |
83 |
SL::Controller::File->check_object_params();
|
83 |
|
$result='yy1';
|
|
84 |
$result = 'yy1';
|
84 |
85 |
1;
|
85 |
86 |
} or do {
|
86 |
|
$result=$@;
|
|
87 |
$result = $@;
|
87 |
88 |
};
|
88 |
|
$result = substr($result,0,14);
|
89 |
|
#print $result."\n";
|
90 |
|
ok($result eq "No object type","correct error 'No object type'");
|
|
89 |
is(substr($result,0,14), "No object type", "controller error response 'No object type' ok");
|
|
90 |
|
|
91 |
$::form = Support::TestSetup->create_new_form;
|
|
92 |
$::form->{object_type} = 'sales_order';
|
|
93 |
$::form->{file_type} = '';
|
91 |
94 |
|
92 |
|
$::form->{object_type} ='sales_order';
|
93 |
|
$::form->{file_type} ='';
|
94 |
95 |
$result='xx2';
|
95 |
96 |
eval {
|
96 |
97 |
SL::Controller::File->check_object_params();
|
... | ... | |
99 |
100 |
} or do {
|
100 |
101 |
$result=$@;
|
101 |
102 |
};
|
102 |
|
$result = substr($result,0,12);
|
103 |
|
#print $result."\n";
|
104 |
|
ok($result eq "No file type","correct error 'No file type'");
|
105 |
|
|
106 |
|
clear_up();
|
107 |
|
done_testing;
|
|
103 |
is(substr($result,0,12), "No file type", "controller error response 'No file type' ok");
|
108 |
104 |
|
109 |
105 |
sub clear_up {
|
110 |
106 |
# Cleaning up may fail.
|
111 |
107 |
eval {
|
112 |
|
SL::Dev::File::delete_all();
|
113 |
|
unlink($scannerfile);
|
|
108 |
SL::File->delete_all(%common_params);
|
|
109 |
unlink($scanner_file);
|
114 |
110 |
};
|
115 |
111 |
}
|
116 |
112 |
|
117 |
113 |
}
|
118 |
114 |
|
119 |
|
sub reset_state {
|
120 |
|
my %params = @_;
|
121 |
|
|
122 |
|
};
|
|
115 |
clear_up();
|
|
116 |
done_testing;
|
123 |
117 |
|
124 |
118 |
1;
|
SL::Dev::File und t/file/filesystem.t überarbeitet
SL/Dev/File.pm:
filesystem.t, daher in den Test verlagert.
Anzahl der zu tippenden Zeichen in Tests verringern, sondern allgemeine
Funktionen für verschiedene Tests bereitstellen oder sinnvolle Defaults
vorbelegen