diff options
author | Julius Haertl <jus@bitgrid.net> | 2017-02-09 12:08:42 +0100 |
---|---|---|
committer | Julius Haertl <jus@bitgrid.net> | 2017-02-16 15:13:38 +0100 |
commit | 88a0ef7d4a49403c0b803cd8716ae95688490b59 (patch) | |
tree | 1dd06061d4865b52d6068b5ea8db6ec9ebec2ec0 /apps/theming | |
parent | 345d1f12914f2635741886b9e4b990bbbbdd2973 (diff) | |
download | nextcloud-server-88a0ef7d4a49403c0b803cd8716ae95688490b59.tar.gz nextcloud-server-88a0ef7d4a49403c0b803cd8716ae95688490b59.zip |
Add tests for theming migration step
Signed-off-by: Julius Haertl <jus@bitgrid.net>
Diffstat (limited to 'apps/theming')
-rw-r--r-- | apps/theming/lib/Migration/ThemingImages.php | 13 | ||||
-rw-r--r-- | apps/theming/tests/Migration/ThemingImages.php | 137 |
2 files changed, 143 insertions, 7 deletions
diff --git a/apps/theming/lib/Migration/ThemingImages.php b/apps/theming/lib/Migration/ThemingImages.php index 9627697f666..f6f484be8b5 100644 --- a/apps/theming/lib/Migration/ThemingImages.php +++ b/apps/theming/lib/Migration/ThemingImages.php @@ -37,7 +37,7 @@ class ThemingImages implements IRepairStep { private $appData; private $rootFolder; - public function __construct(IAppData $appData, ThemingDefaults $defaults, IRootFolder $rootFolder) { + public function __construct(IAppData $appData, IRootFolder $rootFolder) { $this->appData = $appData; $this->rootFolder = $rootFolder; } @@ -58,21 +58,20 @@ class ThemingImages implements IRepairStep { $file = null; try { $file = $this->rootFolder->get('themedinstancelogo'); - $logo = $folder->newFile("logo"); + $logo = $folder->newFile('logo'); $logo->putContent($file->getContent()); $file->delete(); } catch (NotFoundException $e) { - $output->info("No theming logo image to migrate"); + $output->info('No theming logo image to migrate'); } try { $file = $this->rootFolder->get('themedbackgroundlogo'); - $background = $folder->newFile("background"); + $background = $folder->newFile('background'); $background->putContent($file->getContent()); $file->delete(); } catch (NotFoundException $e) { - $output->info("No theming background image to migrate"); + $output->info('No theming background image to migrate'); } - } -}
\ No newline at end of file +} diff --git a/apps/theming/tests/Migration/ThemingImages.php b/apps/theming/tests/Migration/ThemingImages.php new file mode 100644 index 00000000000..60cb6117755 --- /dev/null +++ b/apps/theming/tests/Migration/ThemingImages.php @@ -0,0 +1,137 @@ +<?php +/** + * @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @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\Theming\Tests\Migration; + +use OCP\Files\NotFoundException; +use OCP\Files\SimpleFS\ISimpleFolder; +use OCP\Migration\IOutput; +use Test\TestCase; +use OCA\Theming\Migration\ThemingImages; +use OCP\Files\IAppData; +use OCP\Files\IRootFolder; + +class ThemingImagesTest extends TestCase { + /** @var ThemingImages */ + private $repairStep; + /** @var IAppData */ + private $appData; + /** @var IRootFolder */ + private $rootFolder; + /** @var ISimpleFolder */ + private $imageFolder; + /** @var IOutput */ + private $output; + + public function setUp() { + parent::setUp(); + $this->appData = $this->getMockBuilder('OCP\Files\IAppData')->getMock(); + $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock(); + $this->repairStep = new ThemingImages($this->appData, $this->rootFolder); + $this->imageFolder = $this->getMockBuilder('OCP\Files\SimpleFS\ISimpleFolder')->getMock(); + $this->output = $this->getMockBuilder('OCP\Migration\IOutput')->getMock(); + } + + public function testGetName() { + $this->assertEquals( + 'Move theming files to AppData storage', + $this->repairStep->getName() + ); + } + + public function testRunNoImages() { + $this->appData->expects($this->once()) + ->method('newFolder') + ->willReturn($this->imageFolder); + $this->rootFolder->expects($this->any()) + ->method('get') + ->willThrowException(new NotFoundException()); + $this->imageFolder->expects($this->never()) + ->method('newFile'); + $this->output->expects($this->exactly(2)) + ->method('info'); + $this->repairStep->run($this->output); + } + + public function testRunLogo() { + $oldFile = $this->getMockBuilder('OCP\Files\File')->getMock(); + $newFile = $this->getMockBuilder('OCP\Files\SimpleFS\ISimpleFile')->getMock(); + + $this->appData->expects($this->once()) + ->method('newFolder') + ->willReturn($this->imageFolder); + $this->rootFolder->expects($this->at(1)) + ->method('get') + ->with('themedbackgroundlogo') + ->willThrowException(new NotFoundException()); + $this->rootFolder->expects($this->at(0)) + ->method('get') + ->with('themedinstancelogo') + ->willReturn($oldFile); + $this->imageFolder->expects($this->once()) + ->method('newFile') + ->with('logo') + ->willReturn($newFile); + $oldFile->expects($this->once()) + ->method('getContent') + ->willReturn('data'); + $newFile->expects($this->once()) + ->method('putContent') + ->with('data'); + $oldFile->expects($this->once()) + ->method('delete'); + + $this->repairStep->run($this->output); + } + + public function testRunBackground() { + $oldFile = $this->getMockBuilder('OCP\Files\File')->getMock(); + $newFile = $this->getMockBuilder('OCP\Files\SimpleFS\ISimpleFile')->getMock(); + + $this->appData->expects($this->once()) + ->method('newFolder') + ->willReturn($this->imageFolder); + $this->rootFolder->expects($this->at(1)) + ->method('get') + ->with('themedbackgroundlogo') + ->willReturn($oldFile); + $this->rootFolder->expects($this->at(0)) + ->method('get') + ->with('themedinstancelogo') + ->willThrowException(new NotFoundException()); + $this->imageFolder->expects($this->once()) + ->method('newFile') + ->with('background') + ->willReturn($newFile); + $oldFile->expects($this->once()) + ->method('getContent') + ->willReturn('data'); + $newFile->expects($this->once()) + ->method('putContent') + ->with('data'); + $oldFile->expects($this->once()) + ->method('delete'); + + $this->repairStep->run($this->output); + } +} |