/** * Assert that part of license agreement text is present on Terms & Agreement page. * * @param Install $installPage * @return void */ public function processAssert(Install $installPage) { try { \PHPUnit_Framework_Assert::assertContains(self::LICENSE_AGREEMENT_TEXT, $installPage->getLicenseBlock()->getLicense(), 'License agreement text is absent.'); } catch (\Exception $e) { \PHPUnit_Framework_Assert::assertContains(self::DEFAULT_LICENSE_AGREEMENT_TEXT, $installPage->getLicenseBlock()->getLicense(), 'License agreement text is absent.'); } }
/** * Assert that Magento successfully installed. * * @param InstallConfig $installConfig * @param User $user * @param Install $installPage * @return void */ public function processAssert(Install $installPage, InstallConfig $installConfig, User $user) { $adminData = $installPage->getInstallBlock()->getAdminInfo(); $dbData = $installPage->getInstallBlock()->getDbInfo(); $allData = array_merge($user->getData(), $installConfig->getData()); foreach ($installConfig->getData() as $key => $value) { $allData[$key] = isset($value['value']) ? $value['value'] : $value; } $allData['admin'] = $allData['web'] . $allData['admin'] . '/'; foreach ($this->adminFieldsList as $field) { \PHPUnit_Framework_Assert::assertEquals($allData[$field['fixture']], $adminData[$field['pageData']], 'Wrong admin information is displayed.'); } foreach ($this->dbFieldsList as $field) { \PHPUnit_Framework_Assert::assertEquals($allData[$field['fixture']], $dbData[$field['pageData']], 'Wrong database information is displayed.'); } }
/** * Assert that Magento successfully installed. * * @param InstallConfig $installConfig * @param User $user * @param Install $installPage * @return void */ public function processAssert(Install $installPage, InstallConfig $installConfig, User $user) { //TODO Nginx server does't make redirect after installation (random fail) sleep(5); if ($installPage->getInstallBlock()->isInstallationCompleted()) { return; } $adminData = $installPage->getInstallBlock()->getAdminInfo(); $dbData = $installPage->getInstallBlock()->getDbInfo(); $allData = array_merge($user->getData(), $installConfig->getData()); foreach ($installConfig->getData() as $key => $value) { $allData[$key] = isset($value['value']) ? $value['value'] : $value; } $allData['baseUrl'] = isset($allData['https']) ? $allData['https'] : $allData['baseUrl']; $allData['admin'] = $allData['baseUrl'] . $allData['admin'] . '/'; $this->checkInstallData($allData, $adminData, $dbData); }
/** * Install Magento via web interface. * * @param User $user * @param array $configData * @param FixtureFactory $fixtureFactory * @param AssertAgreementTextPresent $assertLicense * @param AssertSuccessfulReadinessCheck $assertReadiness * @param AssertAdminUriAutogenerated $assertAdminUri * @param array $install [optional] * @return array */ public function test(User $user, array $configData, FixtureFactory $fixtureFactory, AssertAgreementTextPresent $assertLicense, AssertSuccessfulReadinessCheck $assertReadiness, AssertAdminUriAutogenerated $assertAdminUri, array $install = []) { $dataConfig = array_merge($install, $configData); if (isset($dataConfig['httpsFront'])) { $dataConfig['https'] = str_replace('http', 'https', $dataConfig['baseUrl']); } /** @var InstallConfig $installConfig */ $installConfig = $fixtureFactory->create('Magento\\Install\\Test\\Fixture\\Install', ['data' => $dataConfig]); // Steps $this->installPage->open(); // Verify license agreement. $this->installPage->getLandingBlock()->clickTermsAndAgreement(); $assertLicense->processAssert($this->installPage); $this->installPage->getLicenseBlock()->clickBack(); $this->installPage->getLandingBlock()->clickAgreeAndSetup(); // Step 1: Readiness Check. $this->installPage->getReadinessBlock()->clickReadinessCheck(); $assertReadiness->processAssert($this->installPage); $this->installPage->getReadinessBlock()->clickNext(); // Step 2: Add a Database. $this->installPage->getDatabaseBlock()->fill($installConfig); $this->installPage->getDatabaseBlock()->clickNext(); // Step 3: Web Configuration. $assertAdminUri->processAssert($this->installPage); $this->installPage->getWebConfigBlock()->clickAdvancedOptions(); $this->installPage->getWebConfigBlock()->fill($installConfig); $this->installPage->getWebConfigBlock()->clickNext(); // Step 4: Customize Your Store $this->installPage->getCustomizeStoreBlock()->fill($installConfig); $this->installPage->getCustomizeStoreBlock()->clickNext(); // Step 5: Create Admin Account. $this->installPage->getCreateAdminBlock()->fill($user); $this->installPage->getCreateAdminBlock()->clickNext(); // Step 6: Install. $this->installPage->getInstallBlock()->clickInstallNow(); return ['installConfig' => $installConfig]; }
/** * Assert that selected encryption key displays on success full install page. * * @param Install $installPage * @param InstallConfig $installConfig * @return void */ public function processAssert(Install $installPage, InstallConfig $installConfig) { \PHPUnit_Framework_Assert::assertEquals($installConfig->getKeyValue(), $installPage->getInstallBlock()->getAdminInfo()['encryption_key'], 'Selected encryption key on install page not equals to data from fixture.'); }
/** * Assert that default Admin URI is generated according to the pattern. * * @param Install $installPage * @return void */ public function processAssert(Install $installPage) { \PHPUnit_Framework_Assert::assertRegExp(self::ADMIN_URI_PATTERN, $installPage->getWebConfigBlock()->getAdminUriCheck(), 'Unexpected Backend Frontname pattern.'); }
/** * Assert that PHP Version, PHP Extensions and File Permission are ok. * * @param Install $installPage * @return void */ public function processAssert(Install $installPage) { \PHPUnit_Framework_Assert::assertContains(self::PHP_VERSION_MESSAGE, $installPage->getReadinessBlock()->getPhpVersionCheck(), 'PHP version is incorrect.'); \PHPUnit_Framework_Assert::assertRegExp(self::PHP_EXTENSIONS_REGEXP, $installPage->getReadinessBlock()->getPhpExtensionsCheck(), 'PHP extensions missed.'); \PHPUnit_Framework_Assert::assertRegExp(self::FILE_PERMISSION_REGEXP, $installPage->getReadinessBlock()->getFilePermissionCheck(), 'File permissions does not meet requirements.'); }