public function finish() { $failures = 0; if ($this->retriever instanceof CrawlingRetriever) { $startPage = (string) $this->retriever->getStartPage(); } else { $startPage = ''; } $xUnitReport = new XUnitReport($startPage); foreach ($this->results as $result) { $testCase = new TestCase($result->getUrl(), $result->getUrl(), $result->getDuration()); if ($result->isFailure()) { ++$failures; foreach ($result->getMessages() as $ruleName => $message) { $testCase->addFailure(new Failure($ruleName, $message)); if ($this->retriever instanceof CrawlingRetriever) { $stackTrace = $result->getUrl() . ' coming from ' . (string) $this->retriever->getComingFrom($result->getUrl()) . PHP_EOL; $stackTrace .= ' - ' . $message . " [rule: {$ruleName}]"; $testCase->setSystemOut($stackTrace); } } } $xUnitReport->addTestCase($testCase); } file_put_contents($this->filename, $xUnitReport->toXml()); $this->output->writeln(' <info>Writing XUnit Output to file:</info> ' . $this->filename); }
protected function renderFailure(Result $result) { $this->output->writeln(' <error> ' . $result->getUrl() . ' </error> coming from ' . (string) $this->retriever->getComingFrom($result->getUrl())); foreach ($result->getMessages() as $ruleName => $message) { $this->output->writeln(' - ' . $message . " [rule: {$ruleName}]"); } $this->output->writeln(''); }
/** * @Event("Scanner.CheckResponse.isFiltered") */ public function isFiltered(Event $event, $ruleName, Response $response) { $uri = (string) $this->retriever->getOriginUri($response->getUri()); if ($this->currentModus === self::MODUS_FILTER) { $isFiltered = $this->isFilteredByFilter($ruleName, $uri); } else { $isFiltered = $this->isFilteredByExclusives($ruleName, $uri); } if ($isFiltered) { $event->setProcessed(); return true; } else { return false; } }