diff options
author | John Molakvoæ <skjnldsv@protonmail.com> | 2022-05-10 16:54:58 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@protonmail.com> | 2022-05-10 23:24:07 +0200 |
commit | 3c6253f9659d6fb5c059cfb6916654a5c2a7c52e (patch) | |
tree | 95fff4b6cd1efcb479912d1852e0b0efaf1af565 /tests | |
parent | c59c3b5c1f8fba38d6b2e4bfd19714cb1f75ba85 (diff) | |
download | nextcloud-server-3c6253f9659d6fb5c059cfb6916654a5c2a7c52e.tar.gz nextcloud-server-3c6253f9659d6fb5c059cfb6916654a5c2a7c52e.zip |
Remove old legacy SvgController and IconsCacher
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Core/Controller/SvgControllerTest.php | 198 | ||||
-rw-r--r-- | tests/lib/Template/CSSResourceLocatorTest.php | 5 | ||||
-rw-r--r-- | tests/lib/Template/IconsCacherTest.php | 149 | ||||
-rw-r--r-- | tests/lib/Template/SCSSCacherTest.php | 36 |
4 files changed, 0 insertions, 388 deletions
diff --git a/tests/Core/Controller/SvgControllerTest.php b/tests/Core/Controller/SvgControllerTest.php deleted file mode 100644 index f44440389ff..00000000000 --- a/tests/Core/Controller/SvgControllerTest.php +++ /dev/null @@ -1,198 +0,0 @@ -<?php - -declare(strict_types = 1); -/** - * @copyright Copyright (c) 2018 Michael Weimann <mail@michael-weimann.eu> - * - * @author Michael Weimann <mail@michael-weimann.eu> - * - * @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\AppFramework\Http; -use OC\Core\Controller\SvgController; -use OC\Template\IconsCacher; -use OCP\App\AppPathNotFoundException; -use OCP\App\IAppManager; -use OCP\AppFramework\Utility\ITimeFactory; -use OCP\IRequest; -use Test\TestCase; - -/** - * This class provides test cases for the svg controller - */ -class SvgControllerTest extends TestCase { - public const TEST_IMAGES_SOURCE_PATH = __DIR__ . '/../../data/svg'; - public const TEST_IMAGES_PATH = __DIR__ . '/../../../core/img/testImages'; - public const TEST_IMAGE_MIXED = 'mixed-source.svg'; - public const TEST_IMAGE_RECT = 'rect-black.svg'; - public const TEST_IMAGES = [ - self::TEST_IMAGE_MIXED, - self::TEST_IMAGE_RECT, - ]; - - /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */ - private $appManager; - - /** - * @var SvgController - */ - private $svgController; - - /** - * Copy test svgs into the core img "test" directory. - * - * @beforeClass - * @return void - */ - public static function copyTestImagesIntoPlace() { - mkdir(self::TEST_IMAGES_PATH); - foreach (self::TEST_IMAGES as $testImage) { - copy( - self::TEST_IMAGES_SOURCE_PATH .'/' . $testImage, - self::TEST_IMAGES_PATH . '/' . $testImage - ); - } - } - - /** - * Removes the test svgs from the core img "test" directory. - * - * @afterClass - * @return void - */ - public static function removeTestImages() { - foreach (self::TEST_IMAGES as $testImage) { - unlink(self::TEST_IMAGES_PATH . '/' . $testImage); - } - rmdir(self::TEST_IMAGES_PATH); - } - - /** - * Setups a SVG controller instance for tests. - * - * @before - * @return void - */ - public function setupSvgController() { - /** @var IRequest */ - $request = $this->getMockBuilder(IRequest::class)->getMock(); - /** @var ITimeFactory $timeFactory */ - $timeFactory = $this->getMockBuilder(ITimeFactory::class)->getMock(); - /** @var IAppManager */ - $this->appManager = $this->getMockBuilder(IAppManager::class)->getMock(); - /** @var IconsCacher $iconsCacher */ - $iconsCacher = $this->getMockBuilder(IconsCacher::class)->disableOriginalConstructor()->setMethods(['__construct'])->getMock(); - $this->svgController = new SvgController('core', $request, $timeFactory, $this->appManager, $iconsCacher); - } - - /** - * Checks that requesting an unknown image results in a 404. - * - * @return void - */ - public function testGetSvgFromCoreNotFound() { - $response = $this->svgController->getSvgFromCore('huhuu', '2342', '#ff0000'); - self::assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); - } - - /** - * Provides svg coloring test data. - * - * @return array - */ - public function provideGetSvgFromCoreTestData(): array { - return [ - 'mixed' => ['mixed-source', 'f00', file_get_contents(self::TEST_IMAGES_SOURCE_PATH . '/mixed-red.svg')], - 'black rect' => ['rect-black', 'f00', file_get_contents(self::TEST_IMAGES_SOURCE_PATH . '/rect-red.svg')], - ]; - } - - /** - * Tests that retrieving a colored SVG works. - * - * @dataProvider provideGetSvgFromCoreTestData - * @param string $name The requested svg name - * @param string $color The requested color - * @param string $expected The expected svg - * @return void - */ - public function testGetSvgFromCore(string $name, string $color, string $expected) { - $response = $this->svgController->getSvgFromCore('testImages', $name, $color); - - self::assertEquals(Http::STATUS_OK, $response->getStatus()); - - $headers = $response->getHeaders(); - self::assertArrayHasKey('Content-Type', $headers); - self::assertEquals($headers['Content-Type'], 'image/svg+xml'); - - self::assertEquals($expected, $response->getData()); - } - - /** - * Checks that requesting an unknown image results in a 404. - */ - public function testGetSvgFromAppNotFound(): void { - $this->appManager->expects($this->once()) - ->method('getAppPath') - ->with('invalid_app') - ->willThrowException(new AppPathNotFoundException('Could not find path for invalid_app')); - - $response = $this->svgController->getSvgFromApp('invalid_app', 'some-icon', '#ff0000'); - self::assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); - } - - /** - * Provides svg coloring test data. - * - * @return array - */ - public function provideGetSvgFromAppTestData(): array { - return [ - 'settings admin' => ['settings', 'admin', 'f00', file_get_contents(self::TEST_IMAGES_SOURCE_PATH . '/settings-admin-red.svg')], - 'files app' => ['files', 'app', 'f00', file_get_contents(self::TEST_IMAGES_SOURCE_PATH . '/files-app-red.svg')], - ]; - } - - /** - * Tests that retrieving a colored SVG works. - * - * @dataProvider provideGetSvgFromAppTestData - * @param string $appName - * @param string $name The requested svg name - * @param string $color The requested color - * @param string $expected - */ - public function testGetSvgFromApp(string $appName, string $name, string $color, string $expected): void { - $this->appManager->expects($this->once()) - ->method('getAppPath') - ->with($appName) - ->willReturn(realpath(__DIR__ . '/../../../apps/') . '/' . $appName); - - $response = $this->svgController->getSvgFromApp($appName, $name, $color); - - self::assertEquals(Http::STATUS_OK, $response->getStatus()); - - $headers = $response->getHeaders(); - self::assertArrayHasKey('Content-Type', $headers); - self::assertEquals($headers['Content-Type'], 'image/svg+xml'); - - self::assertEquals($expected, $response->getData()); - } -} diff --git a/tests/lib/Template/CSSResourceLocatorTest.php b/tests/lib/Template/CSSResourceLocatorTest.php index 4832b03fe9b..8f93ef6d9df 100644 --- a/tests/lib/Template/CSSResourceLocatorTest.php +++ b/tests/lib/Template/CSSResourceLocatorTest.php @@ -27,7 +27,6 @@ use OC\AppConfig; use OC\Files\AppData\AppData; use OC\Files\AppData\Factory; use OC\Template\CSSResourceLocator; -use OC\Template\IconsCacher; use OC\Template\SCSSCacher; use OCA\Theming\ThemingDefaults; use OCP\AppFramework\Utility\ITimeFactory; @@ -50,8 +49,6 @@ class CSSResourceLocatorTest extends \Test\TestCase { protected $cacheFactory; /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ protected $logger; - /** @var IconsCacher|\PHPUnit\Framework\MockObject\MockObject */ - protected $iconsCacher; /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */ private $timeFactory; /** @var AppConfig|\PHPUnit\Framework\MockObject\MockObject */ @@ -66,7 +63,6 @@ class CSSResourceLocatorTest extends \Test\TestCase { $this->config = $this->createMock(IConfig::class); $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->themingDefaults = $this->createMock(ThemingDefaults::class); - $this->iconsCacher = $this->createMock(IconsCacher::class); $this->timeFactory = $this->createMock(ITimeFactory::class); $this->appConfig = $this->createMock(AppConfig::class); } @@ -83,7 +79,6 @@ class CSSResourceLocatorTest extends \Test\TestCase { $this->themingDefaults, \OC::$SERVERROOT, $this->cacheFactory, - $this->iconsCacher, $this->timeFactory, $this->appConfig ); diff --git a/tests/lib/Template/IconsCacherTest.php b/tests/lib/Template/IconsCacherTest.php deleted file mode 100644 index 188c0596799..00000000000 --- a/tests/lib/Template/IconsCacherTest.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php - -declare(strict_types = 1); -/** - * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com) - * - * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> - * - * @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 Test\Template; - -use OC\Files\AppData\AppData; -use OC\Files\AppData\Factory; -use OC\Template\IconsCacher; -use OCP\AppFramework\Utility\ITimeFactory; -use OCP\Files\IAppData; -use OCP\Files\SimpleFS\ISimpleFile; -use OCP\Files\SimpleFS\ISimpleFolder; -use OCP\IURLGenerator; -use Psr\Log\LoggerInterface; - -class IconsCacherTest extends \Test\TestCase { - /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ - protected $logger; - /** @var IAppData|\PHPUnit\Framework\MockObject\MockObject */ - protected $appData; - /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */ - protected $urlGenerator; - /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */ - private $timeFactory; - - protected function setUp(): void { - $this->logger = $this->createMock(LoggerInterface::class); - $this->appData = $this->createMock(AppData::class); - $this->timeFactory = $this->createMock(ITimeFactory::class); - - /** @var Factory|\PHPUnit\Framework\MockObject\MockObject $factory */ - $factory = $this->createMock(Factory::class); - $factory->method('get')->with('css')->willReturn($this->appData); - - $this->folder = $this->createMock(ISimpleFolder::class); - $this->appData->method('getFolder')->willReturn($this->folder); - - $this->urlGenerator = $this->createMock(IURLGenerator::class); - - $this->iconsCacher = new IconsCacher( - $this->logger, - $factory, - $this->urlGenerator, - $this->timeFactory - ); - } - - public function testGetIconsFromEmptyCss() { - $css = " - icon.test { - color: #aaa; - } - "; - $icons = self::invokePrivate($this->iconsCacher, 'getIconsFromCss', [$css]); - $this->assertTrue(empty($icons)); - } - - public function testGetIconsFromValidCss() { - $css = " - icon.test { - --icon-test: url('/svg/core/actions/add/000?v=1'); - background-image: var(--icon-test); - } - "; - $actual = self::invokePrivate($this->iconsCacher, 'getIconsFromCss', [$css]); - $expected = [ - 'icon-test' => '/svg/core/actions/add/000?v=1' - ]; - $this->assertEquals($expected, $actual); - } - - public function testSetIconsFromEmptyCss() { - $expected = " - icon.test { - color: #aaa; - } - "; - $actual = $this->iconsCacher->setIconsCss($expected); - $this->assertEquals($expected, $actual); - } - - public function testSetIconsFromValidCss() { - $css = " - icon.test { - --icon-test: url('/index.php/svg/core/actions/add?color=000&v=1'); - background-image: var(--icon-test); - } - "; - $expected = " - icon.test { - \n background-image: var(--icon-test); - } - "; - - $iconsFile = $this->createMock(ISimpleFile::class); - $this->folder->expects($this->exactly(2)) - ->method('getFile') - ->willReturn($iconsFile); - - $actual = $this->iconsCacher->setIconsCss($css); - $this->assertEquals($expected, $actual); - } - - public function testSetIconsFromValidCssMultipleTimes() { - $css = " - icon.test { - --icon-test: url('/index.php/svg/core/actions/add?color=000&v=1'); - background-image: var(--icon-test); - } - "; - $expected = " - icon.test { - \n background-image: var(--icon-test); - } - "; - - $iconsFile = $this->createMock(ISimpleFile::class); - $this->folder->expects($this->exactly(4)) - ->method('getFile') - ->willReturn($iconsFile); - - $actual = $this->iconsCacher->setIconsCss($css); - $actual = $this->iconsCacher->setIconsCss($actual); - $actual = $this->iconsCacher->setIconsCss($actual); - $this->assertEquals($expected, $actual); - } -} diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php index f7b7b3bb6d3..576ba35d009 100644 --- a/tests/lib/Template/SCSSCacherTest.php +++ b/tests/lib/Template/SCSSCacherTest.php @@ -26,7 +26,6 @@ namespace Test\Template; use OC\AppConfig; use OC\Files\AppData\AppData; use OC\Files\AppData\Factory; -use OC\Template\IconsCacher; use OC\Template\SCSSCacher; use OCA\Theming\ThemingDefaults; use OCP\AppFramework\Utility\ITimeFactory; @@ -59,8 +58,6 @@ class SCSSCacherTest extends \Test\TestCase { protected $isCachedCache; /** @var ICacheFactory|\PHPUnit\Framework\MockObject\MockObject */ protected $cacheFactory; - /** @var IconsCacher|\PHPUnit\Framework\MockObject\MockObject */ - protected $iconsCacher; /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */ protected $timeFactory; /** @var AppConfig|\PHPUnit\Framework\MockObject\MockObject */ @@ -70,7 +67,6 @@ class SCSSCacherTest extends \Test\TestCase { parent::setUp(); $this->logger = $this->createMock(LoggerInterface::class); $this->appData = $this->createMock(AppData::class); - $this->iconsCacher = $this->createMock(IconsCacher::class); $this->timeFactory = $this->createMock(ITimeFactory::class); /** @var Factory|\PHPUnit\Framework\MockObject\MockObject $factory */ @@ -104,9 +100,6 @@ class SCSSCacherTest extends \Test\TestCase { $this->themingDefaults->expects($this->any())->method('getScssVariables')->willReturn([]); $iconsFile = $this->createMock(ISimpleFile::class); - $this->iconsCacher->expects($this->any()) - ->method('getCachedCSS') - ->willReturn($iconsFile); $this->appConfig = $this->createMock(AppConfig::class); @@ -118,7 +111,6 @@ class SCSSCacherTest extends \Test\TestCase { $this->themingDefaults, \OC::$SERVERROOT, $this->cacheFactory, - $this->iconsCacher, $this->timeFactory, $this->appConfig ); @@ -159,10 +151,6 @@ class SCSSCacherTest extends \Test\TestCase { ->method('getBaseUrl') ->willReturn('http://localhost/nextcloud'); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $actual = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/styles.scss', 'core'); $this->assertTrue($actual); } @@ -195,10 +183,6 @@ class SCSSCacherTest extends \Test\TestCase { ->with($filePrefix.'styles.css.deps') ->willReturn($fileDeps); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $actual = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/styles.scss', 'core'); $this->assertTrue($actual); } @@ -226,10 +210,6 @@ class SCSSCacherTest extends \Test\TestCase { $this->fail(); }); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $actual = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/styles.scss', 'core'); $this->assertTrue($actual); } @@ -264,10 +244,6 @@ class SCSSCacherTest extends \Test\TestCase { $this->fail(); }); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $actual = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/styles.scss', 'core'); $this->assertTrue($actual); } @@ -330,10 +306,6 @@ class SCSSCacherTest extends \Test\TestCase { throw new \Exception(); }); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $file->expects($this->once())->method('putContent'); $depsFile->expects($this->once())->method('putContent'); $gzipFile->expects($this->once())->method('putContent'); @@ -368,10 +340,6 @@ class SCSSCacherTest extends \Test\TestCase { $depsFile->expects($this->once())->method('putContent'); $gzipFile->expects($this->once())->method('putContent'); - $this->iconsCacher->expects($this->any()) - ->method('setIconsCss') - ->willReturn('scss {}'); - $actual = self::invokePrivate($this->scssCacher, 'cache', [$path, $fileNameCSS, $fileNameSCSS, $folder, $webDir]); $this->assertTrue($actual); } @@ -398,10 +366,6 @@ class SCSSCacherTest extends \Test\TestCase { throw new \Exception(); }); - $this->iconsCacher->expects($this->at(0)) - ->method('setIconsCss') - ->willReturn('body{background-color:#0082c9}'); - $file->expects($this->at(0))->method('putContent')->with($this->callback( function ($content) { return 'body{background-color:#0082c9}' === $content; |