diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-30 11:36:08 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-30 11:36:08 +0200 |
commit | c62dc4fa80d622ed7651029e9ddff2a6c6327143 (patch) | |
tree | 897a298b43f58b07de74188ae38f95965e9846d5 /tests/lib/connector | |
parent | fdc87eaeb360ad14ed243368ea8f74aafed32304 (diff) | |
parent | ebb2278a6770cc68698e1ba5cb914d615b573519 (diff) | |
download | nextcloud-server-c62dc4fa80d622ed7651029e9ddff2a6c6327143.tar.gz nextcloud-server-c62dc4fa80d622ed7651029e9ddff2a6c6327143.zip |
Merge branch 'master' into fixing-4011-master
Conflicts:
lib/connector/sabre/directory.php
Diffstat (limited to 'tests/lib/connector')
-rw-r--r-- | tests/lib/connector/sabre/aborteduploaddetectionplugin.php | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/lib/connector/sabre/aborteduploaddetectionplugin.php b/tests/lib/connector/sabre/aborteduploaddetectionplugin.php new file mode 100644 index 00000000000..bef0e4c4d7d --- /dev/null +++ b/tests/lib/connector/sabre/aborteduploaddetectionplugin.php @@ -0,0 +1,97 @@ +<?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; + + public function setUp() { + $this->server = new Sabre_DAV_Server(); + $this->plugin = new OC_Connector_Sabre_AbortedUploadDetectionPlugin(); + $this->plugin->initialize($this->server); + } + + /** + * @dataProvider lengthProvider + */ + public function testLength($expected, $headers) + { + $this->server->httpRequest = new Sabre_HTTP_Request($headers); + $length = $this->plugin->getLength(); + $this->assertEquals($expected, $length); + } + + /** + * @dataProvider verifyContentLengthProvider + */ + public function testVerifyContentLength($fileSize, $headers) + { + $this->plugin->fileView = $this->buildFileViewMock($fileSize); + + $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($fileSize, $headers) + { + $this->plugin->fileView = $this->buildFileViewMock($fileSize); + + // we expect unlink to be called + $this->plugin->fileView->expects($this->once())->method('unlink'); + + + $this->server->httpRequest = new Sabre_HTTP_Request($headers); + $this->plugin->verifyContentLength('foo.txt'); + } + + public function verifyContentLengthProvider() { + return array( + array(1024, array()), + array(1024, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), + array(512, array('HTTP_CONTENT_LENGTH' => '512')), + ); + } + + public function verifyContentLengthFailedProvider() { + return array( + array(1025, array('HTTP_X_EXPECTED_ENTITY_LENGTH' => '1024')), + array(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 filesysten + $view = $this->getMock('\OC\Files\View', array('filesize', 'unlink'), array(), '', FALSE); + $view->expects($this->any())->method('filesize')->withAnyParameters()->will($this->returnValue($fileSize)); + + return $view; + } + +} |