Bugzilla – Attachment 39628 Details for
Bug 6874
Attach files to bibliographic records
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 6874: Add unit tests for C4::UploadedFiles
Bug-6874-Add-unit-tests-for-C4UploadedFiles.patch (text/plain), 4.19 KB, created by
Marcel de Rooy
on 2015-05-28 12:51:53 UTC
(
hide
)
Description:
Bug 6874: Add unit tests for C4::UploadedFiles
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2015-05-28 12:51:53 UTC
Size:
4.19 KB
patch
obsolete
>From 5f5e5ef65499fd30f3a81b0f083863a83b956226 Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Thu, 11 Apr 2013 12:36:27 +0000 >Subject: [PATCH] Bug 6874: Add unit tests for C4::UploadedFiles >Content-Type: text/plain; charset=utf-8 > >Add unit tests for C4::UploadedFiles and move a variable >declaration at subroutine level instead of file level. >Add dependency to Test::CGI::Multipart > >Still works, and the newly-provided unit tests have good test >coverage: >C4/UploadedFiles.pm 90.7 65.0 66.7 100.0 100.0 0.2 86.4 > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> >Signed-off-by: Mark Tompsett <mtompset@hotmail.com> >Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > C4/Installer/PerlDependencies.pm | 5 ++++ > cataloguing/value_builder/upload.pl | 6 ++--- > t/db_dependent/UploadedFiles.t | 44 +++++++++++++++++++++++++++++++++++ > 3 files changed, 52 insertions(+), 3 deletions(-) > create mode 100644 t/db_dependent/UploadedFiles.t > >diff --git a/C4/Installer/PerlDependencies.pm b/C4/Installer/PerlDependencies.pm >index 7e382bd..acf932e 100644 >--- a/C4/Installer/PerlDependencies.pm >+++ b/C4/Installer/PerlDependencies.pm >@@ -737,6 +737,11 @@ our $PERL_DEPS = { > 'required' => '0', > 'min_ver' => '1.17', > }, >+ 'Test::CGI::Multipart' => { >+ 'usage' => 'Tests', >+ 'required' => '0', >+ 'min_ver' => '0.0.3', >+ }, > }; > > 1; >diff --git a/cataloguing/value_builder/upload.pl b/cataloguing/value_builder/upload.pl >index 03ad77b..7eb15e5 100755 >--- a/cataloguing/value_builder/upload.pl >+++ b/cataloguing/value_builder/upload.pl >@@ -26,8 +26,6 @@ use C4::Context; > use C4::Output; > use C4::UploadedFiles; > >-my $upload_path = C4::Context->preference('uploadPath'); >- > sub plugin_parameters { > my ( $dbh, $record, $tagslib, $i, $tabloop ) = @_; > return ""; >@@ -115,6 +113,7 @@ sub plugin { > -size => 50, > ); > >+ my $upload_path = C4::Context->preference('uploadPath'); > my $dirs_tree = [ { > name => '/', > value => '/', >@@ -137,7 +136,8 @@ sub plugin { > > # Build a hierarchy of directories > sub finddirs { >- my $base = shift || $upload_path; >+ my $base = shift; >+ my $upload_path = C4::Context->preference('uploadPath'); > my $found = 0; > my @dirs; > my @files = glob("$base/*"); >diff --git a/t/db_dependent/UploadedFiles.t b/t/db_dependent/UploadedFiles.t >new file mode 100644 >index 0000000..36605d2 >--- /dev/null >+++ b/t/db_dependent/UploadedFiles.t >@@ -0,0 +1,44 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+use File::Temp qw/ tempdir /; >+use Test::CGI::Multipart; >+use Test::More tests => 11; >+ >+use C4::Context; >+use C4::UploadedFiles; >+ >+# This simulates a multipart POST request with a file upload. >+my $tcm = new Test::CGI::Multipart; >+$tcm->upload_file( >+ name => 'testfile', >+ file => 'testfilename.txt', >+ value => "This is the content of testfilename.txt", >+); >+my $cgi = $tcm->create_cgi; >+ >+# Save the value of uploadPath and set it to a temporary directory >+my $uploadPath = C4::Context->preference('uploadPath'); >+my $tempdir = tempdir(CLEANUP => 1); >+C4::Context->set_preference('uploadPath', $tempdir); >+ >+my $testfilename = $cgi->param('testfile'); >+my $testfile_fh = $cgi->upload('testfile'); >+my $id = C4::UploadedFiles::UploadFile($testfilename, '', $testfile_fh->handle); >+ok($id, "File uploaded, id is $id"); >+ >+my $file = C4::UploadedFiles::GetUploadedFile($id); >+isa_ok($file, 'HASH', "GetUploadedFiles($id)"); >+foreach my $key (qw(id filename filepath dir)) { >+ ok(exists $file->{$key}, "GetUploadedFile($id)->{$key} exists"); >+} >+ >+ok(-e $file->{filepath}, "File $file->{filepath} exists"); >+ >+ok(C4::UploadedFiles::DelUploadedFile($id), "DelUploadedFile($id) returned true"); >+ok(! -e $file->{filepath}, "File $file->{filepath} does not exist anymore"); >+ >+C4::Context->set_preference('uploadPath', $uploadPath); >+ >+is(C4::UploadedFiles::UploadFile($testfilename, '../', $testfile_fh->handle), undef, 'UploadFile with $dir containing ".." return undef'); >+is(C4::UploadedFiles::GetUploadedFile(), undef, 'GetUploadedFile without parameters returns undef'); >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 6874
:
5439
|
5440
|
5764
|
7114
|
7980
|
8234
|
8468
|
10664
|
10673
|
10863
|
10982
|
11098
|
11634
|
12355
|
12356
|
12357
|
12358
|
14130
|
14131
|
14132
|
14133
|
16343
|
16354
|
16355
|
16356
|
16357
|
16370
|
16693
|
16694
|
16695
|
16696
|
16697
|
16698
|
16699
|
16712
|
16713
|
16714
|
16715
|
16716
|
16717
|
16718
|
16719
|
17368
|
17369
|
18767
|
18768
|
18769
|
18770
|
18771
|
18772
|
18773
|
18774
|
18775
|
18776
|
18777
|
18891
|
18892
|
18893
|
18894
|
20059
|
20060
|
20779
|
21432
|
21433
|
21434
|
21435
|
21436
|
21489
|
21543
|
21546
|
21635
|
21798
|
21799
|
21800
|
21801
|
21802
|
21803
|
23588
|
23589
|
23590
|
23591
|
23607
|
23608
|
23609
|
23610
|
23611
|
23612
|
23613
|
26418
|
26419
|
26420
|
26421
|
26422
|
26423
|
26424
|
26878
|
26879
|
26880
|
26881
|
26882
|
26883
|
26884
|
27114
|
27125
|
27154
|
27155
|
27225
|
30362
|
30363
|
30364
|
30365
|
30366
|
30367
|
30368
|
30369
|
30370
|
30371
|
32384
|
32385
|
32386
|
32387
|
32388
|
32389
|
32390
|
32391
|
32392
|
32393
|
36198
|
36199
|
36200
|
36201
|
36202
|
36203
|
36204
|
36205
|
36206
|
36207
|
36208
|
36209
|
36210
|
36211
|
36213
|
36214
|
36215
|
36216
|
36217
|
36218
|
36219
|
36220
|
36221
|
36222
|
36223
|
36224
|
36225
|
36226
|
36227
|
36228
|
36229
|
36230
|
36231
|
36232
|
37681
|
37682
|
37683
|
37684
|
37685
|
37686
|
37687
|
37688
|
37689
|
37690
|
37691
|
37692
|
37693
|
37694
|
37696
|
37697
|
37698
|
37699
|
37700
|
37701
|
37702
|
37703
|
37704
|
37705
|
37706
|
38911
|
38912
|
38913
|
38914
|
38915
|
38916
|
38917
|
38918
|
38919
|
38920
|
38921
|
38922
|
38923
|
38924
|
38925
|
38926
|
38927
|
38928
|
38929
|
38930
|
38931
|
38932
|
38933
|
38934
|
38935
|
38936
|
39113
|
39114
|
39115
|
39116
|
39117
|
39118
|
39119
|
39120
|
39121
|
39122
|
39123
|
39626
|
39627
|
39628
|
39629
|
39630
|
39631
|
39632
|
39633
|
39634
|
39635
|
39636
|
39637
|
39638
|
41275
|
41276
|
41277
|
41278
|
41279
|
41280
|
41281
|
41282
|
41283
|
41284
|
41285
|
41286
|
41287
|
41288
|
41448
|
41449
|
41450
|
41783