/**
  * @param FixtureFactory $fixtureFactory
  * @param AssertSuccessfulReadinessCheck $assertReadiness
  * @param AssertVersionAndEditionCheck $assertVersionAndEdition
  * @param AssertSuccessMessage $assertSuccessMessage
  * @param AssertApplicationVersion $assertApplicationVersion
  * @param array $upgrade
  * @return void
  */
 public function test(FixtureFactory $fixtureFactory, AssertSuccessfulReadinessCheck $assertReadiness, AssertVersionAndEditionCheck $assertVersionAndEdition, AssertSuccessMessage $assertSuccessMessage, AssertApplicationVersion $assertApplicationVersion, $upgrade = [])
 {
     // Create fixture
     $upgradeFixture = $fixtureFactory->create('Magento\\Upgrade\\Test\\Fixture\\Upgrade', ['data' => $upgrade]);
     $createBackupConfig = array_intersect_key($upgrade, ['optionsCode' => '', 'optionsMedia' => '', 'optionsDb' => '']);
     $createBackupFixture = $fixtureFactory->create('Magento\\Upgrade\\Test\\Fixture\\Upgrade', ['data' => $createBackupConfig]);
     $version = $upgrade['upgradeVersion'];
     $suffix = "( (CE|EE))\$";
     $normalVersion = '(0|[1-9]\\d*)';
     $preReleaseVersion = "((0(?!\\d+(\\.|\\+|{$suffix}))|[1-9A-Za-z])[0-9A-Za-z-]*)";
     $buildVersion = '([0-9A-Za-z][0-9A-Za-z-]*)';
     $versionPattern = "/^{$normalVersion}(\\.{$normalVersion}){2}" . "(-{$preReleaseVersion}(\\.{$preReleaseVersion})*)?" . "(\\+{$buildVersion}(\\.{$buildVersion})*)?{$suffix}/";
     if (preg_match($versionPattern, $version)) {
         preg_match("/(.*){$suffix}/", $version, $matches);
         $version = $matches[1];
     } else {
         $this->fail("Provided version format does not comply with semantic versioning specification. Got '{$version}'");
     }
     // Authenticate in admin area
     $this->adminDashboard->open();
     // Open Web Setup Wizard
     $this->setupWizard->open();
     // Authenticate on repo.magento.com
     if ($upgrade['needAuthentication'] === 'Yes') {
         $this->setupWizard->getSystemConfig()->clickSystemConfig();
         $this->setupWizard->getAuthentication()->fill($upgradeFixture);
         $this->setupWizard->getAuthentication()->clickSaveConfig();
         $this->setupWizard->open();
     }
     // Select upgrade to version
     $this->setupWizard->getSystemUpgradeHome()->clickSystemUpgrade();
     $this->setupWizard->getSelectVersion()->fill($upgradeFixture);
     if ($upgrade['otherComponents'] === 'Yes') {
         $this->setupWizard->getSelectVersion()->chooseUpgradeOtherComponents();
     }
     $this->setupWizard->getSelectVersion()->clickNext();
     // Readiness Check
     $this->setupWizard->getReadiness()->clickReadinessCheck();
     $assertReadiness->processAssert($this->setupWizard);
     $this->setupWizard->getReadiness()->clickNext();
     // Create Backup page
     $this->setupWizard->getCreateBackup()->fill($createBackupFixture);
     $this->setupWizard->getCreateBackup()->clickNext();
     // Check info and press 'Upgrade' button
     $assertVersionAndEdition->processAssert($this->setupWizard, $upgrade['package'], $version);
     $this->setupWizard->getSystemUpgrade()->clickSystemUpgrade();
     $assertSuccessMessage->processAssert($this->setupWizard, $upgrade['package']);
     // Check application version
     $this->adminDashboard->open();
     $assertApplicationVersion->processAssert($this->adminDashboard, $version);
 }
 /**
  * Assert that Secure Urls Enabled.
  *
  * @param BrowserInterface $browser
  * @param Dashboard $dashboard
  * @param CustomerAccountLogin $customerAccountLogin
  * @return void
  */
 public function processAssert(BrowserInterface $browser, Dashboard $dashboard, CustomerAccountLogin $customerAccountLogin)
 {
     $dashboard->open();
     \PHPUnit_Framework_Assert::assertTrue(strpos($browser->getUrl(), 'https://') !== false, 'Secure Url is not displayed on backend.');
     $customerAccountLogin->open();
     \PHPUnit_Framework_Assert::assertTrue(strpos($browser->getUrl(), 'https://') !== false, 'Secure Url is not displayed on frontend.');
 }
 /**
  * Assert that ordered products in bestsellers on Dashboard successfully refreshed.
  *
  * @param OrderInjectable $order
  * @param Dashboard $dashboard
  * @return void
  */
 public function processAssert(OrderInjectable $order, Dashboard $dashboard)
 {
     $dashboard->open();
     $dashboard->getStoreStatsBlock()->refreshData();
     /** @var \Magento\Backend\Test\Block\Dashboard\Tab\Products\Ordered $bestsellersGrid */
     $bestsellersGrid = $dashboard->getStoreStatsBlock()->getTabElement('bestsellers')->getBestsellersGrid();
     $products = $order->getEntityId()['products'];
     foreach ($products as $product) {
         \PHPUnit_Framework_Assert::assertTrue($bestsellersGrid->isProductVisible($product), 'Bestseller ' . $product->getName() . ' is not present in report grid after refresh data.');
     }
 }
