37 $this->scopeConfigMock = $this->createMock(\
Magento\Framework\
App\Config\ScopeConfigInterface::class);
39 $this->storeMock = $this->getMockBuilder(\
Magento\Store\Model\Store::class)
40 ->setMethods([
'getCode'])
41 ->disableOriginalConstructor()
43 $this->storeMock->expects($this->any())->method(
'getCode')->willReturn(
'custom_store');
45 $this->storeManagerMock = $this->createMock(\
Magento\Store\Model\StoreManagerInterface::class);
46 $this->storeManagerMock
47 ->expects($this->once())
49 ->willReturn($this->storeMock);
51 $this->queryParamsResolverMock = $this->createMock(\
Magento\Framework\Url\QueryParamsResolverInterface::class);
52 $this->model = new \Magento\Store\Url\Plugin\RouteParamsResolver(
53 $this->scopeConfigMock,
54 $this->storeManagerMock,
55 $this->queryParamsResolverMock
59 public function testBeforeSetRouteParamsScopeInParams()
64 $this->scopeConfigMock
65 ->expects($this->once())
68 \
Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
69 \
Magento\Store\Model\ScopeInterface::SCOPE_STORE,
72 ->will($this->returnValue(
false));
73 $this->storeManagerMock->expects($this->any())->method(
'hasSingleStore')->willReturn(
false);
76 $routeParamsResolverMock = $this->getMockBuilder(\
Magento\Framework\Url\RouteParamsResolver::class)
77 ->setMethods([
'setScope',
'getScope'])
78 ->disableOriginalConstructor()
80 $routeParamsResolverMock->expects($this->once())->method(
'setScope')->with(
$storeCode);
81 $routeParamsResolverMock->expects($this->once())->method(
'getScope')->willReturn(
$storeCode);
83 $this->queryParamsResolverMock->expects($this->never())->method(
'setQueryParam');
85 $this->model->beforeSetRouteParams(
86 $routeParamsResolverMock,
91 public function testBeforeSetRouteParamsScopeUseStoreInUrl()
96 $this->scopeConfigMock
97 ->expects($this->once())
100 \
Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
101 \
Magento\Store\Model\ScopeInterface::SCOPE_STORE,
104 ->will($this->returnValue(
true));
106 $this->storeManagerMock->expects($this->any())->method(
'hasSingleStore')->willReturn(
false);
109 $routeParamsResolverMock = $this->getMockBuilder(\
Magento\Framework\Url\RouteParamsResolver::class)
110 ->setMethods([
'setScope',
'getScope'])
111 ->disableOriginalConstructor()
113 $routeParamsResolverMock->expects($this->once())->method(
'setScope')->with(
$storeCode);
114 $routeParamsResolverMock->expects($this->once())->method(
'getScope')->willReturn(
$storeCode);
116 $this->queryParamsResolverMock->expects($this->once())->method(
'setQueryParam')->with(
'___store',
$storeCode);
118 $this->model->beforeSetRouteParams(
119 $routeParamsResolverMock,
124 public function testBeforeSetRouteParamsSingleStore()
129 $this->scopeConfigMock
130 ->expects($this->once())
133 \
Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
134 \
Magento\Store\Model\ScopeInterface::SCOPE_STORE,
137 ->will($this->returnValue(
false));
138 $this->storeManagerMock->expects($this->any())->method(
'hasSingleStore')->willReturn(
true);
141 $routeParamsResolverMock = $this->getMockBuilder(\
Magento\Framework\Url\RouteParamsResolver::class)
142 ->setMethods([
'setScope',
'getScope'])
143 ->disableOriginalConstructor()
145 $routeParamsResolverMock->expects($this->once())->method(
'setScope')->with(
$storeCode);
146 $routeParamsResolverMock->expects($this->once())->method(
'getScope')->willReturn(
$storeCode);
148 $this->queryParamsResolverMock->expects($this->never())->method(
'setQueryParam');
150 $this->model->beforeSetRouteParams(
151 $routeParamsResolverMock,
156 public function testBeforeSetRouteParamsNoScopeInParams()
159 $data = [
'_scope_to_url' =>
true];
161 $this->scopeConfigMock
162 ->expects($this->once())
165 \
Magento\Store\Model\Store::XML_PATH_STORE_IN_URL,
166 \
Magento\Store\Model\ScopeInterface::SCOPE_STORE,
169 ->will($this->returnValue(
true));
171 $this->storeManagerMock->expects($this->any())->method(
'hasSingleStore')->willReturn(
false);
174 $routeParamsResolverMock = $this->getMockBuilder(\
Magento\Framework\Url\RouteParamsResolver::class)
175 ->setMethods([
'setScope',
'getScope'])
176 ->disableOriginalConstructor()
178 $routeParamsResolverMock->expects($this->never())->method(
'setScope');
179 $routeParamsResolverMock->expects($this->once())->method(
'getScope')->willReturn(
false);
181 $this->queryParamsResolverMock->expects($this->once())->method(
'setQueryParam')->with(
'___store',
$storeCode);
183 $this->model->beforeSetRouteParams(
184 $routeParamsResolverMock,