diff options
Diffstat (limited to 'apps/theming')
-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()) |