Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 protected function doValidation(Response $response)
 {
     $document = new Document($response->getBody(), false);
     $urls = $document->getDependencies($response->getUri());
     $invalidUrls = array();
     foreach ($urls as $url) {
         if (!filter_var(trim((string) $url), FILTER_VALIDATE_URL)) {
             $invalidUrls[] = (string) $url;
         }
     }
     $this->assert(count($invalidUrls) === 0, 'Invalid urls found (' . implode(', ', $invalidUrls) . ').');
 }
Esempio n. 2
0
 public function testGetDependencies()
 {
     $document = new Document(file_get_contents(__DIR__ . '/fixtures/referencedUrls.html'));
     $urls = $document->getDependencies(new Uri('http://www.example.com/test/'));
     foreach ($urls as $url) {
         $currentUrls[] = (string) $url;
     }
     $expectedUrls = array('http://foreign-domain-schema-relative.com', 'http://www.example.com/test/images/relative_path.html?withQuery', 'http://www.example.com/test/images/relative_path.html', 'http://foreign-domain-schema-relative.com/file.js', 'http://www.example.com/', 'http://fonts.googleapis.com/css?family=Dancing+Script', 'http://www.example.com/absolute_path.php', 'http://www.notexample.com/foreign_domain.html');
     sort($expectedUrls);
     sort($currentUrls);
     $this->assertEquals($currentUrls, $expectedUrls);
 }
Esempio n. 3
0
 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 . ')');
         }
     }
 }
Esempio n. 4
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $client = new Client();
     $url = $input->getArgument("url");
     $startResult = $client->get($url);
     $results[$url] = $startResult;
     if ($input->getOption('children')) {
         $document = new Document((string) $startResult->getBody());
         $dependendUrls = $document->getDependencies(new Uri($url), false);
         foreach ($dependendUrls as $dependendUrl) {
             $results[(string) $dependendUrl] = $client->get($dependendUrl);
         }
     }
     foreach ($results as $url => $result) {
         $this->printHeaders($result, $url, $output);
     }
 }