summaryrefslogtreecommitdiff
path: root/tests/units/Model/TaskFileTest.php
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-06-26 10:25:13 -0400
committerFrederic Guillot <fred@kanboard.net>2016-06-26 10:25:13 -0400
commit4a230d331ec220fc32a48525afb308af0d9787fa (patch)
tree514aa3d703155b7f97a2c77147c9fd74cef60f84 /tests/units/Model/TaskFileTest.php
parent922e0fb6de06a98774418612e0b0f75af72b6dbb (diff)
Added application and project roles validation for API procedure calls
Diffstat (limited to 'tests/units/Model/TaskFileTest.php')
-rw-r--r--tests/units/Model/TaskFileTest.php445
1 files changed, 0 insertions, 445 deletions
diff --git a/tests/units/Model/TaskFileTest.php b/tests/units/Model/TaskFileTest.php
deleted file mode 100644
index 2faee95c..00000000
--- a/tests/units/Model/TaskFileTest.php
+++ /dev/null
@@ -1,445 +0,0 @@
-<?php
-
-require_once __DIR__.'/../Base.php';
-
-use Kanboard\Model\TaskFileModel;
-use Kanboard\Model\TaskCreationModel;
-use Kanboard\Model\ProjectModel;
-
-class TaskFileTest extends Base
-{
- public function testCreation()
- {
- $projectModel = new ProjectModel($this->container);
- $fileModel = new TaskFileModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $this->assertEquals(1, $fileModel->create(1, 'test', '/tmp/foo', 10));
-
- $file = $fileModel->getById(1);
- $this->assertEquals('test', $file['name']);
- $this->assertEquals('/tmp/foo', $file['path']);
- $this->assertEquals(0, $file['is_image']);
- $this->assertEquals(1, $file['task_id']);
- $this->assertEquals(time(), $file['date'], '', 2);
- $this->assertEquals(0, $file['user_id']);
- $this->assertEquals(10, $file['size']);
-
- $this->assertEquals(2, $fileModel->create(1, 'test2.png', '/tmp/foobar', 10));
-
- $file = $fileModel->getById(2);
- $this->assertEquals('test2.png', $file['name']);
- $this->assertEquals('/tmp/foobar', $file['path']);
- $this->assertEquals(1, $file['is_image']);
- }
-
- public function testCreationWithFileNameTooLong()
- {
- $projectModel = new ProjectModel($this->container);
- $fileModel = new TaskFileModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $this->assertNotFalse($fileModel->create(1, 'test', '/tmp/foo', 10));
- $this->assertNotFalse($fileModel->create(1, str_repeat('a', 1000), '/tmp/foo', 10));
-
- $files = $fileModel->getAll(1);
- $this->assertNotEmpty($files);
- $this->assertCount(2, $files);
-
- $this->assertEquals(str_repeat('a', 255), $files[0]['name']);
- $this->assertEquals('test', $files[1]['name']);
- }
-
- public function testCreationWithSessionOpen()
- {
- $this->container['sessionStorage']->user = array('id' => 1);
-
- $projectModel = new ProjectModel($this->container);
- $fileModel = new TaskFileModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
- $this->assertEquals(1, $fileModel->create(1, 'test', '/tmp/foo', 10));
-
- $file = $fileModel->getById(1);
- $this->assertEquals('test', $file['name']);
- $this->assertEquals(1, $file['user_id']);
- }
-
- public function testGetAll()
- {
- $projectModel = new ProjectModel($this->container);
- $fileModel = new TaskFileModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $this->assertEquals(1, $fileModel->create(1, 'B.pdf', '/tmp/foo', 10));
- $this->assertEquals(2, $fileModel->create(1, 'A.png', '/tmp/foo', 10));
- $this->assertEquals(3, $fileModel->create(1, 'D.doc', '/tmp/foo', 10));
- $this->assertEquals(4, $fileModel->create(1, 'C.JPG', '/tmp/foo', 10));
-
- $fileModeliles = $fileModel->getAll(1);
- $this->assertNotEmpty($fileModeliles);
- $this->assertCount(4, $fileModeliles);
- $this->assertEquals('A.png', $fileModeliles[0]['name']);
- $this->assertEquals('B.pdf', $fileModeliles[1]['name']);
- $this->assertEquals('C.JPG', $fileModeliles[2]['name']);
- $this->assertEquals('D.doc', $fileModeliles[3]['name']);
-
- $fileModeliles = $fileModel->getAllImages(1);
- $this->assertNotEmpty($fileModeliles);
- $this->assertCount(2, $fileModeliles);
- $this->assertEquals('A.png', $fileModeliles[0]['name']);
- $this->assertEquals('C.JPG', $fileModeliles[1]['name']);
-
- $fileModeliles = $fileModel->getAllDocuments(1);
- $this->assertNotEmpty($fileModeliles);
- $this->assertCount(2, $fileModeliles);
- $this->assertEquals('B.pdf', $fileModeliles[0]['name']);
- $this->assertEquals('D.doc', $fileModeliles[1]['name']);
- }
-
- public function testIsImage()
- {
- $fileModel = new TaskFileModel($this->container);
-
- $this->assertTrue($fileModel->isImage('test.png'));
- $this->assertTrue($fileModel->isImage('test.jpeg'));
- $this->assertTrue($fileModel->isImage('test.gif'));
- $this->assertTrue($fileModel->isImage('test.jpg'));
- $this->assertTrue($fileModel->isImage('test.JPG'));
-
- $this->assertFalse($fileModel->isImage('test.bmp'));
- $this->assertFalse($fileModel->isImage('test'));
- $this->assertFalse($fileModel->isImage('test.pdf'));
- }
-
- public function testGetThumbnailPath()
- {
- $fileModel = new TaskFileModel($this->container);
- $this->assertEquals('thumbnails'.DIRECTORY_SEPARATOR.'test', $fileModel->getThumbnailPath('test'));
- }
-
- public function testGeneratePath()
- {
- $fileModel = new TaskFileModel($this->container);
-
- $this->assertStringStartsWith('tasks'.DIRECTORY_SEPARATOR.'34'.DIRECTORY_SEPARATOR, $fileModel->generatePath(34, 'test.png'));
- $this->assertNotEquals($fileModel->generatePath(34, 'test1.png'), $fileModel->generatePath(34, 'test2.png'));
- }
-
- public function testUploadFiles()
- {
- $fileModel = $this
- ->getMockBuilder('\Kanboard\Model\TaskFileModel')
- ->setConstructorArgs(array($this->container))
- ->setMethods(array('generateThumbnailFromFile'))
- ->getMock();
-
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $files = array(
- 'name' => array(
- 'file1.png',
- 'file2.doc',
- ),
- 'tmp_name' => array(
- '/tmp/phpYzdqkD',
- '/tmp/phpeEwEWG',
- ),
- 'error' => array(
- UPLOAD_ERR_OK,
- UPLOAD_ERR_OK,
- ),
- 'size' => array(
- 123,
- 456,
- ),
- );
-
- $fileModel
- ->expects($this->once())
- ->method('generateThumbnailFromFile');
-
- $this->container['objectStorage']
- ->expects($this->at(0))
- ->method('moveUploadedFile')
- ->with($this->equalTo('/tmp/phpYzdqkD'), $this->anything());
-
- $this->container['objectStorage']
- ->expects($this->at(1))
- ->method('moveUploadedFile')
- ->with($this->equalTo('/tmp/phpeEwEWG'), $this->anything());
-
- $this->assertTrue($fileModel->uploadFiles(1, $files));
-
- $files = $fileModel->getAll(1);
- $this->assertCount(2, $files);
-
- $this->assertEquals(1, $files[0]['id']);
- $this->assertEquals('file1.png', $files[0]['name']);
- $this->assertEquals(1, $files[0]['is_image']);
- $this->assertEquals(1, $files[0]['task_id']);
- $this->assertEquals(0, $files[0]['user_id']);
- $this->assertEquals(123, $files[0]['size']);
- $this->assertEquals(time(), $files[0]['date'], '', 2);
-
- $this->assertEquals(2, $files[1]['id']);
- $this->assertEquals('file2.doc', $files[1]['name']);
- $this->assertEquals(0, $files[1]['is_image']);
- $this->assertEquals(1, $files[1]['task_id']);
- $this->assertEquals(0, $files[1]['user_id']);
- $this->assertEquals(456, $files[1]['size']);
- $this->assertEquals(time(), $files[1]['date'], '', 2);
- }
-
- public function testUploadFilesWithEmptyFiles()
- {
- $fileModel = new TaskFileModel($this->container);
- $this->assertFalse($fileModel->uploadFiles(1, array()));
- }
-
- public function testUploadFilesWithUploadError()
- {
- $files = array(
- 'name' => array(
- 'file1.png',
- 'file2.doc',
- ),
- 'tmp_name' => array(
- '',
- '/tmp/phpeEwEWG',
- ),
- 'error' => array(
- UPLOAD_ERR_CANT_WRITE,
- UPLOAD_ERR_OK,
- ),
- 'size' => array(
- 123,
- 456,
- ),
- );
-
- $fileModel = new TaskFileModel($this->container);
- $this->assertFalse($fileModel->uploadFiles(1, $files));
- }
-
- public function testUploadFilesWithObjectStorageError()
- {
- $files = array(
- 'name' => array(
- 'file1.csv',
- 'file2.doc',
- ),
- 'tmp_name' => array(
- '/tmp/phpYzdqkD',
- '/tmp/phpeEwEWG',
- ),
- 'error' => array(
- UPLOAD_ERR_OK,
- UPLOAD_ERR_OK,
- ),
- 'size' => array(
- 123,
- 456,
- ),
- );
-
- $this->container['objectStorage']
- ->expects($this->at(0))
- ->method('moveUploadedFile')
- ->with($this->equalTo('/tmp/phpYzdqkD'), $this->anything())
- ->will($this->throwException(new \Kanboard\Core\ObjectStorage\ObjectStorageException('test')));
-
- $fileModel = new TaskFileModel($this->container);
- $this->assertFalse($fileModel->uploadFiles(1, $files));
- }
-
- public function testUploadFileContent()
- {
- $fileModel = $this
- ->getMockBuilder('\Kanboard\Model\TaskFileModel')
- ->setConstructorArgs(array($this->container))
- ->setMethods(array('generateThumbnailFromFile'))
- ->getMock();
-
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
- $data = 'test';
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $this->container['objectStorage']
- ->expects($this->once())
- ->method('put')
- ->with($this->anything(), $this->equalTo($data));
-
- $this->assertEquals(1, $fileModel->uploadContent(1, 'test.doc', base64_encode($data)));
-
- $files = $fileModel->getAll(1);
- $this->assertCount(1, $files);
-
- $this->assertEquals(1, $files[0]['id']);
- $this->assertEquals('test.doc', $files[0]['name']);
- $this->assertEquals(0, $files[0]['is_image']);
- $this->assertEquals(1, $files[0]['task_id']);
- $this->assertEquals(0, $files[0]['user_id']);
- $this->assertEquals(4, $files[0]['size']);
- $this->assertEquals(time(), $files[0]['date'], '', 2);
- }
-
- public function testUploadFileContentWithObjectStorageError()
- {
- $fileModel = $this
- ->getMockBuilder('\Kanboard\Model\TaskFileModel')
- ->setConstructorArgs(array($this->container))
- ->setMethods(array('generateThumbnailFromFile'))
- ->getMock();
-
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
- $data = 'test';
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $this->container['objectStorage']
- ->expects($this->once())
- ->method('put')
- ->with($this->anything(), $this->equalTo($data))
- ->will($this->throwException(new \Kanboard\Core\ObjectStorage\ObjectStorageException('test')));
-
- $this->assertFalse($fileModel->uploadContent(1, 'test.doc', base64_encode($data)));
- }
-
- public function testUploadScreenshot()
- {
- $fileModel = $this
- ->getMockBuilder('\Kanboard\Model\TaskFileModel')
- ->setConstructorArgs(array($this->container))
- ->setMethods(array('generateThumbnailFromData'))
- ->getMock();
-
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
- $data = 'test';
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
-
- $fileModel
- ->expects($this->once())
- ->method('generateThumbnailFromData');
-
- $this->container['objectStorage']
- ->expects($this->once())
- ->method('put')
- ->with($this->anything(), $this->equalTo($data));
-
- $this->assertEquals(1, $fileModel->uploadScreenshot(1, base64_encode($data)));
-
- $files = $fileModel->getAll(1);
- $this->assertCount(1, $files);
-
- $this->assertEquals(1, $files[0]['id']);
- $this->assertStringStartsWith('Screenshot taken ', $files[0]['name']);
- $this->assertEquals(1, $files[0]['is_image']);
- $this->assertEquals(1, $files[0]['task_id']);
- $this->assertEquals(0, $files[0]['user_id']);
- $this->assertEquals(4, $files[0]['size']);
- $this->assertEquals(time(), $files[0]['date'], '', 2);
- }
-
- public function testRemove()
- {
- $fileModel = new TaskFileModel($this->container);
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
- $this->assertEquals(1, $fileModel->create(1, 'test', 'tmp/foo', 10));
-
- $this->container['objectStorage']
- ->expects($this->once())
- ->method('remove')
- ->with('tmp/foo');
-
- $this->assertTrue($fileModel->remove(1));
- }
-
- public function testRemoveWithObjectStorageError()
- {
- $fileModel = new TaskFileModel($this->container);
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
- $this->assertEquals(1, $fileModel->create(1, 'test', 'tmp/foo', 10));
-
- $this->container['objectStorage']
- ->expects($this->once())
- ->method('remove')
- ->with('tmp/foo')
- ->will($this->throwException(new \Kanboard\Core\ObjectStorage\ObjectStorageException('test')));
-
- $this->assertFalse($fileModel->remove(1));
- }
-
- public function testRemoveImage()
- {
- $fileModel = new TaskFileModel($this->container);
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
- $this->assertEquals(1, $fileModel->create(1, 'image.gif', 'tmp/image.gif', 10));
-
- $this->container['objectStorage']
- ->expects($this->at(0))
- ->method('remove')
- ->with('tmp/image.gif');
-
- $this->container['objectStorage']
- ->expects($this->at(1))
- ->method('remove')
- ->with('thumbnails'.DIRECTORY_SEPARATOR.'tmp/image.gif');
-
- $this->assertTrue($fileModel->remove(1));
- }
-
- public function testRemoveAll()
- {
- $fileModel = new TaskFileModel($this->container);
- $projectModel = new ProjectModel($this->container);
- $taskCreationModel = new TaskCreationModel($this->container);
-
- $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
- $this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
- $this->assertEquals(1, $fileModel->create(1, 'test', 'tmp/foo', 10));
- $this->assertEquals(2, $fileModel->create(1, 'test', 'tmp/foo', 10));
-
- $this->container['objectStorage']
- ->expects($this->exactly(2))
- ->method('remove')
- ->with('tmp/foo');
-
- $this->assertTrue($fileModel->removeAll(1));
- }
-}