Skip to content

Commit 4350c73

Browse files
author
Dale Sikkema
committed
MAGETWO-47892: [GitHub] Max execution time of 60 seconds exceeded in CLI #2461
1 parent 3b7548a commit 4350c73

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

lib/internal/Magento/Framework/Code/Minifier/Adapter/Css/CSSmin.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Copyright © 2016 Magento. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
namespace Magento\Framework\Code\Minifier\Adapter\Css;
87

98
use CSSmin as CssMinLibrary;
@@ -26,10 +25,24 @@ class CSSmin implements AdapterInterface
2625

2726
/**
2827
* @param CssMinLibrary $cssMinifier
28+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
2929
*/
3030
public function __construct(CssMinLibrary $cssMinifier)
3131
{
32-
$this->cssMinifier = $cssMinifier;
32+
// TODO: set $cssMinifier in constructor once MAGETWO-51176 is resolved.
33+
}
34+
35+
/**
36+
* Get CSS Minifier
37+
*
38+
* @return \CSSMin
39+
*/
40+
private function getCssMin()
41+
{
42+
if (!($this->cssMinifier instanceof \CSSMin)) {
43+
$this->cssMinifier = new \CSSmin(false);
44+
}
45+
return $this->cssMinifier;
3346
}
3447

3548
/**
@@ -42,7 +55,7 @@ public function minify($content)
4255
{
4356
$pcreRecursionLimit = ini_get('pcre.recursion_limit');
4457
ini_set('pcre.recursion_limit', self::PCRE_RECURSION_LIMIT);
45-
$result = $this->cssMinifier->run($content);
58+
$result = $this->getCssMin()->run($content);
4659
ini_set('pcre.recursion_limit', $pcreRecursionLimit);
4760
return $result;
4861
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Framework\Code\Test\Unit\Minifier\Adapter\Css;
7+
8+
class CssMinTest extends \PHPUnit_Framework_TestCase
9+
{
10+
public function testMinify()
11+
{
12+
$cssMinMock = $this->getMockBuilder(\CSSmin::class)
13+
->disableOriginalConstructor()
14+
->getMock();
15+
$cssMinAdapter = new \Magento\Framework\Code\Minifier\Adapter\Css\CSSmin($cssMinMock);
16+
$property = new \ReflectionProperty(\Magento\Framework\Code\Minifier\Adapter\Css\CSSmin::class, 'cssMinifier');
17+
$property->setAccessible(true);
18+
$property->setValue($cssMinAdapter, $cssMinMock);
19+
20+
$expectedResult = 'minified content';
21+
$cssMinMock->expects($this->once())->method('run')->willReturn($expectedResult);
22+
$this->assertEquals($expectedResult, $cssMinAdapter->minify('not minified'));
23+
}
24+
}

0 commit comments

Comments
 (0)