9 use Magento\Mtf\ObjectManagerInterface;
11 use Magento\Mtf\Util\Protocol\CurlInterface;
13 use Symfony\Component\Console\Input\InputInterface;
14 use Symfony\Component\Console\Output\OutputInterface;
26 private $curlTransport;
33 private $objectManager;
48 ObjectManagerInterface $objectManager,
50 CurlTransport $curlTransport
52 parent::__construct();
54 $this->urlAnalyzer = $urlAnalyzer;
55 $this->curlTransport = $curlTransport;
66 $this->setName(
'troubleshooting:check-magento-storefront')
67 ->setDescription(
'Check that app_frontend_url config is correct and Magento installed.');
80 \PHPUnit\Util\Configuration::getInstance(MTF_PHPUNIT_FILE)->handlePHPConfiguration();
81 $output = $this->objectManager->create(
85 $output->writeln(
"Verifying Magento Storefront...");
86 $storefrontUrlAnalyzerMessages = $this->runStorefrontUrlAnalyzer();
87 if (isset($storefrontUrlAnalyzerMessages[
'error']) ===
false) {
88 $output->outputMessages($this->urlAnalyzer->fixLastSlash(
'app_frontend_url'));
89 $output->outputMessages($this->urlAnalyzer->checkDomain($_ENV[
'app_frontend_url']));
91 $output->outputMessages($storefrontUrlAnalyzerMessages);
93 $output->writeln(
"Storefront verification finished.");
101 private function runStorefrontUrlAnalyzer()
104 if (!isset($_ENV[
'app_frontend_url'])) {
105 $messages[
'error'][] =
'app_frontend_url parameter is absent in the phpunit.xml file. ' 106 .
'Please, copy file from phpunit.xml.dist.';
109 $url = $_ENV[
'app_frontend_url'];
111 $this->curlTransport->write(
$url, [], CurlInterface::GET);
112 $response = $this->curlTransport->read();
113 if (strpos(
$response,
'Home Page') ===
false) {
114 $messages[
'error'][] =
'Magento seems not installed. Check your Magento instance.';
116 }
catch (\Exception $e) {
117 $messages[
'error'][] = $e->getMessage();
119 $this->curlTransport->close();
execute(InputInterface $input, OutputInterface $output)
__construct(ObjectManagerInterface $objectManager, UrlAnalyzer $urlAnalyzer, CurlTransport $curlTransport)