/**
  * Create currency rate test.
  *
  * @param CurrencyRate $currencyRate
  * @param CatalogProductSimple $product
  * @param $config
  * @return void
  */
 public function test(CurrencyRate $currencyRate, CatalogProductSimple $product, ConfigData $config)
 {
     // Preconditions:
     $product->persist();
     $config->persist();
     // Steps:
     $this->currencyIndexPage->open();
     $this->currencyIndexPage->getCurrencyRateForm()->fill($currencyRate);
     $this->currencyIndexPage->getFormPageActions()->save();
 }
 /**
  * Check that locked user can't log in to admin panel.
  *
  * @param ConfigData $config
  * @param User $customAdmin
  * @param string $incorrectPassword
  * @param int $attempts
  * @param AdminAuthLogin $adminAuth
  * @param FixtureFactory $fixtureFactory
  * @param AssertUserFailedLoginMessage $assertUserFailedLoginMessage
  * @return array
  */
 public function testUpdateAdminUser(ConfigData $config, User $customAdmin, $incorrectPassword, $attempts, AdminAuthLogin $adminAuth, FixtureFactory $fixtureFactory, AssertUserFailedLoginMessage $assertUserFailedLoginMessage)
 {
     // Preconditions
     $config->persist();
     $customAdmin->persist();
     /** @var User $incorrectUser */
     $incorrectUser = $fixtureFactory->createByCode('user', ['data' => ['username' => $customAdmin->getUsername(), 'password' => $incorrectPassword]]);
     // Steps and assertions
     for ($i = 0; $i < $attempts; $i++) {
         $assertUserFailedLoginMessage->processAssert($adminAuth, $incorrectUser);
     }
 }
 /**
  * Test creation for clear all compare products.
  *
  * @param string $products
  * @param ConfigData $config
  * @param CustomerAccountIndex $customerAccountIndex
  * @return void
  */
 public function test($products, ConfigData $config, CustomerAccountIndex $customerAccountIndex)
 {
     // Preconditions
     $config->persist();
     $products = $this->createProducts($products);
     //Steps
     $this->cmsIndex->open();
     $this->loginCustomer();
     $this->addProducts($products);
     $this->cmsIndex->getLinksBlock()->openLink("My Account");
     $customerAccountIndex->getCompareProductsBlock()->clickClearAll();
 }
 /**
  * Verify configurations.
  *
  * @param SystemConfigEdit $systemConfigEdit
  * @param ConfigData $config
  * @return void
  */
 private function verifyConfiguration(SystemConfigEdit $systemConfigEdit, ConfigData $config)
 {
     $section = $config->getSection();
     $keys = array_keys($section);
     foreach ($keys as $key) {
         $parts = explode('/', $key, 3);
         $tabName = $parts[0];
         $groupName = $parts[1];
         $fieldName = $parts[2];
         $isVisible = $systemConfigEdit->getForm()->getGroup($tabName, $groupName)->isFieldVisible($tabName, $groupName, $fieldName);
         \PHPUnit_Framework_Assert::assertTrue(!$isVisible, $fieldName . " configuration is not visible.");
     }
 }
 /**
  * Open backend system config and set configuration values.
  *
  * @param SystemConfigEdit $systemConfigEdit
  * @param ConfigData $httpsConfig
  * @return void
  */
 public function test(SystemConfigEdit $systemConfigEdit, ConfigData $httpsConfig)
 {
     $systemConfigEdit->open();
     $section = $httpsConfig->getSection();
     $keys = array_keys($section);
     foreach ($keys as $key) {
         $parts = explode('/', $key, 3);
         $tabName = $parts[0];
         $groupName = $parts[1];
         $fieldName = $parts[2];
         $systemConfigEdit->getForm()->getGroup($tabName, $groupName)->setValue($tabName, $groupName, $fieldName, $section[$key]['label']);
     }
 }
 /**
  * Verify configurations.
  *
  * @param SystemConfigEdit $systemConfigEdit
  * @param ConfigData $config
  * @return void
  */
 private function verifyConfiguration(SystemConfigEdit $systemConfigEdit, ConfigData $config)
 {
     $section = $config->getSection();
     $keys = array_keys($section);
     foreach ($keys as $key) {
         $parts = explode('/', $key, 3);
         $tabName = $parts[0];
         $groupName = $parts[1];
         $fieldName = $parts[2];
         try {
             $group = $systemConfigEdit->getForm()->getGroup($tabName, $groupName);
             $group->setValue($tabName, $groupName, $fieldName, 'Yes');
             $group->setValue($tabName, $groupName, $fieldName, 'No');
             \PHPUnit_Framework_Assert::assertTrue(true, $fieldName . " configuration is enabled with options Yes & No.");
         } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
             \PHPUnit_Framework_Assert::assertFalse(true, $fieldName . " configuration is not enabled with options Yes & No.");
         }
     }
 }
 /**
  * Open backend system config.
  * Save default configuration value.
  * Set new configuration value.
  * Reopen backend system config.
  *
  * @param SystemConfigEdit $systemConfigEdit
  * @param ConfigData $sessionLifetimeConfig
  * @return void
  */
 public function test(SystemConfigEdit $systemConfigEdit, ConfigData $sessionLifetimeConfig)
 {
     $this->systemConfigEdit = $systemConfigEdit;
     $this->sessionLifetimeConfig = $sessionLifetimeConfig;
     $this->systemConfigEdit->open();
     $section = $sessionLifetimeConfig->getSection();
     $keys = array_keys($section);
     $parts = explode('/', $keys[0], 3);
     $tabName = $parts[0];
     $groupName = $parts[1];
     $fieldName = $parts[2];
     $this->oldValue = $this->systemConfigEdit->getForm()->getGroup($tabName, $groupName)->getValue($tabName, $groupName, $fieldName);
     $this->systemConfigEdit->getForm()->getGroup($tabName, $groupName)->setValue($tabName, $groupName, $fieldName, $section[$keys[0]]['label']);
     $this->systemConfigEdit->getPageActions()->save();
     $this->systemConfigEdit->getMessagesBlock()->waitSuccessMessage();
     /**
      * Wait admin session to expire.
      */
     sleep($section[$keys[0]]['label']);
     $this->systemConfigEdit->open();
 }