123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Theme\Test\Unit\Model\Favicon;
- use \Magento\Theme\Model\Favicon\Favicon;
- use Magento\Config\Model\Config\Backend\Image\Favicon as ImageFavicon;
- use Magento\Framework\App\Filesystem\DirectoryList;
- use Magento\Framework\UrlInterface;
- use Magento\Store\Model\ScopeInterface;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- */
- class FaviconTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var Favicon
- */
- protected $object;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Store\Model\Store
- */
- protected $store;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\Config\ScopeConfigInterface
- */
- protected $scopeManager;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\MediaStorage\Helper\File\Storage\Database
- */
- protected $fileStorageDatabase;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Filesystem\Directory\ReadInterface
- */
- protected $mediaDir;
- /**
- * Initialize testable object
- */
- protected function setUp()
- {
- $storeManager = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)->getMock();
- $this->store = $this->getMockBuilder(
- \Magento\Store\Model\Store::class
- )->disableOriginalConstructor()->getMock();
- $storeManager->expects($this->any())
- ->method('getStore')
- ->willReturn($this->store);
- /** @var \Magento\Store\Model\StoreManagerInterface $storeManager */
- $this->scopeManager = $this->getMockBuilder(
- \Magento\Framework\App\Config\ScopeConfigInterface::class
- )->getMock();
- $this->fileStorageDatabase = $this->getMockBuilder(\Magento\MediaStorage\Helper\File\Storage\Database::class)
- ->disableOriginalConstructor()
- ->getMock();
- $filesystem = $this->getMockBuilder(\Magento\Framework\Filesystem::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->mediaDir = $this->getMockBuilder(
- \Magento\Framework\Filesystem\Directory\ReadInterface::class
- )->getMock();
- $filesystem->expects($this->once())
- ->method('getDirectoryRead')
- ->with(DirectoryList::MEDIA)
- ->willReturn($this->mediaDir);
- /** @var \Magento\Framework\Filesystem $filesystem */
- $this->object = new Favicon(
- $storeManager,
- $this->scopeManager,
- $this->fileStorageDatabase,
- $filesystem
- );
- }
- /**
- * cover negative case for getFaviconFile
- */
- public function testGetFaviconFileNegative()
- {
- $this->assertFalse($this->object->getFaviconFile());
- }
- /**
- * cover positive case for getFaviconFile and checkIsFile
- */
- public function testGetFaviconFile()
- {
- $scopeConfigValue = 'path';
- $urlToMediaDir = 'http://magento.url/pub/media/';
- $expectedFile = ImageFavicon::UPLOAD_DIR . '/' . $scopeConfigValue;
- $expectedUrl = $urlToMediaDir . $expectedFile;
- $this->scopeManager->expects($this->once())
- ->method('getValue')
- ->with('design/head/shortcut_icon', ScopeInterface::SCOPE_STORE)
- ->willReturn($scopeConfigValue);
- $this->store->expects($this->once())
- ->method('getBaseUrl')
- ->with(UrlInterface::URL_TYPE_MEDIA)
- ->willReturn($urlToMediaDir);
- $this->fileStorageDatabase->expects($this->once())
- ->method('checkDbUsage')
- ->willReturn(true);
- $this->fileStorageDatabase->expects($this->once())
- ->method('saveFileToFilesystem')
- ->willReturn(true);
- $this->mediaDir->expects($this->at(0))
- ->method('isFile')
- ->with($expectedFile)
- ->willReturn(false);
- $this->mediaDir->expects($this->at(1))
- ->method('isFile')
- ->with($expectedFile)
- ->willReturn(true);
- $results = $this->object->getFaviconFile();
- $this->assertEquals(
- $expectedUrl,
- $results
- );
- $this->assertNotFalse($results);
- }
- /**
- * cover getDefaultFavicon
- */
- public function testGetDefaultFavicon()
- {
- $this->assertEquals('Magento_Theme::favicon.ico', $this->object->getDefaultFavicon());
- }
- }
|