policy = $this->getMock('Drupal\Core\PageCache\RequestPolicy\CommandLineOrUnsafeMethod', ['isCli']); } /** * Asserts that check() returns DENY for unsafe HTTP methods. * * @dataProvider providerTestHttpMethod * @covers ::check */ public function testHttpMethod($expected_result, $method) { $this->policy->expects($this->once()) ->method('isCli') ->will($this->returnValue(FALSE)); $request = Request::create('/', $method); $actual_result = $this->policy->check($request); $this->assertSame($expected_result, $actual_result); } /** * Provides test data and expected results for the HTTP method test. * * @return array * Test data and expected results. */ public function providerTestHttpMethod() { return [ [NULL, 'GET'], [NULL, 'HEAD'], [RequestPolicyInterface::DENY, 'POST'], [RequestPolicyInterface::DENY, 'PUT'], [RequestPolicyInterface::DENY, 'DELETE'], [RequestPolicyInterface::DENY, 'OPTIONS'], [RequestPolicyInterface::DENY, 'TRACE'], [RequestPolicyInterface::DENY, 'CONNECT'], ]; } /** * Asserts that check() returns DENY if running from the command line. * * @covers ::check */ public function testIsCli() { $this->policy->expects($this->once()) ->method('isCli') ->will($this->returnValue(TRUE)); $request = Request::create('/', 'GET'); $actual_result = $this->policy->check($request); $this->assertSame(RequestPolicyInterface::DENY, $actual_result); } }