public function validate(Response $response) { $request = $response->getRequest(); if ('https' !== $request->getUri()->getScheme()) { return; } $htmlDocument = new Document($response->getBody()); $resources = $htmlDocument->getDependencies($response->getRequest()->getUri(), false); foreach ($resources as $resource) { if ($resource->getScheme() && 'https' !== $resource->getScheme()) { throw new ValidationFailedException('At least one dependency was found on a secure url, that was transfered insecure (' . (string) $resource . ')'); } } }
public function testResponse() { $testBody = 'TestBodyWith<strong>special</strong>Chäräctörs'; $testHeader = HeadersParser::parse(['Header1' => 'Test Header']); $testStatus = 200; $testUri = new Uri('http://smoke.phmlabs.com'); $testRequest = new Request($testUri); $stream = fopen('data://text/plain,' . $testBody, 'r'); $response = new Response($stream, $testStatus, array(), ['request' => $testRequest]); $this->assertEquals($testBody, $response->getBody()); $this->assertEquals([], $response->getHeader('Test Header')); $this->assertEquals($testStatus, $response->getStatus()); $this->assertEmpty($response->getContentType()); $this->assertEquals($testRequest, $response->getRequest()); }