@@ 294-324 (lines=31) @@ | ||
291 | ||
292 | } |
|
293 | ||
294 | public function testOnKernelRequestGeoBlocking_RouteBlocking_AllowWithBlackList() |
|
295 | { |
|
296 | $parameters = $this->getDefaultParams(); |
|
297 | $parameters["routeWhitelist"] = array(); |
|
298 | $parameters["routeBlacklist"] = array("notAllowedRoute"); |
|
299 | ||
300 | $eventBlockMock = $this->getMockBuilder("Symfony\Component\HttpKernel\Event\GetResponseEvent")->disableOriginalConstructor()->getMock(); |
|
301 | $requestMock = $this->getMockBuilder("Symfony\Component\HttpFoundation\Request")->disableOriginalConstructor()->getMock(); |
|
302 | ||
303 | $lookUpMock = $this->getMockBuilder("Azine\GeoBlockingBundle\Adapter\DefaultLookupAdapter")->getMock(); |
|
304 | $loggerMock = $this->getMockBuilder("Psr\Log\LoggerInterface")->disableOriginalConstructor()->getMock(); |
|
305 | ||
306 | $containerMock = $this->getMockBuilder("Symfony\Component\DependencyInjection\Container")->disableOriginalConstructor()->getMock(); |
|
307 | $securityContextMock = $this->getMockBuilder("Symfony\Component\Security\Core\SecurityContext")->disableOriginalConstructor()->getMock(); |
|
308 | $tokenMock = $this->getMockBuilder("Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken")->disableOriginalConstructor()->getMock(); |
|
309 | ||
310 | $tokenMock->expects($this->once())->method("getUser")->will($this->returnValue(null)); |
|
311 | $securityContextMock->expects($this->once())->method("getToken")->will($this->returnValue($tokenMock)); |
|
312 | $containerMock->expects($this->once())->method("get")->will($this->returnValue($securityContextMock)); |
|
313 | ||
314 | $eventBlockMock->expects($this->once())->method("getRequestType")->will($this->returnValue(HttpKernelInterface::MASTER_REQUEST)); |
|
315 | $eventBlockMock->expects($this->once())->method("getRequest")->will($this->returnValue($requestMock)); |
|
316 | $requestMock->expects($this->once())->method("getClientIp")->will($this->returnValue($this->chIP)); |
|
317 | $requestMock->expects($this->once())->method("get")->with("_route", null, false)->will($this->returnValue("someOtherRoute")); |
|
318 | $lookUpMock->expects($this->once())->method("getCountry")->with($this->chIP)->will($this->returnValue("CH")); |
|
319 | $eventBlockMock->expects($this->never())->method("setResponse"); |
|
320 | $eventBlockMock->expects($this->never())->method("stopPropagation"); |
|
321 | ||
322 | $geoBlockingListener = new GeoBlockingKernelRequestListener($this->getTemplatingMock(false), $lookUpMock, $loggerMock, $containerMock, $parameters); |
|
323 | $geoBlockingListener->onKernelRequest($eventBlockMock); |
|
324 | } |
|
325 | ||
326 | public function testOnKernelRequestGeoBlocking_CountryBlocking_AllowWithWhiteList() |
|
327 | { |
|
@@ 326-355 (lines=30) @@ | ||
323 | $geoBlockingListener->onKernelRequest($eventBlockMock); |
|
324 | } |
|
325 | ||
326 | public function testOnKernelRequestGeoBlocking_CountryBlocking_AllowWithWhiteList() |
|
327 | { |
|
328 | $parameters = $this->getDefaultParams(); |
|
329 | $parameters["routeWhitelist"] = array(); |
|
330 | ||
331 | $eventBlockMock = $this->getMockBuilder("Symfony\Component\HttpKernel\Event\GetResponseEvent")->disableOriginalConstructor()->getMock(); |
|
332 | $requestMock = $this->getMockBuilder("Symfony\Component\HttpFoundation\Request")->disableOriginalConstructor()->getMock(); |
|
333 | ||
334 | $lookUpMock = $this->getMockBuilder("Azine\GeoBlockingBundle\Adapter\DefaultLookupAdapter")->getMock(); |
|
335 | $loggerMock = $this->getMockBuilder("Psr\Log\LoggerInterface")->disableOriginalConstructor()->getMock(); |
|
336 | ||
337 | $containerMock = $this->getMockBuilder("Symfony\Component\DependencyInjection\Container")->disableOriginalConstructor()->getMock(); |
|
338 | $securityContextMock = $this->getMockBuilder("Symfony\Component\Security\Core\SecurityContext")->disableOriginalConstructor()->getMock(); |
|
339 | $tokenMock = $this->getMockBuilder("Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken")->disableOriginalConstructor()->getMock(); |
|
340 | ||
341 | $tokenMock->expects($this->once())->method("getUser")->will($this->returnValue(null)); |
|
342 | $securityContextMock->expects($this->once())->method("getToken")->will($this->returnValue($tokenMock)); |
|
343 | $containerMock->expects($this->once())->method("get")->will($this->returnValue($securityContextMock)); |
|
344 | ||
345 | $eventBlockMock->expects($this->once())->method("getRequestType")->will($this->returnValue(HttpKernelInterface::MASTER_REQUEST)); |
|
346 | $eventBlockMock->expects($this->once())->method("getRequest")->will($this->returnValue($requestMock)); |
|
347 | $requestMock->expects($this->once())->method("getClientIp")->will($this->returnValue($this->chIP)); |
|
348 | $requestMock->expects($this->once())->method("get")->with("_route", null, false)->will($this->returnValue("noWhiteListRoute")); |
|
349 | $lookUpMock->expects($this->once())->method("getCountry")->with($this->chIP)->will($this->returnValue("CH")); |
|
350 | $eventBlockMock->expects($this->never())->method("setResponse"); |
|
351 | $eventBlockMock->expects($this->never())->method("stopPropagation"); |
|
352 | ||
353 | $geoBlockingListener = new GeoBlockingKernelRequestListener($this->getTemplatingMock(false), $lookUpMock, $loggerMock, $containerMock, $parameters); |
|
354 | $geoBlockingListener->onKernelRequest($eventBlockMock); |
|
355 | } |
|
356 | ||
357 | public function testOnKernelRequestGeoBlocking_CountryBlocking_DenyWithWhiteList() |
|
358 | { |
|
@@ 455-484 (lines=30) @@ | ||
452 | $geoBlockingListener->onKernelRequest($eventBlockMock); |
|
453 | } |
|
454 | ||
455 | public function testOnKernelRequestGeoBlocking_IP_WhiteList_allow_regexp() |
|
456 | { |
|
457 | $parameters = $this->getDefaultParams(); |
|
458 | $parameters['ip_whitelist'] = array("/66\.249\.78\.\d{1,3}/"); |
|
459 | $eventBlockMock = $this->getMockBuilder("Symfony\Component\HttpKernel\Event\GetResponseEvent")->disableOriginalConstructor()->getMock(); |
|
460 | $requestMock = $this->getMockBuilder("Symfony\Component\HttpFoundation\Request")->disableOriginalConstructor()->getMock(); |
|
461 | ||
462 | $lookUpMock = $this->getMockBuilder("Azine\GeoBlockingBundle\Adapter\DefaultLookupAdapter")->getMock(); |
|
463 | $loggerMock = $this->getMockBuilder("Psr\Log\LoggerInterface")->disableOriginalConstructor()->getMock(); |
|
464 | ||
465 | $containerMock = $this->getMockBuilder("Symfony\Component\DependencyInjection\Container")->disableOriginalConstructor()->getMock(); |
|
466 | $securityContextMock = $this->getMockBuilder("Symfony\Component\Security\Core\SecurityContext")->disableOriginalConstructor()->getMock(); |
|
467 | $tokenMock = $this->getMockBuilder("Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken")->disableOriginalConstructor()->getMock(); |
|
468 | ||
469 | $tokenMock->expects($this->once())->method("getUser")->will($this->returnValue(null)); |
|
470 | $securityContextMock->expects($this->once())->method("getToken")->will($this->returnValue($tokenMock)); |
|
471 | $containerMock->expects($this->once())->method("get")->will($this->returnValue($securityContextMock)); |
|
472 | ||
473 | $eventBlockMock->expects($this->once())->method("getRequestType")->will($this->returnValue(HttpKernelInterface::MASTER_REQUEST)); |
|
474 | $eventBlockMock->expects($this->once())->method("getRequest")->will($this->returnValue($requestMock)); |
|
475 | $requestMock->expects($this->once())->method("getClientIp")->will($this->returnValue($this->googleBotIP)); |
|
476 | $requestMock->expects($this->once())->method("get")->with("_route", null, false)->will($this->returnValue("random_route")); |
|
477 | $lookUpMock->expects($this->once())->method("getCountry")->with($this->googleBotIP)->will($this->returnValue("US")); |
|
478 | $eventBlockMock->expects($this->never())->method("setResponse"); |
|
479 | $eventBlockMock->expects($this->never())->method("stopPropagation"); |
|
480 | ||
481 | $geoBlockingListener = new GeoBlockingKernelRequestListener($this->getTemplatingMock(false), $lookUpMock, $loggerMock, $containerMock, $parameters); |
|
482 | $geoBlockingListener->onKernelRequest($eventBlockMock); |
|
483 | ||
484 | } |
|
485 | ||
486 | public function testOnKernelRequestGeoBlocking_IP_WhiteList_allow_ip() |
|
487 | { |