diff options
author | Julius Härtl <jus@bitgrid.net> | 2020-09-24 08:20:03 +0200 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2020-09-24 08:22:07 +0200 |
commit | 0daf097af3f53905bc8220e7d06ed0d015cffb1b (patch) | |
tree | 72decea28f097076ec85989a6a354cc7e3f1f2b5 /apps/theming/tests/ImageManagerTest.php | |
parent | aa95b3d71bdf91d607f3a70f336db09312f2e1fe (diff) | |
download | nextcloud-server-0daf097af3f53905bc8220e7d06ed0d015cffb1b.tar.gz nextcloud-server-0daf097af3f53905bc8220e7d06ed0d015cffb1b.zip |
Fix tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'apps/theming/tests/ImageManagerTest.php')
-rw-r--r-- | apps/theming/tests/ImageManagerTest.php | 72 |
1 files changed, 65 insertions, 7 deletions
diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php index 82b4956c212..81f4a8b98db 100644 --- a/apps/theming/tests/ImageManagerTest.php +++ b/apps/theming/tests/ImageManagerTest.php @@ -36,23 +36,27 @@ use OCP\Files\SimpleFS\ISimpleFolder; use OCP\ICacheFactory; use OCP\IConfig; use OCP\ILogger; +use OCP\ITempManager; use OCP\IURLGenerator; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class ImageManagerTest extends TestCase { - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ + /** @var IConfig|MockObject */ protected $config; - /** @var IAppData|\PHPUnit\Framework\MockObject\MockObject */ + /** @var IAppData|MockObject */ protected $appData; /** @var ImageManager */ protected $imageManager; - /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */ + /** @var IURLGenerator|MockObject */ private $urlGenerator; - /** @var ICacheFactory|\PHPUnit\Framework\MockObject\MockObject */ + /** @var ICacheFactory|MockObject */ private $cacheFactory; - /** @var ILogger|\PHPUnit\Framework\MockObject\MockObject */ + /** @var ILogger|MockObject */ private $logger; + /** @var ITempManager|MockObject */ + private $tempManager; protected function setUp(): void { parent::setUp(); @@ -61,12 +65,14 @@ class ImageManagerTest extends TestCase { $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->logger = $this->createMock(ILogger::class); + $this->tempManager = $this->createMock(ITempManager::class); $this->imageManager = new ImageManager( $this->config, $this->appData, $this->urlGenerator, $this->cacheFactory, - $this->logger + $this->logger, + $this->tempManager ); } @@ -84,7 +90,7 @@ class ImageManagerTest extends TestCase { } public function mockGetImage($key, $file) { - /** @var \PHPUnit\Framework\MockObject\MockObject $folder */ + /** @var MockObject $folder */ $folder = $this->createMock(ISimpleFolder::class); if ($file === null) { $folder->expects($this->once()) @@ -327,4 +333,56 @@ class ImageManagerTest extends TestCase { ->willReturn($folders[2]); $this->imageManager->cleanup(); } + + + public function dataUpdateImage() { + return [ + ['background', __DIR__ . '/../../../tests/data/testimage.png', true, true], + ['background', __DIR__ . '/../../../tests/data/testimage.png', false, true], + ['background', __DIR__ . '/../../../tests/data/testimage.jpg', true, true], + ['logo', __DIR__ . '/../../../tests/data/testimagelarge.svg', true, false], + ]; + } + + /** + * @dataProvider dataUpdateImage + */ + public function testUpdateImage($key, $tmpFile, $folderExists, $shouldConvert) { + $file = $this->createMock(ISimpleFile::class); + $folder = $this->createMock(ISimpleFolder::class); + $oldFile = $this->createMock(ISimpleFile::class); + $folder->expects($this->any()) + ->method('getFile') + ->willReturn($oldFile); + if ($folderExists) { + $this->appData + ->expects($this->any()) + ->method('getFolder') + ->with('images') + ->willReturn($folder); + } else { + $this->appData + ->expects($this->any()) + ->method('getFolder') + ->with('images') + ->willThrowException(new NotFoundException()); + $this->appData + ->expects($this->any()) + ->method('newFolder') + ->with('images') + ->willReturn($folder); + } + $folder->expects($this->once()) + ->method('newFile') + ->with($key) + ->willReturn($file); + + if ($shouldConvert) { + $this->tempManager->expects($this->once()) + ->method('getTemporaryFile') + ->willReturn('/tmp/randomtempfile-theming'); + } + + $this->imageManager->updateImage($key, $tmpFile); + } } |