/**
  * Assert that order Id is present in search results
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @return void
  */
 public function processAssert(Dashboard $dashboard, GlobalSearch $search)
 {
     $order = $search->getDataFieldConfig('query')['source']->getEntity();
     $orderId = "Order #" . $order->getId();
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($orderId);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Order Id ' . $order->getId() . ' is absent in search results');
 }
 /**
  * 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 customer name is present in search results
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @return void
  */
 public function processAssert(Dashboard $dashboard, GlobalSearch $search)
 {
     $customer = $search->getDataFieldConfig('query')['source']->getEntity();
     $customerName = $customer->getFirstname() . " " . $customer->getLastname();
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($customerName);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Customer name ' . $customerName . ' is absent in search results');
 }
 /**
  * Run step flow.
  *
  * @return void
  */
 public function run()
 {
     $this->adminAuth->open();
     if ($this->dashboard->getAdminPanelHeader()->isVisible()) {
         $this->dashboard->getAdminPanelHeader()->logOut();
     }
 }
 /**
  * Assert that product name is present in search results
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @return void
  */
 public function processAssert(Dashboard $dashboard, GlobalSearch $search)
 {
     $entity = $search->getDataFieldConfig('query')['source']->getEntity();
     $product = $entity instanceof OrderInjectable ? $entity->getEntityId()['products'][0] : $entity;
     $productName = $product->getName();
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($productName);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Product name ' . $productName . ' is absent in search results');
 }
 /**
  * Asserts that user has only Sales-related permissions
  *
  * @param Dashboard $dashboard
  * @param UserIndex $userIndex
  * @return void
  */
 public function processAssert(Dashboard $dashboard, UserIndex $userIndex)
 {
     $menuItems = $dashboard->getMenuBlock()->getTopMenuItems();
     $userIndex->open();
     $deniedMessage = $userIndex->getAccessDeniedBlock()->getTextFromAccessDeniedBlock();
     $isMenuItemSingle = count($menuItems) == 1;
     $hasSales = in_array(self::ROLE_RESOURCE, $menuItems);
     \PHPUnit_Framework_Assert::assertTrue($hasSales && $isMenuItemSingle && self::DENIED_ACCESS == $deniedMessage, 'Sales item is absent in Menu block or possible access to another page, not related to Sales.');
 }
 /**
  * Asserts that user has only related permissions.
  *
  * @param BrowserInterface $browser
  * @param Dashboard $dashboard
  * @param User $user
  * @param array $restrictedAccess
  * @param string $denyUrl
  * @return void
  */
 public function processAssert(BrowserInterface $browser, Dashboard $dashboard, User $user, array $restrictedAccess, $denyUrl)
 {
     $this->objectManager->create('Magento\\User\\Test\\TestStep\\LoginUserOnBackendStep', ['user' => $user])->run();
     $menuItems = $dashboard->getMenuBlock()->getTopMenuItems();
     \PHPUnit_Framework_Assert::assertEquals($menuItems, $restrictedAccess, 'Wrong display menu.');
     $browser->open($_ENV['app_backend_url'] . $denyUrl);
     $deniedMessage = $dashboard->getAccessDeniedBlock()->getTextFromAccessDeniedBlock();
     \PHPUnit_Framework_Assert::assertEquals(self::DENIED_ACCESS, $deniedMessage, 'Possible access to denied page.');
 }
 /**
  * Verify whether customer has logged in to the Backend
  *
  * @param User $user
  * @param AdminAuthLogin $adminAuth
  * @param Dashboard $dashboard
  * @param User $customAdmin
  * @internal param null|string $userToLoginInAssert
  * @return void
  */
 public function processAssert(User $user, AdminAuthLogin $adminAuth, Dashboard $dashboard, User $customAdmin = null)
 {
     $adminUser = $customAdmin === null ? $user : $customAdmin;
     if ($dashboard->getAdminPanelHeader()->isVisible()) {
         $dashboard->getAdminPanelHeader()->logOut();
     }
     $adminAuth->getLoginBlock()->fill($adminUser);
     $adminAuth->getLoginBlock()->submit();
     \PHPUnit_Framework_Assert::assertTrue($dashboard->getAdminPanelHeader()->isLoggedIn(), 'Admin user was not logged in.');
 }
 /**
  * Assert that order Id is present in search results
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @param OrderIndex $orderIndex
  * @return void
  */
 public function processAssert(Dashboard $dashboard, GlobalSearch $search, OrderIndex $orderIndex)
 {
     $order = $search->getDataFieldConfig('query')['source']->getEntity();
     $orderId = "Order #" . $order->getId();
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($orderId);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Order Id ' . $order->getId() . ' is absent in search results');
     $dashboard->getAdminPanelHeader()->navigateToGrid("Orders");
     $isOrderGridVisible = $orderIndex->getSalesOrderGrid()->isVisible();
     \PHPUnit_Framework_Assert::assertTrue($isOrderGridVisible, 'Order grid is not visible');
     \PHPUnit_Framework_Assert::assertContains((string) $order->getId(), $orderIndex->getSalesOrderGrid()->getAllIds(), 'Order grid does not have ' . $order->getId() . ' in search results');
 }
 /**
  * Run step flow.
  *
  * @return void
  */
 public function run()
 {
     $this->adminAuth->open();
     if (!$this->adminAuth->getLoginBlock()->isVisible()) {
         $this->logoutUserOnBackendStep->run();
     }
     $this->adminAuth->getLoginBlock()->fill($this->user);
     $this->adminAuth->getLoginBlock()->submit();
     $this->adminAuth->getLoginBlock()->waitFormNotVisible();
     $this->dashboard->getSystemMessageDialog()->closePopup();
 }
 /**
  * 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.');
     }
 }
 /**
  * Assert that customer name is present in search results
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @param CustomerIndex $customerIndex
  * @return void
  */
 public function processAssert(Dashboard $dashboard, GlobalSearch $search, CustomerIndex $customerIndex)
 {
     $customer = $search->getDataFieldConfig('query')['source']->getEntity();
     $customerName = $customer->getFirstname() . " " . $customer->getLastname();
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible($customerName);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Customer name ' . $customerName . ' is absent in search results');
     $dashboard->getAdminPanelHeader()->navigateToGrid("Customers");
     $isCustomerGridVisible = $customerIndex->getCustomerGridBlock()->isVisible();
     \PHPUnit_Framework_Assert::assertTrue($isCustomerGridVisible, 'Customer grid is not visible');
     \PHPUnit_Framework_Assert::assertContains((string) $customer->getId(), $customerIndex->getCustomerGridBlock()->getAllIds(), 'Customer grid does not have ' . $customerName . ' in search results');
 }
 /**
  * @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);
 }
Example #14
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);
 }
 /**
  * @param Role $role
  * @param Role $updatedRole
  * @param User $user
  * @return void
  */
 public function testLoginAfterChangingPermissions(Role $role, Role $updatedRole, User $user)
 {
     /** Create role and a new user with this role */
     $role->persist();
     /** @var User $user */
     $user = $this->fixtureFactory->create('Magento\\User\\Test\\Fixture\\User', ['data' => array_merge($user->getData(), ['role_id' => ['role' => $role]])]);
     $user->persist();
     /** Change the scope of resources available for the role created earlier */
     $filter = ['rolename' => $role->getRoleName()];
     $this->userRoleIndex->open();
     $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter);
     $this->userRoleEditRole->getRoleFormTabs()->fill($updatedRole);
     $this->userRoleEditRole->getPageActions()->save();
     $this->dashboard->getAdminPanelHeader()->logOut();
 }
 /**
  * Logout Admin User from account
  *
  * @return void
  */
 public function tearDown()
 {
     $this->dashboard->getAdminPanelHeader()->logOut();
 }
