From 4de53b2de91079e0f8774e0afffbeda66910374c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 10 Nov 2007 00:02:44 +0000 Subject: [PATCH] enable testing of $session->request->uploads through WebGUI::PseudoRequest. Now we need a good utility method for sending a list of files to a sub and having it return a list of filehandles to those files --- t/Storage.t | 24 +++++++++++++++++++++++- t/lib/WebGUI/PseudoRequest.pm | 11 +++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/t/Storage.t b/t/Storage.t index 42e47b354..d62fb80be 100644 --- a/t/Storage.t +++ b/t/Storage.t @@ -16,10 +16,16 @@ our $todo; use WebGUI::Test; use WebGUI::Session; use WebGUI::Storage; +use WebGUI::PseudoRequest; use File::Spec; use Test::More; use Test::Deep; +use Test::MockObject; + +my $mock = Test::MockObject->new(); +$mock->fake_module('Apache2::Request'); +$mock->fake_module('Apache2::Upload'); my $extensionTests = [ { @@ -49,7 +55,7 @@ my $extensionTests = [ }, ]; -plan tests => 74 + scalar @{ $extensionTests }; # increment this value for each test you create +plan tests => 76 + scalar @{ $extensionTests }; # increment this value for each test you create my $session = WebGUI::Test->session; @@ -373,6 +379,22 @@ like ($hexStorage->getPath, qr/$hexValue/, 'Storage path uses hexId'); $session->config->set('caseInsensitiveOS', 0); +#################################################### +# +# addFileFromFormPost +# +#################################################### + +my $pseudoRequest = WebGUI::PseudoRequest->new(); +$session->{_request} = $pseudoRequest; + +$session->http->setStatus(413); +is($fileStore->addFileFromFormPost(), '', 'addFileFromFormPost returns empty string when HTTP status is 413'); + +$session->http->setStatus(200); +$pseudoRequest->upload('files', []); +is($fileStore->addFileFromFormPost('files'), undef, 'addFileFromFormPost returns empty string when asking for a form variable with no files attached'); + END { foreach my $stor ( $storage1, $storage2, $storage3, $copiedStorage, diff --git a/t/lib/WebGUI/PseudoRequest.pm b/t/lib/WebGUI/PseudoRequest.pm index d805235ea..e170b3691 100644 --- a/t/lib/WebGUI/PseudoRequest.pm +++ b/t/lib/WebGUI/PseudoRequest.pm @@ -145,6 +145,17 @@ sub status_line { return $self->{status_line}; } +sub upload { + my $self = shift; + my $formName = shift; + my $uploadFileHandles = shift; + return unless $formName; + if (defined $uploadFileHandles) { + $self->{uploads}->{$formName} = $uploadFileHandles; + } + return @{ $self->{uploads}->{$formName} }; +} + sub uri { my $self = shift; my $value = shift;