Skip to content

Commit c074563

Browse files
author
roman
committed
MC-13741: Fixed incorrect behavior of template variables
1 parent dfd0874 commit c074563

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

lib/internal/Magento/Framework/Filter/Template.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ class Template implements \Zend_Filter_Interface
7474
'getresourcecollection',
7575
'load',
7676
'save',
77-
'getcollection'
77+
'getcollection',
78+
'getresource'
7879
];
7980

8081
/**

lib/internal/Magento/Framework/Filter/Test/Unit/TemplateTest.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,25 @@
66

77
namespace Magento\Framework\Filter\Test\Unit;
88

9+
use Magento\Store\Model\Store;
10+
911
class TemplateTest extends \PHPUnit\Framework\TestCase
1012
{
1113
/**
1214
* @var \Magento\Framework\Filter\Template
1315
*/
1416
private $templateFilter;
1517

18+
/**
19+
* @var Store
20+
*/
21+
private $store;
22+
1623
protected function setUp()
1724
{
1825
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
1926
$this->templateFilter = $objectManager->getObject(\Magento\Framework\Filter\Template::class);
27+
$this->store = $objectManager->getObject(Store::class);
2028
}
2129

2230
public function testFilter()
@@ -391,4 +399,32 @@ public function testInappropriateCallbacks()
391399
$this->templateFilter->setVariables(['filter' => $this->templateFilter]);
392400
$this->templateFilter->filter('Test {{var filter.addAfterFilterCallback(\'mb_strtolower\')}}');
393401
}
402+
403+
/**
404+
* Test adding callbacks when already filtering.
405+
*
406+
* @expectedException \InvalidArgumentException
407+
* @dataProvider disallowedMethods
408+
*/
409+
public function testDisallowedMethods($method)
410+
{
411+
$this->templateFilter->setVariables(['store' => $this->store]);
412+
$this->templateFilter->filter('{{var store.'.$method.'()}}');
413+
}
414+
415+
/**
416+
* Data for testDisallowedMethods method
417+
*
418+
* @return array
419+
*/
420+
public function disallowedMethods()
421+
{
422+
return [
423+
['getResourceCollection'],
424+
['load'],
425+
['save'],
426+
['getCollection'],
427+
['getResource'],
428+
];
429+
}
394430
}

0 commit comments

Comments
 (0)