Example #17
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);
 }
 /**
  * Verify whether customer has logged in to the Backend.
  *
  * @param User $user
  * @param Dashboard $dashboard
  * @return void
  */
 public function processAssert(User $user, Dashboard $dashboard)
 {
     $this->objectManager->create('Magento\\User\\Test\\TestStep\\LoginUserOnBackendStep', ['user' => $user])->run();
     \PHPUnit_Framework_Assert::assertTrue($dashboard->getAdminPanelHeader()->isLoggedIn(), 'Admin user was not logged in.');
 }
 /**
  * Assert upgrade is successfully
  *
  * @param Dashboard $dashboard
  * @param string $version
  * @return void
  */
 public function processAssert(Dashboard $dashboard, $version)
 {
     \PHPUnit_Framework_Assert::assertContains($version, $dashboard->getApplicationVersion()->getVersion(), 'Application version is incorrect.');
 }
 /**
  * Logout Admin User from account.
  *
  * @return void
  */
 public function tearDown()
 {
     if ($this->dashboard->getAdminPanelHeader()->isVisible()) {
         $this->dashboard->getAdminPanelHeader()->logOut();
     }
 }
 /**
  * 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());
 }
 /**
  * Run step flow.
  *
  * @return void
  */
 public function run()
 {
     $this->adminAuth->open();
     $this->dashboard->getSystemMessageDialog()->closePopup();
     $this->dashboard->getAdminPanelHeader()->logOut();
 }
 /**
  * Assert that search result contains expected text
  *
  * @param Dashboard $dashboard
  * @return void
  */
 public function processAssert(Dashboard $dashboard)
 {
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isSearchResultVisible(self::EXPECTED_RESULT);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Expected text ' . self::EXPECTED_RESULT . ' is absent in search results');
 }
 /**
  * Asserts that 'You have logged out.' message is present on page
  *
  * @param AdminAuthLogin $adminAuth
  * @param Dashboard $dashboard
  * @return void
  */
 public function processAssert(AdminAuthLogin $adminAuth, Dashboard $dashboard)
 {
     $dashboard->getAdminPanelHeader()->logOut();
     $isLoginBlockVisible = $adminAuth->getLoginBlock()->isVisible();
     \PHPUnit_Framework_Assert::assertTrue($isLoginBlockVisible, 'Admin user was not logged out.');
 }
 /**
  * Assert value of item in admin search preview
  *
  * @param Dashboard $dashboard
  * @param GlobalSearch $search
  * @param string $type
  */
 private function adminSearchAssert($dashboard, $search, $type)
 {
     $adminSearchPreview = '"' . $search->getQuery() . '" in ' . $type;
     $isVisibleInResult = $dashboard->getAdminPanelHeader()->isAdminSearchPreviewVisible($adminSearchPreview, $type);
     \PHPUnit_Framework_Assert::assertTrue($isVisibleInResult, 'Search Preview for ' . $type . ' is not in search results');
 }
 /**
  * Assert that selected currency symbol displays on dashboard.
  *
  * @param string $currencySymbol
  * @param Dashboard $dashboardPage
  * @return void
  */
 public function processAssert($currencySymbol, Dashboard $dashboardPage)
 {
     \PHPUnit_Framework_Assert::assertTrue(strpos($dashboardPage->getMainBlock()->getRevenuePrice(), $currencySymbol) !== false, 'Selected currency symbol not displays on dashboard.');
 }
 /**
  * Assert that backend page has correct title and 404 Error is absent on the page.
  *
  * @param Dashboard $dashboard
  * @param string $pageTitle
  * @return void
  */
 public function processAssert(Dashboard $dashboard, $pageTitle)
 {
     \PHPUnit_Framework_Assert::assertEquals($pageTitle, $dashboard->getTitleBlock()->getTitle(), 'Invalid page title is displayed.');
     \PHPUnit_Framework_Assert::assertNotContains(self::ERROR_TEXT, $dashboard->getErrorBlock()->getContent(), "404 Error is displayed on '{$pageTitle}' page.");
 }