From 048aefd5cb041b25973aab286c1fb4b729849161 Mon Sep 17 00:00:00 2001 From: pbarroca <pbarroca@git-test.afi-sa.fr> Date: Fri, 8 Jun 2012 16:05:38 +0000 Subject: [PATCH] Couverture MultiUpload --- library/Class/MultiUpload/HandlerForm.php | 37 ++++++++++++++++++- .../Class/MultiUpload/HandlersTest.php | 13 ++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/library/Class/MultiUpload/HandlerForm.php b/library/Class/MultiUpload/HandlerForm.php index 7485d2727a3..ace229bd63d 100644 --- a/library/Class/MultiUpload/HandlerForm.php +++ b/library/Class/MultiUpload/HandlerForm.php @@ -19,6 +19,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class Class_MultiUpload_HandlerForm extends Class_MultiUpload_Handler { + protected $_uploadMover; + /** * @param string $path * @return type @@ -29,7 +31,7 @@ class Class_MultiUpload_HandlerForm extends Class_MultiUpload_Handler { return false; } - if (!move_uploaded_file($_FILES['qqfile']['tmp_name'], $path)) { + if (!$this->moveUploadedFile($path)) { $this->_error = 'Cannot move uploaded file to ' . $path; return false; @@ -39,6 +41,31 @@ class Class_MultiUpload_HandlerForm extends Class_MultiUpload_Handler { } + /** + * @category testing + * @return bool + */ + public function moveUploadedFile($path) { + return $this->getUploadMover()->moveUploadedFile($path); + } + + + /** + * @category testing + */ + public function setUploadMover($uploadMover) { + $this->_uploadMover = $uploadMover; + return $this; + } + + + public function getUploadMover() { + if (null != $this->_uploadMover) + return $this->_uploadMover; + return new Class_MultiUpload_HandlerForm_UploadMover(); + } + + /** * @return string */ @@ -54,4 +81,12 @@ class Class_MultiUpload_HandlerForm extends Class_MultiUpload_Handler { return $_FILES['qqfile']['size']; } } + + +class Class_MultiUpload_HandlerForm_UploadMover { + public function moveUploadedFile($path) { + return move_uploaded_file($_FILES['qqfile']['tmp_name'], $path); + } +} + ?> \ No newline at end of file diff --git a/tests/library/Class/MultiUpload/HandlersTest.php b/tests/library/Class/MultiUpload/HandlersTest.php index c3540d15135..ed64619c1e8 100644 --- a/tests/library/Class/MultiUpload/HandlersTest.php +++ b/tests/library/Class/MultiUpload/HandlersTest.php @@ -121,6 +121,17 @@ class MultiUploalHandlerFormTest extends MultiUploadHandlerTestCase { $this->assertFalse($this->_handler->save(sys_get_temp_dir() . '/test.gif')); $this->assertStringStartsWith('Cannot move uploaded file to', - $this->_handler->getError()); + $this->_handler->getError()); } + + + /** @test */ + public function withSizeAndUploadMovedSaveShouldReturnTrue() { + $_FILES['qqfile']['size'] = '111001'; + $this->_handler->setUploadMover(Storm_Test_ObjectWrapper::mock() + ->whenCalled('moveUploadedFile') + ->answers(true)); + $this->assertTrue($this->_handler->save(sys_get_temp_dir(). '/test.gif')); + } + } \ No newline at end of file -- GitLab