Skip to content

Commit 5dde4a3

Browse files
committed
Merge pull request #34 from magento-extensibility/MAGETWO-31968-Logger-Fatal-Error
[Extensibility] Magetwo 31968 logger fatal error
2 parents 415a139 + 9cedc5a commit 5dde4a3

File tree

3 files changed

+76
-7
lines changed

3 files changed

+76
-7
lines changed

dev/tests/unit/testsuite/Magento/Framework/Image/Adapter/AbstractTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ class AbstractTest extends \PHPUnit_Framework_TestCase
2626
*/
2727
protected $filesystemMock;
2828

29+
/**
30+
* @var \PHPUnit_Framework_MockObject_MockObject |\Psr\Log\LoggerInterface
31+
*/
32+
protected $loggerMock;
33+
2934
protected function setUp()
3035
{
3136
$this->directoryWriteMock = $this->getMock(
@@ -49,10 +54,11 @@ protected function setUp()
4954
)->will(
5055
$this->returnValue($this->directoryWriteMock)
5156
);
57+
$this->loggerMock = $this->getMockBuilder( 'Psr\Log\LoggerInterface')->getMock();
5258

5359
$this->_model = $this->getMockForAbstractClass(
5460
'Magento\Framework\Image\Adapter\AbstractAdapter',
55-
[$this->filesystemMock]
61+
[$this->filesystemMock, $this->loggerMock]
5662
);
5763
}
5864

@@ -61,6 +67,7 @@ protected function tearDown()
6167
$this->directoryWriteMock = null;
6268
$this->_model = null;
6369
$this->filesystemMock = null;
70+
$this->loggerMock = null;
6471
}
6572

6673
/**

dev/tests/unit/testsuite/Magento/Framework/Image/Adapter/ImageMagickTest.php

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,63 @@
55
*/
66
namespace Magento\Framework\Image\Adapter;
77

8+
use Magento\Framework\Filesystem\FilesystemException;
9+
use Magento\TestFramework\Helper\ObjectManager;
10+
811
class ImageMagickTest extends \PHPUnit_Framework_TestCase
912
{
1013
/**
14+
* @var \PHPUnit_Framework_MockObject_MockObject |\Magento\Framework\Filesystem
15+
*/
16+
protected $filesystemMock;
17+
18+
/**
19+
* @var \PHPUnit_Framework_MockObject_MockObject |\Psr\Log\LoggerInterface
20+
*/
21+
protected $loggerMock;
22+
23+
/**
24+
* @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Filesystem\Directory\WriteInterface
25+
*/
26+
protected $writeMock;
27+
/**
28+
* @var \Magento\Framework\Image\Adapter\ImageMagick
29+
*/
30+
protected $imageMagic;
31+
32+
public function setup()
33+
{
34+
$objectManager = new ObjectManager($this);
35+
$this->loggerMock = $this->getMockBuilder( 'Psr\Log\LoggerInterface')->getMock();
36+
$this->writeMock = $this->getMockBuilder('Magento\Framework\Filesystem\Directory\WriteInterface')->getMock();
37+
$this->filesystemMock = $this->getMock(
38+
'Magento\Framework\Filesystem',
39+
['getDirectoryWrite'],
40+
[],
41+
'',
42+
false
43+
);
44+
$this->filesystemMock
45+
->expects($this->once())
46+
->method('getDirectoryWrite')
47+
->will($this->returnValue( $this->writeMock));
48+
49+
$this->imageMagic = $objectManager
50+
->getObject(
51+
'Magento\Framework\Image\Adapter\ImageMagick',
52+
['filesystem' => $this->filesystemMock,
53+
'logger' => $this->loggerMock]
54+
);
55+
}
56+
/**
57+
* @param string $imagePath
58+
* @param string $expectedMessage
1159
* @dataProvider watermarkDataProvider
1260
*/
1361
public function testWatermark($imagePath, $expectedMessage)
1462
{
15-
$filesystem =
16-
$this->getMockBuilder('Magento\Framework\Filesystem')->disableOriginalConstructor()->getMock();
1763
$this->setExpectedException('LogicException', $expectedMessage);
18-
$object = new \Magento\Framework\Image\Adapter\ImageMagick($filesystem);
19-
$object->watermark($imagePath);
64+
$this->imageMagic->watermark($imagePath);
2065
}
2166

2267
/**
@@ -33,4 +78,16 @@ public function watermarkDataProvider()
3378
]
3479
];
3580
}
81+
82+
/**
83+
* @expectedException \Exception
84+
* @expectedExceptionMessage Unable to write file into directory product/cache. Access forbidden.
85+
*/
86+
public function testSaveWithException()
87+
{
88+
$exception = new FilesystemException();
89+
$this->writeMock->method('create')->will($this->throwException($exception));
90+
$this->loggerMock->expects($this->once())->method('critical')->with($exception);
91+
$this->imageMagic->save('product/cache', 'sample.jpg');
92+
}
3693
}

lib/internal/Magento/Framework/Image/Adapter/AbstractAdapter.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,11 +261,16 @@ abstract public function getColorAt($x, $y);
261261
* Initialize default values
262262
*
263263
* @param \Magento\Framework\Filesystem $filesystem
264+
* @param \Psr\Log\LoggerInterface $logger
264265
* @param array $data
265266
*/
266-
public function __construct(\Magento\Framework\Filesystem $filesystem, array $data = [])
267-
{
267+
public function __construct(
268+
\Magento\Framework\Filesystem $filesystem,
269+
\Psr\Log\LoggerInterface $logger,
270+
array $data = []
271+
) {
268272
$this->_filesystem = $filesystem;
273+
$this->logger = $logger;
269274
$this->directoryWrite = $this->_filesystem->getDirectoryWrite(DirectoryList::ROOT);
270275
}
271276

0 commit comments

Comments
 (0)