Skip to content
Snippets Groups Projects
Commit 3fa5271f authored by Thomas Müller's avatar Thomas Müller
Browse files

adding unit tests

parent 0c44cdd4
No related branches found
No related tags found
No related merge requests found
<?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);
$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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment