예제 #1
0
 public function testGetCacheKeyInfo()
 {
     $emptyMessagesCacheKey = ['storage_types' => 'a:0:{}'];
     $this->assertEquals($emptyMessagesCacheKey, $this->messages->getCacheKeyInfo());
     $messagesCacheKey = ['storage_types' => 'a:1:{i:0;s:7:"default";}'];
     $this->messages->addStorageType(ManagerInterface::DEFAULT_GROUP);
     $this->assertEquals($messagesCacheKey, $this->messages->getCacheKeyInfo());
 }
 /**
  * @return $this
  */
 protected function _prepareLayout()
 {
     if ($this->cartHelper->getItemsCount()) {
         $this->addQuoteMessages();
         $this->addMessages($this->messageManager->getMessages(true));
     }
     return parent::_prepareLayout();
 }
 /**
  * @return $this
  */
 protected function _prepareLayout()
 {
     if ($this->cartHelper->getItemsCount()) {
         $this->validateMinimunAmount();
         $this->addQuoteMessages();
         return parent::_prepareLayout();
     }
     return $this;
 }
예제 #4
0
 /**
  * Preparing global layout
  *
  * @return $this
  */
 protected function _prepareLayout()
 {
     /**
      * Check Item products existing
      */
     $productIds = [];
     foreach ($this->_getOrder()->getAllItems() as $item) {
         $productIds[] = $item->getProductId();
     }
     return parent::_prepareLayout();
 }
예제 #5
0
 public function testGetGroupedHtml()
 {
     $this->messages->setNameInLayout('nameInLayout');
     $resultHtml = '<div class="messages">';
     $resultHtml .= '<div class="message message-error error"><div data-ui-id="nameinlayout-message-error" >';
     $resultHtml .= 'Error message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
     $resultHtml .= 'Warning message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
     $resultHtml .= 'Warning message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '</div>';
     $errorMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $errorMock->expects($this->once())->method('getText')->willReturn('Error message without HTML!');
     $warningMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $warningMock->expects($this->exactly(2))->method('getText')->willReturn('Warning message with <strong>HTML</strong>!');
     $noticeMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $noticeMock->expects($this->exactly(3))->method('getText')->willReturn('Notice message without HTML!');
     $successMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $successMock->expects($this->exactly(4))->method('getText')->willReturn('Success message with <strong>HTML</strong>!');
     $collectionMock = $this->initMessageCollection();
     $collectionMock->expects($this->exactly(4))->method('getItemsByType')->willReturnMap([[MessageInterface::TYPE_ERROR, [$errorMock]], [MessageInterface::TYPE_WARNING, [$warningMock, $warningMock]], [MessageInterface::TYPE_NOTICE, [$noticeMock, $noticeMock, $noticeMock]], [MessageInterface::TYPE_SUCCESS, [$successMock, $successMock, $successMock, $successMock]]]);
     $this->assertEquals($resultHtml, $this->messages->getGroupedHtml());
 }
