diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/connector/sabre/aborteduploaddetectionplugin.php | 100 | ||||
-rw-r--r-- | tests/lib/connector/sabre/file.php | 51 |
2 files changed, 46 insertions, 105 deletions
diff --git a/tests/lib/connector/sabre/aborteduploaddetectionplugin.php b/tests/lib/connector/sabre/aborteduploaddetectionplugin.php deleted file mode 100644 index 7e9f70ddcd3..00000000000 --- a/tests/lib/connector/sabre/aborteduploaddetectionplugin.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ -class Test_OC_Connector_Sabre_AbortedUploadDetectionPlugin extends PHPUnit_Framework_TestCase { - - /** - * @var \Sabre\DAV\Server - */ - private $server; - - /** - * @var OC_Connector_Sabre_AbortedUploadDetectionPlugin - */ - private $plugin; - - private function init($view) { - $this->server = new \Sabre\DAV\Server(); - $this->plugin = new OC_Connector_Sabre_AbortedUploadDetectionPlugin($view); - $this->plugin->initialize($this->server); - } - - /** - * @dataProvider lengthProvider - */ - public function testLength($expected, $headers) { - $this->init(null); - - $this->server->httpRequest = new \Sabre\HTTP\Request($headers); - $length = $this->plugin->getLength(); - $this->assertEquals($expected, $length); - } - - /** - * @dataProvider verifyContentLengthProvider - */ - public function testVerifyContentLength($method, $fileSize, $headers) { - $this->init($this->buildFileViewMock($fileSize)); - - $headers['REQUEST_METHOD'] = $method; - $this->server->httpRequest = new Sabre\HTTP\Request($headers); - $this->plugin->verifyContentLength('foo.txt'); - $this->assertTrue(true); - } - - /** - * @dataProvider verifyContentLengthFailedProvider - * @expectedException \Sabre\DAV\Exception\BadRequest - */ - public function testVerifyContentLengthFailed($method, $fileSize, $headers) { - $view = $this->buildFileViewMock($fileSize); - $this->init($view); - // we expect unlink to be called - $view->expects($this->once())->method('unlink'); - - $headers['REQUEST_METHOD'] = $method; - $this->server->httpRequest = new Sabre\HTTP\Request($headers); - $this->plugin->verifyContentLength('foo.txt'); - } - - public function verifyContentLengthProvider() { - return array( - array('PUT', 1024, array()), - array('PUT', 1024, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), - array('PUT', 512, array('HTTP_CONTENT_LENGTH' => '512')), - array('LOCK', 1024, array()), - array('LOCK', 1024, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), - array('LOCK', 512, array('HTTP_CONTENT_LENGTH' => '512')), - ); - } - - public function verifyContentLengthFailedProvider() { - return array( - array('PUT', 1025, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), - array('PUT', 525, array('HTTP_CONTENT_LENGTH' => '512')), - ); - } - - public function lengthProvider() { - return array( - array(null, array()), - array(1024, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), - array(512, array('HTTP_CONTENT_LENGTH' => '512')), - array(2048, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '2048', 'HTTP_CONTENT_LENGTH' => '1024')), - ); - } - - private function buildFileViewMock($fileSize) { - // mock filesystem - $view = $this->getMock('\OC\Files\View', array('filesize', 'unlink'), array(), '', false); - $view->expects($this->any())->method('filesize')->withAnyParameters()->will($this->returnValue($fileSize)); - - return $view; - } - -} diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php index 3dd5b328f46..ba4e775813b 100644 --- a/tests/lib/connector/sabre/file.php +++ b/tests/lib/connector/sabre/file.php @@ -29,7 +29,7 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { $file = new OC_Connector_Sabre_File($view, $info); // action - $etag = $file->put('test data'); + $file->put('test data'); } /** @@ -37,7 +37,9 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { */ public function testSimplePutFailsOnRename() { // setup - $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'rename', 'getRelativePath'), array(), '', false); + $view = $this->getMock('\OC\Files\View', + array('file_put_contents', 'rename', 'getRelativePath', 'filesize'), + array(), '', false); $view->expects($this->any()) ->method('file_put_contents') ->withAnyParameters() @@ -46,10 +48,14 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { ->method('rename') ->withAnyParameters() ->will($this->returnValue(false)); - $view->expects($this->any()) ->method('getRelativePath') ->will($this->returnValue('/test.txt')); + $view->expects($this->any()) + ->method('filesize') + ->will($this->returnValue(123456)); + + $_SERVER['CONTENT_LENGTH'] = 123456; $info = new \OC\Files\FileInfo('/test.txt', null, null, array( 'permissions' => \OCP\PERMISSION_ALL @@ -58,7 +64,7 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { $file = new OC_Connector_Sabre_File($view, $info); // action - $etag = $file->put('test data'); + $file->put('test data'); } /** @@ -81,7 +87,7 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { $file = new OC_Connector_Sabre_File($view, $info); // action - $etag = $file->put('test data'); + $file->put('test data'); } /** @@ -102,4 +108,39 @@ class Test_OC_Connector_Sabre_File extends PHPUnit_Framework_TestCase { $file = new OC_Connector_Sabre_File($view, $info); $file->setName('/super*star.txt'); } + + /** + * @expectedException \Sabre\DAV\Exception\BadRequest + */ + public function testUploadAbort() { + // setup + $view = $this->getMock('\OC\Files\View', + array('file_put_contents', 'rename', 'getRelativePath', 'filesize'), + array(), '', false); + $view->expects($this->any()) + ->method('file_put_contents') + ->withAnyParameters() + ->will($this->returnValue(true)); + $view->expects($this->any()) + ->method('rename') + ->withAnyParameters() + ->will($this->returnValue(false)); + $view->expects($this->any()) + ->method('getRelativePath') + ->will($this->returnValue('/test.txt')); + $view->expects($this->any()) + ->method('filesize') + ->will($this->returnValue(123456)); + + $_SERVER['CONTENT_LENGTH'] = 12345; + + $info = new \OC\Files\FileInfo('/test.txt', null, null, array( + 'permissions' => \OCP\PERMISSION_ALL + )); + + $file = new OC_Connector_Sabre_File($view, $info); + + // action + $file->put('test data'); + } } |