/**
  * Assert that data at the form corresponds to the fixture data.
  *
  * @param SystemVariable $customVariable
  * @param SystemVariableIndex $systemVariableIndex
  * @param SystemVariableNew $systemVariableNew
  * @param Store $storeOrigin
  * @param SystemVariable $customVariableOrigin
  * @return void
  *
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 public function processAssert(SystemVariable $customVariable, SystemVariableIndex $systemVariableIndex, SystemVariableNew $systemVariableNew, Store $storeOrigin = null, SystemVariable $customVariableOrigin = null)
 {
     // Prepare data
     $data = $customVariableOrigin === null ? $customVariable->getData() : array_merge($customVariableOrigin->getData(), $customVariable->getData());
     if ($customVariableOrigin !== null) {
         $dataOrigin = $this->arrayCopy($data);
         $dataOrigin['html_value'] = $customVariableOrigin->getHtmlValue();
         $dataOrigin['plain_value'] = $customVariableOrigin->getPlainValue();
     } else {
         $dataOrigin = $this->arrayCopy($data);
     }
     if ($data['html_value'] == '') {
         $data['html_value'] = $customVariableOrigin->getHtmlValue();
         $data['use_default_value'] = 'Yes';
     }
     $data['plain_value'] = $data['plain_value'] == '' ? $customVariableOrigin->getPlainValue() : $data['plain_value'];
     // Perform assert
     $systemVariableIndex->open();
     $systemVariableIndex->getSystemVariableGrid()->searchAndOpen(['code' => $data['code']]);
     $formData = $systemVariableNew->getSystemVariableForm()->getData();
     $errors = $this->verifyData($dataOrigin, $formData);
     \PHPUnit_Framework_Assert::assertEmpty($errors, $errors);
     if ($storeOrigin !== null) {
         $systemVariableNew->getFormPageActions()->selectStoreView($storeOrigin->getName());
         $formData = $systemVariableNew->getSystemVariableForm()->getData();
         $errors = $this->verifyData($data, $formData);
         \PHPUnit_Framework_Assert::assertEmpty($errors, $errors);
     }
 }
 /**
  * Delete Custom System Variable Entity test.
  *
  * @param SystemVariable $customVariable
  * @return void
  */
 public function test(SystemVariable $customVariable)
 {
     // Steps
     $this->systemVariableIndexPage->open();
     $this->systemVariableIndexPage->getGridPageActions()->addNew();
     $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable);
     $this->systemVariableNewPage->getFormPageActions()->save();
 }
 /**
  * Assert that created CMS Page URL Rewrite lead to appropriate page in frontend.
  *
  * @param UrlRewrite $urlRewrite
  * @param CmsPage $cmsPage
  * @param SystemVariableNew $systemVariableNew
  * @param BrowserInterface $browser
  * @return void
  */
 public function processAssert(UrlRewrite $urlRewrite, CmsPage $cmsPage, SystemVariableNew $systemVariableNew, BrowserInterface $browser)
 {
     $browser->open($_ENV['app_frontend_url'] . $urlRewrite->getRequestPath());
     if ($urlRewrite->hasData('store_id')) {
         $store = explode('/', $urlRewrite->getStoreId());
         $systemVariableNew->getFormPageActions()->selectStoreView($store[2]);
     }
     $url = $urlRewrite->getRedirectType() == 'No' ? $urlRewrite->getRequestPath() : $cmsPage->getTitle();
     \PHPUnit_Framework_Assert::assertEquals($_ENV['app_frontend_url'] . $url, $browser->getUrl(), 'URL rewrite CMS Page redirect false.');
 }
 /**
  * Delete Custom System Variable Entity test.
  *
  * @param SystemVariable $systemVariable
  * @return void
  */
 public function test(SystemVariable $systemVariable)
 {
     // Precondition
     $systemVariable->persist();
     // Steps
     $filter = ['code' => $systemVariable->getCode(), 'name' => $systemVariable->getName()];
     $this->systemVariableIndexPage->open();
     $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter);
     $this->systemVariableNewPage->getFormPageActions()->delete();
 }
 /**
  * Update Custom System Variable Entity test.
  *
  * @param SystemVariable $customVariable
  * @param SystemVariable $customVariableOrigin
  * @param Store $storeOrigin
  * @param string $saveAction
  * @return void
  */
 public function test(SystemVariable $customVariable, SystemVariable $customVariableOrigin, Store $storeOrigin, $saveAction)
 {
     $filter = ['code' => $customVariableOrigin->getCode()];
     // Steps
     $this->systemVariableIndexPage->open();
     $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter);
     $this->systemVariableNewPage->getFormPageActions()->selectStoreView($storeOrigin->getData('name'));
     $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable);
     $this->systemVariableNewPage->getFormPageActions()->{$saveAction}();
 }
 /**
  * Update Custom System Variable Entity test.
  *
  * @param FixtureFactory $fixtureFactory
  * @param SystemVariable $customVariable
  * @param SystemVariable $customVariableOrigin
  * @param string $saveAction
  * @return array
  */
 public function test(FixtureFactory $fixtureFactory, SystemVariable $customVariable, SystemVariable $customVariableOrigin, $saveAction)
 {
     $this->store = $fixtureFactory->createByCode('store', ['dataset' => 'custom']);
     $this->store->persist();
     $customVariableOrigin->persist();
     $filter = ['code' => $customVariableOrigin->getCode()];
     // Steps
     $this->systemVariableIndexPage->open();
     $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter);
     $this->systemVariableNewPage->getFormPageActions()->selectStoreView($this->store->getData('name'));
     $this->systemVariableNewPage->getSystemVariableForm()->fill($customVariable);
     $this->systemVariableNewPage->getFormPageActions()->{$saveAction}();
     return ['storeOrigin' => $this->store, 'customVariableOrigin' => $customVariableOrigin];
 }