+ # testing delete via UploadedFiles (plural)
+ my $delete = Koha::UploadedFiles->search({ id => $id })->delete;
+ isnt( $delete, "0E0", 'Delete successful' );
+ isnt( -e $path, 1, 'File no longer found after delete' );
+ is( Koha::UploadedFiles->find( $id ), undef, 'Record also gone' );
+
+ # testing delete via UploadedFile (singular)
+ # Note that find returns a Koha::Object
+ $upl = Koha::Uploader->new({ tmp => 1 });
+ $upl->cgi;
+ my $kohaobj = Koha::UploadedFiles->find( $upl->result );
+ $path = $kohaobj->full_path;
+ $delete = $kohaobj->delete;
+ ok( $delete=~/^-?1$/, 'Delete successful' );
+ isnt( -e $path, 1, 'File no longer found after delete' );
+
+ # add another record with TestBuilder, so file does not exist
+ # catch warning
+ my $upload01 = $builder->build({ source => 'UploadedFile' });
+ warning_like { $delete = Koha::UploadedFiles->find( $upload01->{id} )->delete; }
+ qr/file was missing/,
+ 'delete warns when file is missing';
+ ok( $delete=~/^-?1$/, 'Deleting record was successful' );
+ is( Koha::UploadedFiles->count, 4, 'Back to four uploads now' );
+
+ # add another one with TestBuilder and delete twice (file does not exist)
+ $upload01 = $builder->build({ source => 'UploadedFile' });
+ $kohaobj = Koha::UploadedFiles->find( $upload01->{id} );
+ $delete = $kohaobj->delete({ keep_file => 1 });
+ $delete = $kohaobj->delete({ keep_file => 1 });
+ ok( $delete =~ /^(0E0|-1)$/, 'Repeated delete unsuccessful' );
+ # NOTE: Koha::Object->delete does not return 0E0 (yet?)
+};
+
+subtest 'Test delete_missing' => sub {
+ plan tests => 5;
+
+ # If we add files via TestBuilder, they do not exist
+ my $upload01 = $builder->build({ source => 'UploadedFile' });
+ my $upload02 = $builder->build({ source => 'UploadedFile' });
+ # dry run first
+ my $deleted = Koha::UploadedFiles->delete_missing({ keep_record => 1 });
+ is( $deleted, 2, 'Expect two records with missing files' );
+ isnt( Koha::UploadedFiles->find( $upload01->{id} ), undef, 'Not deleted' );
+ $deleted = Koha::UploadedFiles->delete_missing;
+ ok( $deleted =~ /^(2|-1)$/, 'Deleted two records with missing files' );
+ is( Koha::UploadedFiles->search({
+ id => [ $upload01->{id}, $upload02->{id} ],
+ })->count, 0, 'Records are gone' );
+ # Repeat it
+ $deleted = Koha::UploadedFiles->delete_missing;
+ is( $deleted, "0E0", "Return value of 0E0 expected" );
+};
+
+subtest 'Call search_term with[out] private flag' => sub {
+ plan tests => 3;
+
+ my @recs = Koha::UploadedFiles->search_term({ term => 'file' });
+ is( @recs, 1, 'Returns only one public result' );
+ is( $recs[0]->filename, 'file3', 'Should be file3' );
+
+ is( Koha::UploadedFiles->search_term({
+ term => 'file', include_private => 1,
+ })->count, 4, 'Returns now four results' );
+};
+
+subtest 'Simple tests for httpheaders and getCategories' => sub {
+ plan tests => 2;