diff options
author | Julius Härtl <jus@bitgrid.net> | 2018-04-10 11:14:27 +0200 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2018-04-19 20:14:40 +0200 |
commit | d771f6591153ff1ceabe69e0e1f91e99a1873eb0 (patch) | |
tree | 68f1732277e6f59567f5b540ab4c1287865660ca | |
parent | b385f1c7d58561d41c952748e85e77806dc9de06 (diff) | |
download | nextcloud-server-d771f6591153ff1ceabe69e0e1f91e99a1873eb0.tar.gz nextcloud-server-d771f6591153ff1ceabe69e0e1f91e99a1873eb0.zip |
Add more tests for ImageManager
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r-- | apps/theming/tests/ImageManagerTest.php | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php index 03fff089c69..4e258ce7162 100644 --- a/apps/theming/tests/ImageManagerTest.php +++ b/apps/theming/tests/ImageManagerTest.php @@ -55,6 +55,97 @@ class ImageManagerTest extends TestCase { ); } + public function mockGetImage($key, $file) { + /** @var \PHPUnit_Framework_MockObject_MockObject $folder */ + $folder = $this->createMock(ISimpleFolder::class); + if ($file === null) { + $folder->expects($this->once()) + ->method('getFile') + ->with('logo') + ->willThrowException(new NotFoundException()); + } else { + $folder->expects($this->once()) + ->method('getFile') + ->with('logo') + ->willReturn($file); + $this->appData->expects($this->once()) + ->method('getFolder') + ->with('images') + ->willReturn($folder); + } + } + + public function testGetImageUrl() { + $file = $this->createMock(ISimpleFile::class); + $this->config->expects($this->exactly(2)) + ->method('getAppValue') + ->withConsecutive( + ['theming', 'cachebuster', '0'], + ['theming', 'logoMime', false] + ) + ->willReturn(0); + $this->mockGetImage('logo', $file); + $this->urlGenerator->expects($this->once()) + ->method('linkToRoute') + ->willReturn('url-to-image'); + $this->assertEquals('url-to-image?v=0', $this->imageManager->getImageUrl('logo')); + } + + public function testGetImageUrlDefault() { + $this->config->expects($this->exactly(2)) + ->method('getAppValue') + ->withConsecutive( + ['theming', 'cachebuster', '0'], + ['theming', 'logoMime', false] + ) + ->willReturnOnConsecutiveCalls(0, false); + $this->urlGenerator->expects($this->once()) + ->method('imagePath') + ->with('core', 'logo.png') + ->willReturn('logo.png'); + $this->assertEquals('logo.png?v=0', $this->imageManager->getImageUrl('logo')); + } + + public function testGetImageUrlAbsolute() { + $file = $this->createMock(ISimpleFile::class); + $this->config->expects($this->exactly(2)) + ->method('getAppValue') + ->withConsecutive( + ['theming', 'cachebuster', '0'], + ['theming', 'logoMime', false] + ) + ->willReturn(0); + $this->mockGetImage('logo', $file); + $this->urlGenerator->expects($this->at(0)) + ->method('linkToRoute') + ->willReturn('url-to-image'); + $this->urlGenerator->expects($this->at(1)) + ->method('getAbsoluteUrl') + ->with('url-to-image?v=0') + ->willReturn('url-to-image-absolute?v=0'); + $this->assertEquals('url-to-image-absolute?v=0', $this->imageManager->getImageUrlAbsolute('logo')); + + } + + public function testGetImage() { + $this->config->expects($this->once()) + ->method('getAppValue')->with('theming', 'logoMime', false) + ->willReturn('png'); + $file = $this->createMock(ISimpleFile::class); + $this->mockGetImage('logo', $file); + $this->assertEquals($file, $this->imageManager->getImage('logo')); + } + + /** + * @expectedException OCP\Files\NotFoundException + */ + public function testGetImageUnset() { + $this->config->expects($this->once()) + ->method('getAppValue')->with('theming', 'logoMime', false) + ->willReturn(false); + $this->imageManager->getImage('logo'); + } + public function testGetCacheFolder() { $folder = $this->createMock(ISimpleFolder::class); $this->config->expects($this->once()) |