Example #4
0
 /**
  * @param FixtureFactory $fixtureFactory
  * @param AssertSuccessfulReadinessCheck $assertReadiness
  * @param AssertVersionAndEditionCheck $assertVersionAndEdition
  * @param AssertSuccessMessage $assertSuccessMessage
  * @param AssertApplicationVersion $assertApplicationVersion
  * @param array $upgrade
  * @return void
  */
 public function test(FixtureFactory $fixtureFactory, AssertSuccessfulReadinessCheck $assertReadiness, AssertVersionAndEditionCheck $assertVersionAndEdition, AssertSuccessMessage $assertSuccessMessage, AssertApplicationVersion $assertApplicationVersion, $upgrade = [])
 {
     // Create fixture
     $upgradeFixture = $fixtureFactory->create('Magento\\Upgrade\\Test\\Fixture\\Upgrade', ['data' => $upgrade]);
     $createBackupConfig = array_intersect_key($upgrade, ['optionsCode' => '', 'optionsMedia' => '', 'optionsDb' => '']);
     $createBackupFixture = $fixtureFactory->create('Magento\\Upgrade\\Test\\Fixture\\Upgrade', ['data' => $createBackupConfig]);
     $version = $upgrade['upgradeVersion'];
     if (preg_match('/^[0-9].[0-9].[0-9]/', $version, $out)) {
         $version = array_shift($out);
     }
     // Authenticate in admin area
     $this->adminDashboard->open();
     // Open Web Setup Wizard
     $this->setupWizard->open();
     // Authenticate on repo.magento.com
     if ($upgrade['needAuthentication'] === 'Yes') {
         $this->setupWizard->getSystemConfig()->clickSystemConfig();
         $this->setupWizard->getAuthentication()->fill($upgradeFixture);
         $this->setupWizard->getAuthentication()->clickSaveConfig();
         $this->setupWizard->open();
     }
     // Select upgrade to version
     $this->setupWizard->getSystemUpgradeHome()->clickSystemUpgrade();
     $this->setupWizard->getSelectVersion()->fill($upgradeFixture);
     $this->setupWizard->getSelectVersion()->clickNext();
     // Readiness Check
     $this->setupWizard->getReadiness()->clickReadinessCheck();
     $assertReadiness->processAssert($this->setupWizard);
     $this->setupWizard->getReadiness()->clickNext();
     // Create Backup page
     $this->setupWizard->getCreateBackup()->fill($createBackupFixture);
     $this->setupWizard->getCreateBackup()->clickNext();
     // Check info and press 'Upgrade' button
     $assertVersionAndEdition->processAssert($this->setupWizard, $upgrade['package'], $version);
     $this->setupWizard->getSystemUpgrade()->clickSystemUpgrade();
     $assertSuccessMessage->processAssert($this->setupWizard, $upgrade['package']);
     // Check application version
     $this->adminDashboard->open();
     $assertApplicationVersion->processAssert($this->adminDashboard, $version);
 }
Example #5
0
 /**
  * Run menu navigation test.
  *
  * @param Dashboard $dashboard
  * @param string $menuItem
  * @return void
  */
 public function test(Dashboard $dashboard, $menuItem)
 {
     $dashboard->open();
     $dashboard->getMenuBlock()->navigate($menuItem);
 }
 /**
  * Run Global Search Entity Test.
  *
  * @param GlobalSearch $search
  * @return void
  */
 public function test(GlobalSearch $search)
 {
     // Steps:
     $this->dashboard->open();
     $this->dashboard->getAdminPanelHeader()->search($search->getQuery());
 }