kernel = $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface'); $this->banManager = $this->getMock('Drupal\ban\BanIpManagerInterface'); $this->banMiddleware = new BanMiddleware($this->kernel, $this->banManager); } /** * Tests a banned IP. */ public function testBannedIp() { $banned_ip = '17.0.0.2'; $this->banManager->expects($this->once()) ->method('isBanned') ->with($banned_ip) ->willReturn(TRUE); $this->kernel->expects($this->never()) ->method('handle'); $request = Request::create('/test-path'); $request->server->set('REMOTE_ADDR', $banned_ip); $response = $this->banMiddleware->handle($request); $this->assertEquals(403, $response->getStatusCode()); } /** * Tests an unbanned IP. */ public function testUnbannedIp() { $unbanned_ip = '18.0.0.2'; $this->banManager->expects($this->once()) ->method('isBanned') ->with($unbanned_ip) ->willReturn(FALSE); $request = Request::create('/test-path'); $request->server->set('REMOTE_ADDR', $unbanned_ip); $expected_response = new Response(200); $this->kernel->expects($this->once()) ->method('handle') ->with($request, HttpKernelInterface::MASTER_REQUEST, TRUE) ->willReturn($expected_response); $response = $this->banMiddleware->handle($request); $this->assertSame($expected_response, $response); } }