예제 #6
0
 /**
  * @covers \Magento\Cms\Helper\Page::prepareResultPage
  * @param integer|null $pageId
  * @param integer|null $internalPageId
  * @param integer $pageLoadResultIndex
  * @param string $customPageLayout
  * @param string $handle
  * @param string $customLayoutUpdateXml
  * @param string $layoutUpdate
  * @param boolean $expectedResult
  *
  * @dataProvider renderPageExtendedDataProvider
  *
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testPrepareResultPage($pageId, $internalPageId, $pageLoadResultIndex, $customPageLayout, $handle, $customLayoutUpdateXml, $layoutUpdate, $expectedResult)
 {
     $storeId = 321;
     $customThemeFrom = 'customThemeFrom';
     $customThemeTo = 'customThemeTo';
     $isScopeDateInInterval = true;
     $customTheme = 'customTheme';
     $pageLayout = 'pageLayout';
     $pageIdentifier = 111;
     $layoutUpdateXml = 'layoutUpdateXml';
     $contentHeading = 'contentHeading';
     $escapedContentHeading = 'escapedContentHeading';
     $defaultGroup = 'defaultGroup';
     $pageLoadResultCollection = [null, $this->pageMock];
     $this->pageMock->expects($this->any())->method('getId')->willReturn($internalPageId);
     $this->storeManagerMock->expects($this->any())->method('getStore')->willReturn($this->storeMock);
     $this->storeMock->expects($this->any())->method('getId')->willReturn($storeId);
     $this->pageMock->expects($this->any())->method('setStoreId')->with($storeId)->willReturnSelf();
     $this->pageMock->expects($this->any())->method('load')->with($pageId)->willReturn($pageLoadResultCollection[$pageLoadResultIndex]);
     $this->pageMock->expects($this->any())->method('getCustomThemeFrom')->willReturn($customThemeFrom);
     $this->pageMock->expects($this->any())->method('getCustomThemeTo')->willReturn($customThemeTo);
     $this->localeDateMock->expects($this->any())->method('isScopeDateInInterval')->with(null, $customThemeFrom, $customThemeTo)->willReturn($isScopeDateInInterval);
     $this->pageMock->expects($this->any())->method('getCustomTheme')->willReturn($customTheme);
     $this->designMock->expects($this->any())->method('setDesignTheme')->with($customTheme)->willReturnSelf();
     $this->pageMock->expects($this->any())->method('getPageLayout')->willReturn($pageLayout);
     $this->pageMock->expects($this->any())->method('getCustomPageLayout')->willReturn($customPageLayout);
     $this->resultPageFactory->expects($this->any())->method('create')->will($this->returnValue($this->resultPageMock));
     $this->resultPageMock->expects($this->any())->method('getConfig')->willReturn($this->pageConfigMock);
     $this->pageConfigMock->expects($this->any())->method('setPageLayout')->with($handle)->willReturnSelf();
     $this->resultPageMock->expects($this->any())->method('initLayout')->willReturnSelf();
     $this->resultPageMock->expects($this->any())->method('getLayout')->willReturn($this->layoutMock);
     $this->layoutMock->expects($this->any())->method('getUpdate')->willReturn($this->layoutProcessorMock);
     $this->layoutProcessorMock->expects($this->any())->method('addHandle')->with('cms_page_view')->willReturnSelf();
     $this->pageMock->expects($this->any())->method('getIdentifier')->willReturn($pageIdentifier);
     $this->eventManagerMock->expects($this->any())->method('dispatch')->with('cms_page_render', ['page' => $this->pageMock, 'controller_action' => $this->actionMock]);
     $this->pageMock->expects($this->any())->method('getCustomLayoutUpdateXml')->willReturn($customLayoutUpdateXml);
     $this->pageMock->expects($this->any())->method('getLayoutUpdateXml')->willReturn($layoutUpdateXml);
     $this->layoutProcessorMock->expects($this->any())->method('addUpdate')->with($layoutUpdate)->willReturnSelf();
     $this->layoutMock->expects($this->any())->method('getBlock')->with('page_content_heading')->willReturn($this->blockMock);
     $this->pageMock->expects($this->any())->method('getContentHeading')->willReturn($contentHeading);
     $this->escaperMock->expects($this->any())->method('escapeHtml')->with($contentHeading)->willReturn($escapedContentHeading);
     $this->blockMock->expects($this->any())->method('setContentHeading')->with($escapedContentHeading)->willReturnSelf();
     $this->layoutMock->expects($this->any())->method('getMessagesBlock')->willReturn($this->messagesBlockMock);
     $this->messageManagerMock->expects($this->any())->method('getDefaultGroup')->willReturn($defaultGroup);
     $this->messagesBlockMock->expects($this->any())->method('addStorageType')->with($defaultGroup);
     $this->messageManagerMock->expects($this->any())->method('getMessages')->with(true)->willReturn($this->messageCollectionMock);
     $this->messagesBlockMock->expects($this->any())->method('addMessages')->with($this->messageCollectionMock)->willReturnSelf();
     if ($expectedResult) {
         $expectedResult = $this->resultPageMock;
     }
     $this->assertSame($expectedResult, $this->object->prepareResultPage($this->actionMock, $pageId));
 }
예제 #7
0
 /**
  * Preparing global layout
  *
  * @return void
  */
 protected function _prepareLayout()
 {
     $this->addMessages($this->messageManager->getMessages(true));
     parent::_prepareLayout();
 }
예제 #8
0
 protected function _toHtml()
 {
     return '<div id="globalMessages">' . parent::_toHtml() . '</div>';
 }
예제 #9
0
 protected function _toHtml()
 {
     $this->setMessages($this->messageManager->getMessages(true));
     return parent::_toHtml();
 }