From d6d9368ab35cfaf2f8540ba3ca7536eacc4808b6 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Mon, 2 Jan 2017 20:34:41 -0500 Subject: [PATCH] Do not overwrite existing favicons --- app/models/favicon.php | 9 +++++++++ tests/unit/FaviconModelTest.php | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/favicon.php b/app/models/favicon.php index 1d3fabb..0259f20 100644 --- a/app/models/favicon.php +++ b/app/models/favicon.php @@ -31,6 +31,15 @@ function store_favicon($mime_type, $blob) } $hash = sha1($blob); + $favicon_id = Database::getInstance('db') + ->table(TABLE) + ->eq('hash', $hash) + ->findOneColumn('id'); + + if ($favicon_id) { + return $favicon_id; + } + if (file_put_contents(get_favicon_filename($hash, $mime_type), $blob) === false) { return false; } diff --git a/tests/unit/FaviconModelTest.php b/tests/unit/FaviconModelTest.php index a468cf4..6f85e54 100644 --- a/tests/unit/FaviconModelTest.php +++ b/tests/unit/FaviconModelTest.php @@ -90,7 +90,7 @@ class FaviconModelTest extends BaseTest $this->assertCreateFeed($this->buildFeed()); self::$functions - ->expects($this->any()) + ->expects($this->once()) ->method('file_put_contents') ->with( $this->stringEndsWith('data/favicons/57978a20204f7af6967571041c79d907a8a8072c.png'),