123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Store\Test\Unit\Url\Plugin;
- class RouteParamsResolverTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\App\Config\ScopeConfigInterface
- */
- protected $scopeConfigMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Store\Model\StoreManagerInterface
- */
- protected $storeManagerMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Url\QueryParamsResolverInterface
- */
- protected $queryParamsResolverMock;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Store\Model\Store
- */
- protected $storeMock;
- /**
- * @var \Magento\Store\Url\Plugin\RouteParamsResolver
- */
- protected $model;
- protected function setUp()
- {
- $this->scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
- $this->storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)
- ->setMethods(['getCode'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->storeMock->expects($this->any())->method('getCode')->willReturn('custom_store');
- $this->storeManagerMock = $this->createMock(\Magento\Store\Model\StoreManagerInterface::class);
- $this->storeManagerMock
- ->expects($this->once())
- ->method('getStore')
- ->willReturn($this->storeMock);
- $this->queryParamsResolverMock = $this->createMock(\Magento\Framework\Url\QueryParamsResolverInterface::class);
- $this->model = new \Magento\Store\Url\Plugin\RouteParamsResolver(
- $this->scopeConfigMock,
- $this->storeManagerMock,
- $this->queryParamsResolverMock
- );
- }
- public function testBeforeSetRouteParamsScopeInParams()
- {
- $storeCode = 'custom_store';
- $data = ['_scope' => $storeCode, '_scope_to_url' => true];
- $this->scopeConfigMock
- ->expects($this->once())
- ->method('getValue')
- ->with(
- \Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
- $storeCode
- )
- ->will($this->returnValue(false));
- $this->storeManagerMock->expects($this->any())->method('hasSingleStore')->willReturn(false);
- /** @var \PHPUnit_Framework_MockObject_MockObject $routeParamsResolverMock */
- $routeParamsResolverMock = $this->getMockBuilder(\Magento\Framework\Url\RouteParamsResolver::class)
- ->setMethods(['setScope', 'getScope'])
- ->disableOriginalConstructor()
- ->getMock();
- $routeParamsResolverMock->expects($this->once())->method('setScope')->with($storeCode);
- $routeParamsResolverMock->expects($this->once())->method('getScope')->willReturn($storeCode);
- $this->queryParamsResolverMock->expects($this->any())->method('setQueryParam');
- $this->model->beforeSetRouteParams(
- $routeParamsResolverMock,
- $data
- );
- }
- public function testBeforeSetRouteParamsScopeUseStoreInUrl()
- {
- $storeCode = 'custom_store';
- $data = ['_scope' => $storeCode, '_scope_to_url' => true];
- $this->scopeConfigMock
- ->expects($this->once())
- ->method('getValue')
- ->with(
- \Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
- $storeCode
- )
- ->will($this->returnValue(true));
- $this->storeManagerMock->expects($this->any())->method('hasSingleStore')->willReturn(false);
- /** @var \PHPUnit_Framework_MockObject_MockObject $routeParamsResolverMock */
- $routeParamsResolverMock = $this->getMockBuilder(\Magento\Framework\Url\RouteParamsResolver::class)
- ->setMethods(['setScope', 'getScope'])
- ->disableOriginalConstructor()
- ->getMock();
- $routeParamsResolverMock->expects($this->once())->method('setScope')->with($storeCode);
- $routeParamsResolverMock->expects($this->once())->method('getScope')->willReturn($storeCode);
- $this->queryParamsResolverMock->expects($this->never())->method('setQueryParam')->with('___store', $storeCode);
- $this->model->beforeSetRouteParams(
- $routeParamsResolverMock,
- $data
- );
- }
- public function testBeforeSetRouteParamsSingleStore()
- {
- $storeCode = 'custom_store';
- $data = ['_scope' => $storeCode, '_scope_to_url' => true];
- $this->scopeConfigMock
- ->expects($this->once())
- ->method('getValue')
- ->with(
- \Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
- $storeCode
- )
- ->will($this->returnValue(false));
- $this->storeManagerMock->expects($this->any())->method('hasSingleStore')->willReturn(true);
- /** @var \PHPUnit_Framework_MockObject_MockObject $routeParamsResolverMock */
- $routeParamsResolverMock = $this->getMockBuilder(\Magento\Framework\Url\RouteParamsResolver::class)
- ->setMethods(['setScope', 'getScope'])
- ->disableOriginalConstructor()
- ->getMock();
- $routeParamsResolverMock->expects($this->once())->method('setScope')->with($storeCode);
- $routeParamsResolverMock->expects($this->once())->method('getScope')->willReturn($storeCode);
- $this->queryParamsResolverMock->expects($this->never())->method('setQueryParam');
- $this->model->beforeSetRouteParams(
- $routeParamsResolverMock,
- $data
- );
- }
- public function testBeforeSetRouteParamsNoScopeInParams()
- {
- $storeCode = 'custom_store';
- $data = ['_scope_to_url' => true];
- $this->scopeConfigMock
- ->expects($this->once())
- ->method('getValue')
- ->with(
- \Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
- \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
- $storeCode
- )
- ->will($this->returnValue(true));
- $this->storeManagerMock->expects($this->any())->method('hasSingleStore')->willReturn(false);
- /** @var \PHPUnit_Framework_MockObject_MockObject $routeParamsResolverMock */
- $routeParamsResolverMock = $this->getMockBuilder(\Magento\Framework\Url\RouteParamsResolver::class)
- ->setMethods(['setScope', 'getScope'])
- ->disableOriginalConstructor()
- ->getMock();
- $routeParamsResolverMock->expects($this->never())->method('setScope');
- $routeParamsResolverMock->expects($this->once())->method('getScope')->willReturn(false);
- $this->queryParamsResolverMock->expects($this->never())->method('setQueryParam')->with('___store', $storeCode);
- $this->model->beforeSetRouteParams(
- $routeParamsResolverMock,
- $data
- );
- }
- }
|