Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChristoph Wurst <ChristophWurst@users.noreply.github.com>2019-12-17 16:47:47 +0300
committerGitHub <noreply@github.com>2019-12-17 16:47:47 +0300
commit8ec3f8a15d557f6861471c94e59ed2677d06092d (patch)
tree0d873890c639843e4d872d231609e3b6404fe994 /tests
parentfa179be06ad577cf94a35a5676bb331954ae5651 (diff)
parenta5e10ee0ba0d0ccf11ec372a5e76b53032e9c00b (diff)
Merge pull request #2364 from nextcloud/fix/favicon-vendor-cache
Fix local caching in external Favicon lib
Diffstat (limited to 'tests')
-rw-r--r--tests/Integration/Service/Avatar/FaviconSourceTest.php91
-rw-r--r--tests/Unit/Service/Avatar/FaviconSourceTest.php11
2 files changed, 96 insertions, 6 deletions
diff --git a/tests/Integration/Service/Avatar/FaviconSourceTest.php b/tests/Integration/Service/Avatar/FaviconSourceTest.php
new file mode 100644
index 000000000..f65b7552d
--- /dev/null
+++ b/tests/Integration/Service/Avatar/FaviconSourceTest.php
@@ -0,0 +1,91 @@
+<?php declare(strict_types=1);
+
+/**
+ * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @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\Mail\Tests\Integration\Service\Avatar;
+
+use DirectoryIterator;
+use Favicon\Favicon;
+use OC;
+use OCA\Mail\Service\Avatar\AvatarFactory;
+use OCA\Mail\Service\Avatar\FaviconSource;
+use ChristophWurst\Nextcloud\Testing\TestCase;
+use OCP\Files\IMimeTypeDetector;
+use OCP\Http\Client\IClient;
+use OCP\Http\Client\IClientService;
+use OCP\Http\Client\IResponse;
+use OCP\IServerContainer;
+use PHPUnit\Framework\MockObject\MockObject;
+use function iterator_to_array;
+use function unlink;
+
+class FaviconSourceTest extends TestCase {
+
+ /** @var IServerContainer */
+ private $serverContainer;
+
+ /**
+ * @return string[]
+ */
+ private function getCacheFiles(): iterable {
+ foreach (new DirectoryIterator(__DIR__ . '/../../../../vendor/arthurhoaro/favicon/resources/cache') as $entry) {
+ if ($entry->isDot() || $entry->getFilename() === '.gitkeep') {
+ continue;
+ }
+ yield $entry->getRealPath();
+ }
+ }
+
+ private function clearFaviconCacheDir(): void {
+ foreach ($this->getCacheFiles() as $cacheFile) {
+ unlink($cacheFile);
+ }
+ }
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->clearFaviconCacheDir();
+
+ $this->serverContainer = OC::$server;
+ }
+
+ public function testFetchNoCacheFiles() {
+ $email = 'noreply@duckduckgo.com';
+ $avatarFactory = $this->serverContainer->query(AvatarFactory::class);
+ /** @var IClientService $clientService */
+ $clientService = $this->serverContainer->query(IClientService::class);
+ /** @var IMimeTypeDetector $clientService */
+ $mimeDetector = $this->serverContainer->query(IMimeTypeDetector::class);
+ $source = new FaviconSource(
+ $clientService,
+ new Favicon(),
+ $mimeDetector
+ );
+
+ $avatar = $source->fetch($email, $avatarFactory);
+
+ $this->assertNotNull($avatar);
+ $this->assertEmpty(iterator_to_array($this->getCacheFiles()));
+ }
+
+}
diff --git a/tests/Unit/Service/Avatar/FaviconSourceTest.php b/tests/Unit/Service/Avatar/FaviconSourceTest.php
index 5213f0211..7bc21c971 100644
--- a/tests/Unit/Service/Avatar/FaviconSourceTest.php
+++ b/tests/Unit/Service/Avatar/FaviconSourceTest.php
@@ -1,4 +1,4 @@
-<?php
+<?php declare(strict_types=1);
/**
* @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at>
@@ -25,7 +25,6 @@
namespace OCA\Mail\Tests\Unit\Service\Avatar;
use Favicon\Favicon;
-use Mpclarkson\IconScraper\Icon;
use OCA\Mail\Service\Avatar\Avatar;
use OCA\Mail\Service\Avatar\AvatarFactory;
use OCA\Mail\Service\Avatar\FaviconSource;
@@ -34,17 +33,17 @@ use OCP\Files\IMimeTypeDetector;
use OCP\Http\Client\IClient;
use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
-use PHPUnit_Framework_MockObject_MockObject;
+use PHPUnit\Framework\MockObject\MockObject;
class FaviconSourceTest extends TestCase {
- /** @var IClientService|PHPUnit_Framework_MockObject_MockObject */
+ /** @var IClientService|MockObject */
private $clientService;
- /** @var Favicon|PHPUnit_Framework_MockObject_MockObject */
+ /** @var Favicon|MockObject */
private $favicon;
- /** @var IMimeTypeDetector|PHPUnit_Framework_MockObject_MockObject */
+ /** @var IMimeTypeDetector|MockObject */
private $mimeDetector;
/** @var FaviconSource */