Skip to content

Commit ff35c6d

Browse files
Merge branch 'MAGETWO-53223' of https://github.com/magento-tango/magento2ce into MAGETWO-53991
2 parents bbbe4d2 + 64d7dfe commit ff35c6d

File tree

2 files changed

+87
-80
lines changed

2 files changed

+87
-80
lines changed

lib/internal/Magento/Framework/View/Asset/MergeService.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,12 @@ public function getMergedAssets(array $assets, $contentType)
7979
$isCssMergeEnabled = $this->config->isMergeCssFiles();
8080
$isJsMergeEnabled = $this->config->isMergeJsFiles();
8181
if (($isCss && $isCssMergeEnabled) || ($isJs && $isJsMergeEnabled)) {
82+
$mergeStrategyClass = \Magento\Framework\View\Asset\MergeStrategy\FileExists::class;
83+
8284
if ($this->state->getMode() === \Magento\Framework\App\State::MODE_DEVELOPER) {
83-
$mergeStrategyClass = 'Magento\Framework\View\Asset\MergeStrategy\Checksum';
84-
} else {
85-
$mergeStrategyClass = 'Magento\Framework\View\Asset\MergeStrategy\FileExists';
85+
$mergeStrategyClass = \Magento\Framework\View\Asset\MergeStrategy\Checksum::class;
8686
}
87+
8788
$mergeStrategy = $this->objectManager->get($mergeStrategyClass);
8889

8990
$assets = $this->objectManager->create(

lib/internal/Magento/Framework/View/Test/Unit/Asset/MergeServiceTest.php

Lines changed: 83 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,77 @@
55
*/
66
namespace Magento\Framework\View\Test\Unit\Asset;
77

8+
use Magento\Framework\App\State;
9+
use Magento\Framework\Filesystem;
10+
use Magento\Framework\ObjectManagerInterface;
11+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
12+
use Magento\Framework\View\Asset\AssetInterface;
13+
use Magento\Framework\View\Asset\Merged;
14+
use Magento\Framework\View\Asset\MergeService;
15+
use Magento\Framework\View\Asset\ConfigInterface;
16+
use Magento\Framework\View\Asset\MergeStrategy\Checksum;
17+
use Magento\Framework\View\Asset\MergeStrategy\FileExists;
18+
19+
/**
20+
* Class MergeServiceTest
21+
*/
822
class MergeServiceTest extends \PHPUnit_Framework_TestCase
923
{
1024
/**
11-
* @var \Magento\Framework\View\Asset\MergeService
25+
* @var MergeService
1226
*/
13-
protected $_object;
27+
private $object;
1428

1529
/**
16-
* @var \PHPUnit_Framework_MockObject_MockObject
30+
* @var ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
1731
*/
18-
protected $_objectManager;
32+
private $objectManagerMock;
1933

2034
/**
21-
* @var \PHPUnit_Framework_MockObject_MockObject
35+
* @var ConfigInterface|\PHPUnit_Framework_MockObject_MockObject
2236
*/
23-
protected $_config;
37+
private $configMock;
2438

2539
/**
26-
* @var \PHPUnit_Framework_MockObject_MockObject
40+
* @var Filesystem|\PHPUnit_Framework_MockObject_MockObject
2741
*/
28-
protected $_filesystem;
42+
private $filesystemMock;
2943

3044
/**
31-
* @var \PHPUnit_Framework_MockObject_MockObject
45+
* @var Filesystem\Directory\Write|\PHPUnit_Framework_MockObject_MockObject
3246
*/
33-
protected $_directory;
47+
protected $directoryMock;
3448

3549
/**
36-
* @var \PHPUnit_Framework_MockObject_MockObject
50+
* @var State|\PHPUnit_Framework_MockObject_MockObject
3751
*/
38-
protected $_state;
52+
protected $stateMock;
3953

4054
protected function setUp()
4155
{
42-
$this->_objectManager = $this->getMock('Magento\Framework\ObjectManagerInterface');
43-
$this->_config = $this->getMock('Magento\Framework\View\Asset\ConfigInterface', [], [], '', false);
44-
$this->_filesystem = $this->getMock('Magento\Framework\Filesystem', [], [], '', false);
45-
$this->_directory = $this->getMock(
46-
'\Magento\Framework\Filesystem\Directory\Write',
47-
[],
48-
[],
49-
'',
50-
false
51-
);
52-
$this->_state = $this->getMock('Magento\Framework\App\State', [], [], '', false);
53-
$this->_filesystem->expects(
54-
$this->any()
55-
)->method(
56-
'getDirectoryWrite'
57-
)->will(
58-
$this->returnValue($this->_directory)
59-
);
60-
61-
$this->_object = new \Magento\Framework\View\Asset\MergeService(
62-
$this->_objectManager,
63-
$this->_config,
64-
$this->_filesystem,
65-
$this->_state
66-
);
56+
$this->objectManagerMock = $this->getMockBuilder(ObjectManagerInterface::class)
57+
->getMockForAbstractClass();
58+
$this->configMock = $this->getMockBuilder(ConfigInterface::class)
59+
->getMockForAbstractClass();
60+
$this->filesystemMock = $this->getMockBuilder(Filesystem::class)
61+
->disableOriginalConstructor()
62+
->getMock();
63+
$this->directoryMock = $this->getMockBuilder(Filesystem\Directory\Write::class)
64+
->disableOriginalConstructor()
65+
->getMock();
66+
$this->stateMock = $this->getMockBuilder(State::class)
67+
->disableOriginalConstructor()
68+
->getMock();
69+
$this->filesystemMock->expects($this->any())
70+
->method('getDirectoryWrite')
71+
->willReturn($this->directoryMock);
72+
73+
$this->object = (new ObjectManager($this))->getObject(MergeService::class, [
74+
'objectManager' => $this->objectManagerMock,
75+
'config' => $this->configMock,
76+
'filesystem' => $this->filesystemMock,
77+
'state' => $this->stateMock,
78+
]);
6779
}
6880

6981
/**
@@ -72,7 +84,7 @@ protected function setUp()
7284
*/
7385
public function testGetMergedAssetsWrongContentType()
7486
{
75-
$this->_object->getMergedAssets([], 'unknown');
87+
$this->object->getMergedAssets([], 'unknown');
7688
}
7789

7890
/**
@@ -84,34 +96,25 @@ public function testGetMergedAssetsWrongContentType()
8496
*/
8597
public function testGetMergedAssets(array $assets, $contentType, $appMode, $mergeStrategy)
8698
{
87-
$mergedAsset = $this->getMock('Magento\Framework\View\Asset\AssetInterface');
88-
$this->_config->expects($this->once())->method('isMergeCssFiles')->will($this->returnValue(true));
89-
$this->_config->expects($this->once())->method('isMergeJsFiles')->will($this->returnValue(true));
90-
99+
$mergedAsset = $this->getMock(AssetInterface::class);
91100
$mergeStrategyMock = $this->getMock($mergeStrategy, [], [], '', false);
92101

93-
$this->_objectManager->expects(
94-
$this->once()
95-
)->method(
96-
'create'
97-
)->with(
98-
'Magento\Framework\View\Asset\Merged',
99-
['assets' => $assets, 'mergeStrategy' => $mergeStrategyMock]
100-
)->will(
101-
$this->returnValue($mergedAsset)
102-
);
103-
104-
$this->_objectManager->expects(
105-
$this->once()
106-
)->method(
107-
'get'
108-
)->with(
109-
$mergeStrategy
110-
)->will(
111-
$this->returnValue($mergeStrategyMock)
112-
);
113-
$this->_state->expects($this->once())->method('getMode')->will($this->returnValue($appMode));
114-
$this->assertSame($mergedAsset, $this->_object->getMergedAssets($assets, $contentType));
102+
$this->configMock->expects($this->once())->method('isMergeCssFiles')->willReturn(true);
103+
$this->configMock->expects($this->once())->method('isMergeJsFiles')->willReturn(true);
104+
105+
$this->objectManagerMock->expects($this->once())
106+
->method('create')
107+
->with(Merged::class, ['assets' => $assets, 'mergeStrategy' => $mergeStrategyMock])
108+
->willReturn($mergedAsset);
109+
$this->objectManagerMock->expects($this->once())
110+
->method('get')
111+
->with($mergeStrategy)
112+
->willReturn($mergeStrategyMock);
113+
$this->stateMock->expects($this->once())
114+
->method('getMode')
115+
->willReturn($appMode);
116+
117+
$this->assertSame($mergedAsset, $this->object->getMergedAssets($assets, $contentType));
115118
}
116119

117120
public static function getMergedAssetsDataProvider()
@@ -128,47 +131,50 @@ public static function getMergedAssetsDataProvider()
128131
'js production mode' => [
129132
$jsAssets,
130133
'js',
131-
\Magento\Framework\App\State::MODE_PRODUCTION,
132-
'Magento\Framework\View\Asset\MergeStrategy\FileExists',
134+
State::MODE_PRODUCTION,
135+
FileExists::class,
133136
],
134137
'css production mode' => [
135138
$cssAssets,
136139
'css',
137-
\Magento\Framework\App\State::MODE_PRODUCTION,
138-
'Magento\Framework\View\Asset\MergeStrategy\FileExists',
140+
State::MODE_PRODUCTION,
141+
FileExists::class,
139142
],
140143
'js default mode' => [
141144
$jsAssets,
142145
'js',
143-
\Magento\Framework\App\State::MODE_DEFAULT,
144-
'Magento\Framework\View\Asset\MergeStrategy\FileExists',
146+
State::MODE_DEFAULT,
147+
FileExists::class,
145148
],
146149
'css default mode' => [
147150
$cssAssets,
148151
'js',
149-
\Magento\Framework\App\State::MODE_DEFAULT,
150-
'Magento\Framework\View\Asset\MergeStrategy\FileExists',
152+
State::MODE_DEFAULT,
153+
FileExists::class,
151154
],
152155
'js developer mode' => [
153156
$jsAssets,
154157
'js',
155-
\Magento\Framework\App\State::MODE_DEVELOPER,
156-
'Magento\Framework\View\Asset\MergeStrategy\Checksum',
158+
State::MODE_DEVELOPER,
159+
Checksum::class,
157160
],
158161
'css developer mode' => [
159162
$cssAssets,
160163
'css',
161164
\Magento\Framework\App\State::MODE_DEVELOPER,
162-
'Magento\Framework\View\Asset\MergeStrategy\Checksum',
165+
Checksum::class,
163166
]
164167
];
165168
}
166169

167170
public function testCleanMergedJsCss()
168171
{
169172
$mergedDir = \Magento\Framework\View\Asset\Merged::getRelativeDir();
170-
$this->_directory->expects($this->once())->method('delete')->with($mergedDir);
171173

172-
$this->_object->cleanMergedJsCss();
174+
$this->directoryMock->expects($this->once())
175+
->method('delete')
176+
->with($mergedDir);
177+
178+
$this->object->cleanMergedJsCss();
173179
}
174180
}

0 commit comments

Comments
 (0)