![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-cms/Test/Unit/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Cms\Test\Unit\Model; use Magento\Cms\Model\Page; use Magento\Cms\Model\ResourceModel\Page as PageResource; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Event\ManagerInterface; use Magento\Framework\Model\Context; use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * @covers \Magento\Cms\Model\Page * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class PageTest extends TestCase { /** * @var \Magento\Cms\Model\Page */ protected $model; /** * @var \Magento\Backend\Block\Template\Context|MockObject */ protected $contextMock; /** * @var ManagerInterface|MockObject */ protected $eventManagerMock; /** * @var PageResource|MockObject */ protected $resourcePageMock; /** * @var AbstractResource|MockObject */ protected $resourcesMock; /** * @var ScopeConfigInterface|MockObject */ protected $scopeConfigMock; protected function setUp(): void { $this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->contextMock = $this->getMockBuilder(Context::class) ->disableOriginalConstructor() ->getMock(); $this->resourcePageMock = $this->getMockBuilder(PageResource::class) ->disableOriginalConstructor() ->setMethods(['getIdFieldName', 'checkIdentifier', 'getResources']) ->getMock(); $this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->resourcesMock = $this->getMockBuilder(AbstractResource::class) ->setMethods(['getIdFieldName', 'load', 'checkIdentifier']) ->getMockForAbstractClass(); $this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class) ->getMockForAbstractClass(); $this->contextMock->expects($this->any()) ->method('getEventDispatcher') ->willReturn($this->eventManagerMock); $this->resourcePageMock->expects($this->any()) ->method('getResources') ->willReturn($this->resourcesMock); $objectManager = new ObjectManager($this); $this->model = $objectManager->getObject( Page::class, [ 'context' => $this->contextMock, 'resource' => $this->resourcesMock, ] ); $objectManager->setBackwardCompatibleProperty( $this->model, 'scopeConfig', $this->scopeConfigMock ); } /** * @covers \Magento\Cms\Model\Page::noRoutePage */ public function testNoRoutePage() { $this->assertEquals($this->model, $this->model->noRoutePage()); } /** * @covers \Magento\Cms\Model\Page::checkIdentifier */ public function testCheckIdentifier() { $identifier = 1; $storeId = 2; $fetchOneResult = 'some result'; $this->resourcesMock->expects($this->atLeastOnce()) ->method('checkIdentifier') ->with($identifier, $storeId) ->willReturn($fetchOneResult); $this->assertIsString($this->model->checkIdentifier($identifier, $storeId)); // TODO: After migration to PHPUnit 8, replace deprecated method // $this->assertIsString($this->model->checkIdentifier($identifier, $storeId)); } public function testBeforeSave404Identifier() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('This identifier is reserved for "CMS No Route Page" in configuration.'); $this->model->setId(1); $this->model->setOrigData('identifier', 'no-route'); $this->model->setIdentifier('no-route2'); $this->scopeConfigMock->expects($this->once()) ->method('getValue') ->willReturnMap( [ [ \Magento\Cms\Helper\Page::XML_PATH_NO_ROUTE_PAGE, ScopeConfigInterface::SCOPE_TYPE_DEFAULT, null, 'no-route' ] ] ); $this->model->beforeSave(); } public function testBeforeSaveHomeIdentifier() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('This identifier is reserved for "CMS Home Page" in configuration.'); $this->model->setId(1); $this->model->setOrigData('identifier', 'home'); $this->model->setIdentifier('home2'); $this->scopeConfigMock->expects($this->atLeastOnce()) ->method('getValue') ->willReturnMap( [ [ \Magento\Cms\Helper\Page::XML_PATH_HOME_PAGE, ScopeConfigInterface::SCOPE_TYPE_DEFAULT, null, 'home' ] ] ); $this->model->beforeSave(); } public function testBeforeSaveNoCookiesIdentifier() { $this->expectException('Magento\Framework\Exception\LocalizedException'); $this->expectExceptionMessage('This identifier is reserved for "CMS No Cookies Page" in configuration.'); $this->model->setId(1); $this->model->setOrigData('identifier', 'no-cookies'); $this->model->setIdentifier('no-cookies2'); $this->scopeConfigMock->expects($this->atLeastOnce()) ->method('getValue') ->willReturnMap( [ [ \Magento\Cms\Helper\Page::XML_PATH_NO_COOKIES_PAGE, ScopeConfigInterface::SCOPE_TYPE_DEFAULT, null, 'no-cookies' ] ] ); $this->model->beforeSave(); } }