From bbb9f6c131afcc3ae2f84f6e774b36df3acf7bd4 Mon Sep 17 00:00:00 2001 From: Joan He Date: Fri, 23 Oct 2015 15:10:56 -0500 Subject: [PATCH] MAGETWO-43857: [github] cache types don't properly invalidate all the time #1844 --- .../Theme/Model/Design/Backend/Theme.php | 1 + .../Unit/Model/Design/Backend/ThemeTest.php | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php index d58e9b382427a..108e82528a064 100644 --- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php +++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php @@ -68,6 +68,7 @@ public function afterSave() parent::afterSave(); if ($this->isValueChanged()) { $this->_cacheManager->clean(); + $this->_eventManager->dispatch('adminhtml_cache_flush_system'); } return $this; } diff --git a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php index 4082cac2232d8..e394482d74865 100644 --- a/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php +++ b/app/code/Magento/Theme/Test/Unit/Model/Design/Backend/ThemeTest.php @@ -32,6 +32,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase */ protected $cacheTypeListMock; + /** + * @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $eventManagerMock; + /** * @var \Magento\Framework\App\CacheInterface | \PHPUnit_Framework_MockObject_MockObject */ @@ -48,9 +53,15 @@ protected function setUp() $this->cacheManagerMock = $this->getMockBuilder('Magento\Framework\App\CacheInterface') ->disableOriginalConstructor() ->getMock(); + $this->eventManagerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface') + ->disableOriginalConstructor() + ->getMock(); $this->context = $objectManager->getObject( 'Magento\Framework\Model\Context', - ['cacheManager' => $this->cacheManagerMock] + [ + 'cacheManager' => $this->cacheManagerMock, + 'eventDispatcher' => $this->eventManagerMock, + ] ); $this->designMock = $this->getMockBuilder('Magento\Framework\View\DesignInterface')->getMock(); @@ -100,6 +111,11 @@ public function testAfterSave($callNumber, $oldValue) $this->configMock->expects($this->any()) ->method('getValue') ->willReturn($oldValue); + if ($callNumber) { + $this->eventManagerMock->expects($this->at(3)) + ->method('dispatch') + ->with('adminhtml_cache_flush_system'); + } $this->model->setValue('some_value'); $this->assertInstanceOf(get_class($this->model), $this->model->afterSave()); }