/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
dev/tests/integration/testsuite/Magento/Cms/Model/Page/CustomLayoutManagerTest.php
105 строк
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 10:44
22 окт 2025, 10:44
264bea2
Код
Авторство
О чём код?
<?php /** * Copyright 2019 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Cms\Model\Page; use Magento\Cms\Model\Page; use Magento\Cms\Model\PageFactory; use Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelected; use Magento\TestFramework\Helper\Bootstrap; use PHPUnit\Framework\TestCase; use Magento\Framework\View\Result\PageFactory as PageResultFactory; use Magento\Framework\View\Model\Layout\MergeFactory; use Magento\Framework\View\Model\Layout\Merge; /** * Test the manager. */ class CustomLayoutManagerTest extends TestCase { /** * @var CustomLayoutRepositoryInterface */ private $repo; /** * @var CustomLayoutManagerInterface */ private $manager; /** * @var PageFactory */ private $pageFactory; /** * @var PageResultFactory */ private $resultFactory; /** * @var IdentityMap */ private $identityMap; /** * @inheritDoc */ protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->resultFactory = $objectManager->get(PageResultFactory::class); //Mocking available list of files for the page. $handles = [ 'cms_page_view_selectable_page100_select1', 'cms_page_view_selectable_page100_select2' ]; $processor = $this->getMockBuilder(Merge::class)->disableOriginalConstructor()->getMock(); $processor->method('getAvailableHandles')->willReturn($handles); $processorFactory = $this->getMockBuilder(MergeFactory::class)->disableOriginalConstructor()->getMock(); $processorFactory->method('create')->willReturn($processor); $this->manager = $objectManager->create( CustomLayoutManagerInterface::class, ['layoutProcessorFactory' => $processorFactory] ); $this->repo = $objectManager->create( CustomLayoutRepositoryInterface::class, ['manager' => $this->manager] ); $this->pageFactory = $objectManager->get(PageFactory::class); $this->identityMap = $objectManager->get(IdentityMap::class); } /** * Test updating a page's custom layout. * * @magentoDataFixture Magento/Cms/_files/pages.php * @throws \Throwable * @return void */ public function testCustomLayoutUpdate(): void { /** @var Page $page */ $page = $this->pageFactory->create(['customLayoutRepository' => $this->repo]); $page->load('page100', 'identifier'); $pageId = (int)$page->getId(); $this->identityMap->add($page); //Set file ID $this->repo->save(new CustomLayoutSelected($pageId, 'select2')); //Test handles $result = $this->resultFactory->create(); $this->manager->applyUpdate($result, $this->repo->getFor($pageId)); $this->identityMap->remove((int)$page->getId()); $this->assertContains( 'cms_page_view_selectable_page100_select2', $result->getLayout()->getUpdate()->getHandles() ); } }