From 171c7f9c02d4288646185d486bc64d8b9816b096 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 18 Aug 2015 19:37:55 +0300 Subject: [PATCH 01/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks --- .../Controller/Adminhtml/Block/MassDelete.php | 9 +- .../Controller/Adminhtml/Page/MassDelete.php | 9 +- .../Adminhtml/AbstractMassDeleteTest.php | 68 +++++++++++ .../Adminhtml/Block/MassDeleteTest.php | 114 ++++++++++++++++++ .../Adminhtml/Page/MassDeleteTest.php | 114 ++++++++++++++++++ 5 files changed, 306 insertions(+), 8 deletions(-) create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php index d9a8c044873cf..42319679b922c 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php @@ -47,12 +47,13 @@ public function __construct(Context $context, Filter $filter, CollectionFactory public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - - foreach ($collection as $item) { - $item->delete(); + $deletedBlocks = 0; + foreach ($collection as $block) { + $block->delete(); + $deletedBlocks++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php index e5cfcf22966f5..e699a3a480e5f 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php @@ -46,12 +46,13 @@ public function __construct(Context $context, Filter $filter, CollectionFactory public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - - foreach ($collection as $item) { - $item->delete(); + $deletedPages = 0; + foreach ($collection as $page) { + $page->delete(); + $deletedPages++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedPages)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php new file mode 100644 index 0000000000000..0668edee3be7a --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php @@ -0,0 +1,68 @@ +objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->messageManagerMock = $this->getMock('Magento\Framework\Message\ManagerInterface', [], [], '', false); + + $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory') + ->disableOriginalConstructor() + ->getMock(); + $this->resultRedirectMock = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect') + ->disableOriginalConstructor() + ->getMock(); + $this->resultFactoryMock->expects($this->any()) + ->method('create') + ->with(ResultFactory::TYPE_REDIRECT, []) + ->willReturn($this->resultRedirectMock); + + $this->contextMock = $this->getMock('\Magento\Backend\App\Action\Context', [], [], '', false); + + $this->filterMock = $this->getMockBuilder('Magento\Ui\Component\MassAction\Filter') + ->disableOriginalConstructor() + ->getMock(); + + $this->contextMock->expects($this->any())->method('getMessageManager')->willReturn($this->messageManagerMock); + $this->contextMock->expects($this->any())->method('getResultFactory')->willReturn($this->resultFactoryMock); + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php new file mode 100644 index 0000000000000..7db8d7b28cac5 --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -0,0 +1,114 @@ +collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->blockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->headerBlockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->footerBlockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->massDeleteController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDeleteAction() + { + $deletedBlocks = 2; + + $collection = [ + $this->headerBlockCollectionMock, + $this->footerBlockCollectionMock + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->blockCollectionMock) + ->willReturn($collection); + + $this->headerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + $this->footerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php new file mode 100644 index 0000000000000..0bc28b3c52af7 --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -0,0 +1,114 @@ +collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->homePageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->welcomePageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->massDeleteController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDeleteAction() + { + $deletedPages = 2; + + $collection = [ + $this->homePageCollectionMock, + $this->welcomePageCollectionMock + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($collection); + + $this->homePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + $this->welcomePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); + } +} From cf6a3b7eda5151a7783fa07578c834e5875d6bd4 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 19 Aug 2015 12:52:06 +0300 Subject: [PATCH 02/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Unit tests updated; --- .../Adminhtml/Block/MassDeleteTest.php | 63 +++++-------------- .../Adminhtml/Page/MassDeleteTest.php | 63 +++++-------------- 2 files changed, 34 insertions(+), 92 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index 7db8d7b28cac5..f27016e49d44c 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -19,21 +19,6 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $blockCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $headerBlockCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $footerBlockCollectionMock; - protected function setUp() { parent::setUp(); @@ -46,30 +31,6 @@ protected function setUp() false ); - $this->blockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - - $this->headerBlockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - - $this->footerBlockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', [ @@ -85,20 +46,17 @@ public function testMassDeleteAction() $deletedBlocks = 2; $collection = [ - $this->headerBlockCollectionMock, - $this->footerBlockCollectionMock + $this->getBlockMock(), + $this->getBlockMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getBlockMock()); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->blockCollectionMock) + ->with($this->getBlockMock()) ->willReturn($collection); - $this->headerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->footerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->messageManagerMock->expects($this->once()) ->method('addSuccess') ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); @@ -111,4 +69,17 @@ public function testMassDeleteAction() $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } + + /** + * Create Cms Block Collection Mock + * + * @return \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getBlockMock() + { + $blockMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', ['delete'], [], '', false); + $blockMock->expects($this->any())->method('delete')->willReturn(true); + + return $blockMock; + } } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 0bc28b3c52af7..f768a6480e6c8 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,21 +19,6 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $homePageCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $welcomePageCollectionMock; - protected function setUp() { parent::setUp(); @@ -46,30 +31,6 @@ protected function setUp() false ); - $this->pageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - - $this->homePageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - - $this->welcomePageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -85,20 +46,17 @@ public function testMassDeleteAction() $deletedPages = 2; $collection = [ - $this->homePageCollectionMock, - $this->welcomePageCollectionMock + $this->getPageMock(), + $this->getPageMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getPageMock()); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->pageCollectionMock) + ->with($this->getPageMock()) ->willReturn($collection); - $this->homePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->welcomePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->messageManagerMock->expects($this->once()) ->method('addSuccess') ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); @@ -111,4 +69,17 @@ public function testMassDeleteAction() $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', ['delete'], [], '', false); + $pageMock->expects($this->any())->method('delete')->willReturn(true); + + return $pageMock; + } } From 1e10d72cfa5be7e29b88ee0e759bc4826180ce72 Mon Sep 17 00:00:00 2001 From: Yuri Kovsher Date: Fri, 21 Aug 2015 13:20:17 +0300 Subject: [PATCH 03/21] MAGETWO-41916: Production Mode does not Work for Authorize.net --- .../Authorizenet/etc/adminhtml/system.xml | 25 +++++++++++-------- app/code/Magento/Authorizenet/etc/config.xml | 2 ++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml index 591d0951e2d45..cfff3a927453c 100644 --- a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml +++ b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml @@ -44,45 +44,48 @@ - + + + + Magento\Config\Model\Config\Source\Locale\Currency - + Magento\Config\Model\Config\Source\Yesno - + Magento\Config\Model\Config\Source\Yesno - + validate-email - + Magento\Authorizenet\Model\Source\Cctype - + Magento\Config\Model\Config\Source\Yesno - + Magento\Payment\Model\Config\Source\Allspecificcountries - + Magento\Directory\Model\Config\Source\Country - + - + - + validate-number diff --git a/app/code/Magento/Authorizenet/etc/config.xml b/app/code/Magento/Authorizenet/etc/config.xml index a620f157b10e4..d672c305df335 100644 --- a/app/code/Magento/Authorizenet/etc/config.xml +++ b/app/code/Magento/Authorizenet/etc/config.xml @@ -30,6 +30,8 @@ authorizenet/directpost_payment/place https://test.authorize.net/gateway/transact.dll https://secure.authorize.net/gateway/transact.dll + https://apitest.authorize.net/xml/v1/request.api + https://api2.authorize.net/xml/v1/request.api From 728a3493efcaae44a84c3ef2c5de4111157465ba Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 25 Aug 2015 19:23:36 +0300 Subject: [PATCH 04/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Unit tests updated; --- .../Controller/Adminhtml/Block/MassDeleteTest.php | 13 ++++++++++--- .../Controller/Adminhtml/Page/MassDeleteTest.php | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index f27016e49d44c..467295679e923 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -19,6 +19,11 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $blockCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ protected function setUp() false ); + $this->blockCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', [], [], '', false); + $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', [ @@ -50,11 +57,11 @@ public function testMassDeleteAction() $this->getBlockMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getBlockMock()); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->getBlockMock()) + ->with($this->blockCollectionMock) ->willReturn($collection); $this->messageManagerMock->expects($this->once()) @@ -78,7 +85,7 @@ public function testMassDeleteAction() protected function getBlockMock() { $blockMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', ['delete'], [], '', false); - $blockMock->expects($this->any())->method('delete')->willReturn(true); + $blockMock->expects($this->once())->method('delete')->willReturn(true); return $blockMock; } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index f768a6480e6c8..923d4dcfc1a33 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,6 +19,11 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ protected function setUp() false ); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -50,11 +57,11 @@ public function testMassDeleteAction() $this->getPageMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getPageMock()); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->getPageMock()) + ->with($this->pageCollectionMock) ->willReturn($collection); $this->messageManagerMock->expects($this->once()) @@ -78,7 +85,7 @@ public function testMassDeleteAction() protected function getPageMock() { $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', ['delete'], [], '', false); - $pageMock->expects($this->any())->method('delete')->willReturn(true); + $pageMock->expects($this->once())->method('delete')->willReturn(true); return $pageMock; } From a34f8e3cf282659dadd8cc8baa8093468e2f6f2d Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 26 Aug 2015 12:19:07 +0300 Subject: [PATCH 05/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Updated logic for deleted pages and blocks count; - Unit tests updated; --- .../Cms/Controller/Adminhtml/Block/MassDelete.php | 6 +++--- .../Cms/Controller/Adminhtml/Page/MassDelete.php | 6 +++--- .../Controller/Adminhtml/Block/MassDeleteTest.php | 11 ++++++++--- .../Unit/Controller/Adminhtml/Page/MassDeleteTest.php | 11 ++++++++--- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php index 42319679b922c..6004e737bb04b 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php @@ -47,13 +47,13 @@ public function __construct(Context $context, Filter $filter, CollectionFactory public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - $deletedBlocks = 0; + $collectionSize = $collection->getSize(); + foreach ($collection as $block) { $block->delete(); - $deletedBlocks++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php index e699a3a480e5f..6505b7e6b7d8d 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php @@ -46,13 +46,13 @@ public function __construct(Context $context, Filter $filter, CollectionFactory public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - $deletedPages = 0; + $collectionSize = $collection->getSize(); + foreach ($collection as $page) { $page->delete(); - $deletedPages++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedPages)); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index 467295679e923..f19d0c23d1d3d 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -50,7 +50,7 @@ protected function setUp() public function testMassDeleteAction() { - $deletedBlocks = 2; + $deletedBlocksCount = 2; $collection = [ $this->getBlockMock(), @@ -62,11 +62,16 @@ public function testMassDeleteAction() $this->filterMock->expects($this->once()) ->method('getCollection') ->with($this->blockCollectionMock) - ->willReturn($collection); + ->willReturn($this->blockCollectionMock); + + $this->blockCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedBlocksCount); + $this->blockCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); $this->messageManagerMock->expects($this->once()) ->method('addSuccess') - ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocksCount)); $this->messageManagerMock->expects($this->never())->method('addError'); $this->resultRedirectMock->expects($this->once()) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 923d4dcfc1a33..e728187acbc2c 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -50,7 +50,7 @@ protected function setUp() public function testMassDeleteAction() { - $deletedPages = 2; + $deletedPagesCount = 2; $collection = [ $this->getPageMock(), @@ -62,11 +62,16 @@ public function testMassDeleteAction() $this->filterMock->expects($this->once()) ->method('getCollection') ->with($this->pageCollectionMock) - ->willReturn($collection); + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); $this->messageManagerMock->expects($this->once()) ->method('addSuccess') - ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); + ->with(__('A total of %1 record(s) have been deleted.', $deletedPagesCount)); $this->messageManagerMock->expects($this->never())->method('addError'); $this->resultRedirectMock->expects($this->once()) From 3effacef3d487acc2a96e13f0b6e6fd5dae412f8 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 28 Aug 2015 16:50:25 +0300 Subject: [PATCH 06/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Changed success message for mass enable and mass disable actions; - Unit tests added; --- .../Controller/Adminhtml/Page/MassDisable.php | 2 +- .../Controller/Adminhtml/Page/MassEnable.php | 2 +- ...eteTest.php => AbstractMassActionTest.php} | 2 +- .../Adminhtml/Block/MassDeleteTest.php | 4 +- .../Adminhtml/Page/MassDeleteTest.php | 4 +- .../Adminhtml/Page/MassDisableTest.php | 103 ++++++++++++++++++ .../Adminhtml/Page/MassEnableTest.php | 103 ++++++++++++++++++ 7 files changed, 213 insertions(+), 7 deletions(-) rename app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/{AbstractMassDeleteTest.php => AbstractMassActionTest.php} (97%) create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php index a3c5b07513f1e..e3d39c9a6f2ac 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php @@ -52,7 +52,7 @@ public function execute() $item->save(); } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been disabled.', $collection->getSize())); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php index fff1f58a5b1c0..a6c7415d9d5f1 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php @@ -52,7 +52,7 @@ public function execute() $item->save(); } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been enabled.', $collection->getSize())); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php similarity index 97% rename from app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php rename to app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php index 0668edee3be7a..83802f3515b4d 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php @@ -7,7 +7,7 @@ use Magento\Framework\Controller\ResultFactory; -abstract class AbstractMassDeleteTest extends \PHPUnit_Framework_TestCase +abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index f19d0c23d1d3d..2910d63641d65 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -5,9 +5,9 @@ */ namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Block; -use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; -class MassDeleteTest extends AbstractMassDeleteTest +class MassDeleteTest extends AbstractMassActionTest { /** * @var \Magento\Cms\Controller\Adminhtml\Block\MassDelete diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index e728187acbc2c..6f87c8bca31c9 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -5,9 +5,9 @@ */ namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Page; -use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; -class MassDeleteTest extends AbstractMassDeleteTest +class MassDeleteTest extends AbstractMassActionTest { /** * @var \Magento\Cms\Controller\Adminhtml\Page\MassDelete diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php new file mode 100644 index 0000000000000..1eddcf295be86 --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -0,0 +1,103 @@ +collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + + $this->massDisableController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassDisable', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDisableAction() + { + $disabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($disabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been disabled.', $disabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute()); + } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + ['setIsActive', 'save'], + [], + '', + false + ); + $pageMock->expects($this->once())->method('setIsActive')->with(false)->willReturn(true); + $pageMock->expects($this->once())->method('save')->willReturn(true); + + return $pageMock; + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php new file mode 100644 index 0000000000000..d40a15e40691f --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -0,0 +1,103 @@ +collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + + $this->massEnableController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassEnable', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassEnableAction() + { + $enabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($enabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been enabled.', $enabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute()); + } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + ['setIsActive', 'save'], + [], + '', + false + ); + $pageMock->expects($this->once())->method('setIsActive')->with(true)->willReturn(true); + $pageMock->expects($this->once())->method('save')->willReturn(true); + + return $pageMock; + } +} From 3931d6c02c733278d0dd2f9f93bad60479c160f0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Fri, 28 Aug 2015 16:58:20 +0300 Subject: [PATCH 07/21] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Code style updated; --- .../Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php | 3 ++- .../Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php index 1eddcf295be86..7bc2ee03ecf6e 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -89,7 +89,8 @@ public function testMassDisableAction() */ protected function getPageMock() { - $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + $pageMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', ['setIsActive', 'save'], [], '', diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php index d40a15e40691f..2fbef8db33457 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -89,7 +89,8 @@ public function testMassEnableAction() */ protected function getPageMock() { - $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + $pageMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', ['setIsActive', 'save'], [], '', From 8aac4c7ad5447197e9d2a0e13025bd4f1a9897ab Mon Sep 17 00:00:00 2001 From: Oleh Posyniak Date: Fri, 28 Aug 2015 18:34:28 +0300 Subject: [PATCH 08/21] MAGETWO-42092: CMS page preview not works when changing store view --- .../Magento/Backend/Block/Store/Switcher.php | 19 ++++++++++++++ .../adminhtml/templates/store/switcher.phtml | 25 ++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index a224e2a3b40d9..80617c52ac3eb 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -87,6 +87,11 @@ class Switcher extends \Magento\Backend\Block\Template */ protected $_storeFactory; + /** + * @var bool + */ + protected $isUsingIframe = false; + /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Store\Model\WebsiteFactory $websiteFactory @@ -558,4 +563,18 @@ public function getHintHtml() } return $html; } + + /** + * @param $state + */ + public function setUseIframe($state = false) { + $this->isUsingIframe = (bool) $state; + } + + /** + * @return bool + */ + public function isUsingIframe() { + return $this->isUsingIframe; + } } diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml index a2f94b3563cfc..f1e457f03673d 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml @@ -30,7 +30,8 @@ class="admin__action-dropdown" data-mage-init='{"dropdown":{}}' data-toggle="dropdown" - aria-haspopup="true"> + aria-haspopup="true" + id="store-change-button"> getCurrentSelectionName() ?>