aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Preview/SVGTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Preview/SVGTest.php')
-rw-r--r--tests/lib/Preview/SVGTest.php65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/lib/Preview/SVGTest.php b/tests/lib/Preview/SVGTest.php
new file mode 100644
index 00000000000..8c6d9bb6691
--- /dev/null
+++ b/tests/lib/Preview/SVGTest.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+namespace Test\Preview;
+
+use OC\Preview\SVG;
+use OCP\Files\File;
+
+/**
+ * Class SVGTest
+ *
+ * @group DB
+ *
+ * @package Test\Preview
+ */
+class SVGTest extends Provider {
+ protected function setUp(): void {
+ $checkImagick = new \Imagick();
+ if (count($checkImagick->queryFormats('SVG')) === 1) {
+ parent::setUp();
+
+ $fileName = 'testimagelarge.svg';
+ $this->imgPath = $this->prepareTestFile($fileName, \OC::$SERVERROOT . '/tests/data/' . $fileName);
+ $this->width = 3000;
+ $this->height = 2000;
+ $this->provider = new SVG;
+ } else {
+ $this->markTestSkipped('No SVG provider present');
+ }
+ }
+
+ public static function dataGetThumbnailSVGHref(): array {
+ return [
+ ['href'],
+ [' href'],
+ ["\nhref"],
+ ['xlink:href'],
+ [' xlink:href'],
+ ["\nxlink:href"],
+ ];
+ }
+
+ /**
+ * @requires extension imagick
+ */
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetThumbnailSVGHref')]
+ public function testGetThumbnailSVGHref(string $content): void {
+ $handle = fopen('php://temp', 'w+');
+ fwrite($handle, '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
+ <image x="0" y="0"' . $content . '="fxlogo.png" height="100" width="100" />
+</svg>');
+ rewind($handle);
+
+ $file = $this->createMock(File::class);
+ $file->method('fopen')
+ ->willReturn($handle);
+
+ self::assertNull($this->provider->getThumbnail($file, 512, 512));
+ }
+}