* PreviewController test * PublicPreview test * Versions Preview test * Trash Preview test Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>pull/1741/head
parent
87855aa97b
commit
55af6b45f7
@ -0,0 +1,193 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
namespace OCA\Files_Sharing\Tests\Controller; |
||||
|
||||
use OCA\Files_Sharing\Controller\PublicPreviewController; |
||||
use OCP\AppFramework\Http; |
||||
use OCP\AppFramework\Http\DataResponse; |
||||
use OCP\AppFramework\Http\FileDisplayResponse; |
||||
use OCP\Constants; |
||||
use OCP\Files\File; |
||||
use OCP\Files\Folder; |
||||
use OCP\Files\NotFoundException; |
||||
use OCP\Files\SimpleFS\ISimpleFile; |
||||
use OCP\IPreview; |
||||
use OCP\IRequest; |
||||
use OCP\Share\Exceptions\ShareNotFound; |
||||
use OCP\Share\IManager; |
||||
use OCP\Share\IShare; |
||||
use Punic\Data; |
||||
use Test\TestCase; |
||||
|
||||
class PublicPreviewControllerTest extends TestCase { |
||||
|
||||
/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $previewManager; |
||||
|
||||
/** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $shareManager; |
||||
|
||||
/** @var PublicPreviewController */ |
||||
private $controller; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->previewManager = $this->createMock(IPreview::class); |
||||
$this->shareManager = $this->createMock(IManager::class); |
||||
|
||||
$this->controller = new PublicPreviewController( |
||||
'files_sharing', |
||||
$this->createMock(IRequest::class), |
||||
$this->shareManager, |
||||
$this->previewManager |
||||
); |
||||
} |
||||
|
||||
public function testInvalidToken() { |
||||
$res = $this->controller->getPreview('file', 10, 10, ''); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidWidth() { |
||||
$res = $this->controller->getPreview('file', 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidHeight() { |
||||
$res = $this->controller->getPreview('file', 10, 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidShare() { |
||||
$this->shareManager->method('getShareByToken') |
||||
->with($this->equalTo('token')) |
||||
->willThrowException(new ShareNotFound()); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, 'token'); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testShareNotAccessable() { |
||||
$share = $this->createMock(IShare::class); |
||||
$this->shareManager->method('getShareByToken') |
||||
->with($this->equalTo('token')) |
||||
->willReturn($share); |
||||
|
||||
$share->method('getPermissions') |
||||
->willReturn(0); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, 'token'); |
||||
$expected = new DataResponse([], Http::STATUS_FORBIDDEN); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testPreviewFile() { |
||||
$share = $this->createMock(IShare::class); |
||||
$this->shareManager->method('getShareByToken') |
||||
->with($this->equalTo('token')) |
||||
->willReturn($share); |
||||
|
||||
$share->method('getPermissions') |
||||
->willReturn(Constants::PERMISSION_READ); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$share->method('getNode') |
||||
->willReturn($file); |
||||
|
||||
$preview = $this->createMock(ISimpleFile::class); |
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, false) |
||||
->willReturn($preview); |
||||
|
||||
$preview->method('getMimeType') |
||||
->willReturn('myMime'); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, 'token', true); |
||||
$expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'myMime']); |
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testPreviewFolderInvalidFile() { |
||||
$share = $this->createMock(IShare::class); |
||||
$this->shareManager->method('getShareByToken') |
||||
->with($this->equalTo('token')) |
||||
->willReturn($share); |
||||
|
||||
$share->method('getPermissions') |
||||
->willReturn(Constants::PERMISSION_READ); |
||||
|
||||
$folder = $this->createMock(Folder::class); |
||||
$share->method('getNode') |
||||
->willReturn($folder); |
||||
|
||||
$folder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willThrowException(new NotFoundException()); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, 'token', true); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
|
||||
public function testPreviewFolderValidFile() { |
||||
$share = $this->createMock(IShare::class); |
||||
$this->shareManager->method('getShareByToken') |
||||
->with($this->equalTo('token')) |
||||
->willReturn($share); |
||||
|
||||
$share->method('getPermissions') |
||||
->willReturn(Constants::PERMISSION_READ); |
||||
|
||||
$folder = $this->createMock(Folder::class); |
||||
$share->method('getNode') |
||||
->willReturn($folder); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$folder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($file); |
||||
|
||||
$preview = $this->createMock(ISimpleFile::class); |
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, false) |
||||
->willReturn($preview); |
||||
|
||||
$preview->method('getMimeType') |
||||
->willReturn('myMime'); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, 'token', true); |
||||
$expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'myMime']); |
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
} |
||||
@ -0,0 +1,181 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
namespace OCA\Files_Trashbin\Tests\Controller; |
||||
|
||||
use OCA\Files_Trashbin\Controller\PreviewController; |
||||
use OCP\AppFramework\Http; |
||||
use OCP\AppFramework\Http\DataResponse; |
||||
use OCP\AppFramework\Http\FileDisplayResponse; |
||||
use OCP\Files\File; |
||||
use OCP\Files\Folder; |
||||
use OCP\Files\IMimeTypeDetector; |
||||
use OCP\Files\IRootFolder; |
||||
use OCP\Files\NotFoundException; |
||||
use OCP\Files\SimpleFS\ISimpleFile; |
||||
use OCP\IPreview; |
||||
use OCP\IRequest; |
||||
use Test\TestCase; |
||||
|
||||
class PreviewControllerTest extends TestCase { |
||||
|
||||
/** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $rootFolder; |
||||
|
||||
/** @var string */ |
||||
private $userId; |
||||
|
||||
/** @var IMimeTypeDetector|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $mimeTypeDetector; |
||||
|
||||
/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $previewManager; |
||||
|
||||
/** @var PreviewController */ |
||||
private $controller; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->rootFolder = $this->createMock(IRootFolder::class); |
||||
$this->userId = 'user'; |
||||
$this->mimeTypeDetector = $this->createMock(IMimeTypeDetector::class); |
||||
$this->previewManager = $this->createMock(IPreview::class); |
||||
|
||||
$this->controller = new PreviewController( |
||||
'files_versions', |
||||
$this->createMock(IRequest::class), |
||||
$this->rootFolder, |
||||
$this->userId, |
||||
$this->mimeTypeDetector, |
||||
$this->previewManager |
||||
); |
||||
} |
||||
|
||||
public function testInvalidFile() { |
||||
$res = $this->controller->getPreview(''); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidWidth() { |
||||
$res = $this->controller->getPreview('file', 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidHeight() { |
||||
$res = $this->controller->getPreview('file', 10, 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testValidPreview() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$userRoot = $this->createMock(Folder::class); |
||||
$trash = $this->createMock(Folder::class); |
||||
|
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->userId) |
||||
->willReturn($userFolder); |
||||
$userFolder->method('getParent') |
||||
->willReturn($userRoot); |
||||
$userRoot->method('get') |
||||
->with('files_trashbin/files') |
||||
->willReturn($trash); |
||||
|
||||
$this->mimeTypeDetector->method('detectPath') |
||||
->with($this->equalTo('file')) |
||||
->willReturn('myMime'); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$trash->method('get') |
||||
->with($this->equalTo('file.1234')) |
||||
->willReturn($file); |
||||
$file->method('getName') |
||||
->willReturn('file.1234'); |
||||
|
||||
$preview = $this->createMock(ISimpleFile::class); |
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, true, IPreview::MODE_FILL, 'myMime') |
||||
->willReturn($preview); |
||||
$preview->method('getMimeType') |
||||
->willReturn('previewMime'); |
||||
|
||||
$res = $this->controller->getPreview('file.1234', 10, 10); |
||||
$expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'previewMime']); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testTrashFileNotFound() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$userRoot = $this->createMock(Folder::class); |
||||
$trash = $this->createMock(Folder::class); |
||||
|
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->userId) |
||||
->willReturn($userFolder); |
||||
$userFolder->method('getParent') |
||||
->willReturn($userRoot); |
||||
$userRoot->method('get') |
||||
->with('files_trashbin/files') |
||||
->willReturn($trash); |
||||
|
||||
$trash->method('get') |
||||
->with($this->equalTo('file.1234')) |
||||
->willThrowException(new NotFoundException()); |
||||
|
||||
$res = $this->controller->getPreview('file.1234', 10, 10); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testTrashFolder() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$userRoot = $this->createMock(Folder::class); |
||||
$trash = $this->createMock(Folder::class); |
||||
|
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->userId) |
||||
->willReturn($userFolder); |
||||
$userFolder->method('getParent') |
||||
->willReturn($userRoot); |
||||
$userRoot->method('get') |
||||
->with('files_trashbin/files') |
||||
->willReturn($trash); |
||||
|
||||
$folder = $this->createMock(Folder::class); |
||||
$trash->method('get') |
||||
->with($this->equalTo('folder')) |
||||
->willReturn($folder); |
||||
|
||||
$res = $this->controller->getPreview('folder', 10, 10); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
} |
||||
@ -0,0 +1,167 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
namespace OCA\Files_Versions\Tests\Controller; |
||||
|
||||
use OCA\Files_Versions\Controller\PreviewController; |
||||
use OCP\AppFramework\Http; |
||||
use OCP\AppFramework\Http\DataResponse; |
||||
use OCP\AppFramework\Http\FileDisplayResponse; |
||||
use OCP\Files\File; |
||||
use OCP\Files\Folder; |
||||
use OCP\Files\IMimeTypeDetector; |
||||
use OCP\Files\IRootFolder; |
||||
use OCP\Files\NotFoundException; |
||||
use OCP\Files\SimpleFS\ISimpleFile; |
||||
use OCP\IPreview; |
||||
use OCP\IRequest; |
||||
use Test\TestCase; |
||||
|
||||
class PreviewControllerTest extends TestCase { |
||||
|
||||
/** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $rootFolder; |
||||
|
||||
/** @var string */ |
||||
private $userId; |
||||
|
||||
/** @var IMimeTypeDetector|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $mimeTypeDetector; |
||||
|
||||
/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $previewManager; |
||||
|
||||
/** @var PreviewController */ |
||||
private $controller; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->rootFolder = $this->createMock(IRootFolder::class); |
||||
$this->userId = 'user'; |
||||
$this->mimeTypeDetector = $this->createMock(IMimeTypeDetector::class); |
||||
$this->previewManager = $this->createMock(IPreview::class); |
||||
|
||||
$this->controller = new PreviewController( |
||||
'files_versions', |
||||
$this->createMock(IRequest::class), |
||||
$this->rootFolder, |
||||
$this->userId, |
||||
$this->mimeTypeDetector, |
||||
$this->previewManager |
||||
); |
||||
} |
||||
|
||||
public function testInvalidFile() { |
||||
$res = $this->controller->getPreview(''); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidWidth() { |
||||
$res = $this->controller->getPreview('file', 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidHeight() { |
||||
$res = $this->controller->getPreview('file', 10, 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidVersion() { |
||||
$res = $this->controller->getPreview('file', 10, 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testValidPreview() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$userRoot = $this->createMock(Folder::class); |
||||
$versions = $this->createMock(Folder::class); |
||||
|
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->userId) |
||||
->willReturn($userFolder); |
||||
$userFolder->method('getParent') |
||||
->willReturn($userRoot); |
||||
$userRoot->method('get') |
||||
->with('files_versions') |
||||
->willReturn($versions); |
||||
|
||||
$this->mimeTypeDetector->method('detectPath') |
||||
->with($this->equalTo('file')) |
||||
->willReturn('myMime'); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$versions->method('get') |
||||
->with($this->equalTo('file.v42')) |
||||
->willReturn($file); |
||||
|
||||
$preview = $this->createMock(ISimpleFile::class); |
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, true, IPreview::MODE_FILL, 'myMime') |
||||
->willReturn($preview); |
||||
$preview->method('getMimeType') |
||||
->willReturn('previewMime'); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, '42'); |
||||
$expected = new FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'previewMime']); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testVersionNotFound() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$userRoot = $this->createMock(Folder::class); |
||||
$versions = $this->createMock(Folder::class); |
||||
|
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->userId) |
||||
->willReturn($userFolder); |
||||
$userFolder->method('getParent') |
||||
->willReturn($userRoot); |
||||
$userRoot->method('get') |
||||
->with('files_versions') |
||||
->willReturn($versions); |
||||
|
||||
$this->mimeTypeDetector->method('detectPath') |
||||
->with($this->equalTo('file')) |
||||
->willReturn('myMime'); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$versions->method('get') |
||||
->with($this->equalTo('file.v42')) |
||||
->willThrowException(new NotFoundException()); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, '42'); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,223 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
namespace Tests\Core\Controller; |
||||
|
||||
use OC\Core\Controller\PreviewController; |
||||
use OCP\AppFramework\Http; |
||||
use OCP\AppFramework\Http\DataResponse; |
||||
use OCP\Files\File; |
||||
use OCP\Files\Folder; |
||||
use OCP\Files\IRootFolder; |
||||
use OCP\Files\NotFoundException; |
||||
use OCP\Files\SimpleFS\ISimpleFile; |
||||
use OCP\IPreview; |
||||
use OCP\IRequest; |
||||
|
||||
class PreviewControllerTest extends \Test\TestCase { |
||||
|
||||
/** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $rootFolder; |
||||
|
||||
/** @var string */ |
||||
private $userId; |
||||
|
||||
/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $previewManager; |
||||
|
||||
/** @var PreviewController|\PHPUnit_Framework_MockObject_MockObject */ |
||||
private $controller; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->rootFolder = $this->createMock(IRootFolder::class); |
||||
$this->userId = 'user'; |
||||
$this->previewManager = $this->createMock(IPreview::class); |
||||
|
||||
$this->controller = new PreviewController( |
||||
'core', |
||||
$this->createMock(IRequest::class), |
||||
$this->previewManager, |
||||
$this->rootFolder, |
||||
$this->userId |
||||
); |
||||
} |
||||
|
||||
public function testInvalidFile() { |
||||
$res = $this->controller->getPreview(''); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidWidth() { |
||||
$res = $this->controller->getPreview('file', 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testInvalidHeight() { |
||||
$res = $this->controller->getPreview('file', 10, 0); |
||||
$expected = new DataResponse([], Http::STATUS_BAD_REQUEST); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testFileNotFound() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willThrowException(new NotFoundException()); |
||||
|
||||
$res = $this->controller->getPreview('file'); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testNotAFile() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$folder = $this->createMock(Folder::class); |
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($folder); |
||||
|
||||
$res = $this->controller->getPreview('file'); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testNoPreviewAndNoIcon() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($file); |
||||
|
||||
$this->previewManager->method('isAvailable') |
||||
->with($this->equalTo($file)) |
||||
->willReturn(false); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, true, false); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testForbiddenFile() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($file); |
||||
|
||||
$this->previewManager->method('isAvailable') |
||||
->with($this->equalTo($file)) |
||||
->willReturn(true); |
||||
|
||||
$file->method('isReadable') |
||||
->willReturn(false); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, true, true); |
||||
$expected = new DataResponse([], Http::STATUS_FORBIDDEN); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testNoPreview() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($file); |
||||
|
||||
$this->previewManager->method('isAvailable') |
||||
->with($this->equalTo($file)) |
||||
->willReturn(true); |
||||
|
||||
$file->method('isReadable') |
||||
->willReturn(true); |
||||
|
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, false, $this->equalTo('myMode')) |
||||
->willThrowException(new NotFoundException()); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, true, true, 'myMode'); |
||||
$expected = new DataResponse([], Http::STATUS_NOT_FOUND); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
|
||||
public function testValidPreview() { |
||||
$userFolder = $this->createMock(Folder::class); |
||||
$this->rootFolder->method('getUserFolder') |
||||
->with($this->equalTo($this->userId)) |
||||
->willReturn($userFolder); |
||||
|
||||
$file = $this->createMock(File::class); |
||||
$userFolder->method('get') |
||||
->with($this->equalTo('file')) |
||||
->willReturn($file); |
||||
|
||||
$this->previewManager->method('isAvailable') |
||||
->with($this->equalTo($file)) |
||||
->willReturn(true); |
||||
|
||||
$file->method('isReadable') |
||||
->willReturn(true); |
||||
|
||||
$preview = $this->createMock(ISimpleFile::class); |
||||
$this->previewManager->method('getPreview') |
||||
->with($this->equalTo($file), 10, 10, false, $this->equalTo('myMode')) |
||||
->willReturn($preview); |
||||
$preview->method('getMimeType') |
||||
->willReturn('myMime'); |
||||
|
||||
$res = $this->controller->getPreview('file', 10, 10, true, true, 'myMode'); |
||||
$expected = new Http\FileDisplayResponse($preview, Http::STATUS_OK, ['Content-Type' => 'myMime']); |
||||
|
||||
$this->assertEquals($expected, $res); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue