public function setUp() { $profilefile = __DIR__ . '/../../minisite.profile'; if (!file_exists($profilefile)) { $profilefile = __DIR__ . '/../../minisite.profile.dist'; } if (!file_exists($profilefile)) { // @codeCoverageIgnoreStart $this->fail('This test requires a connection to the minisite. Publish /tests/minisite/ somewhere, copy /tests/minisite.profile.dist to /tests/minisite.profile and adjust it.'); // @codeCoverageIgnoreEnd } $this->client = new Client(); $this->profile = new Profile($this->client); $this->profile->loadFile($profilefile); }
protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln('Patience...'); try { $starttime = time(); $client = new Client(); $violations = 0; $testedForms = new FormsCollection(); $profile = new Profile($client); $profile->loadFile($this->resolvePath($input->getArgument('profile'))); $profile->executePreScript(); $pages = $profile->spider(); foreach ($pages as $page) { $output->writeLn('<info>' . $page->getUri() . '</info>'); foreach ($page->getForms() as $form) { $output->writeln(self::INDENT . self::LEAF . $form->getHtml()); if ($testedForms->contains($form)) { $output->writeln(self::INDENT . self::INDENT . self::LEAF . 'Already tested'); continue; } foreach ($profile->getRules() as $rule) { if (!$rule->isValid($form)) { $output->writeln(self::INDENT . self::INDENT . self::LEAF . "<error>" . $rule->getMessage() . "</error>"); ++$violations; } } $testedForms->add($form); } $output->writeln(''); } $output->writeln(sprintf('Duration: %s seconds', time() - $starttime)); $output->writeln(sprintf('Found %s unique forms on %s pages', count($testedForms), count($pages))); if ($violations) { $output->writeln("<error>{$violations} violations found.</error>"); return self::EXIT_FAIL; } else { $output->writeln('<info>Done.</info>'); return self::EXIT_SUCCESS; } } catch (ConnectException $e) { $output->writeln(sprintf('<error>%s</error>', $e->getMessage())); } }