/**
  * 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 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];
 }
 /**
  * Add created variable to page and assert that Custom Variable is displayed on frontend page and has
  * correct data according to dataset.
  *
  * @param SystemVariable $customVariable
  * @param CmsIndex $cmsIndex
  * @param SystemVariable $variable
  * @param FixtureFactory $fixtureFactory
  * @param BrowserInterface $browser
  * @param Store $storeOrigin
  * @param SystemVariable $customVariableOrigin
  * @return void
  */
 public function processAssert(SystemVariable $customVariable, CmsIndex $cmsIndex, SystemVariable $variable, FixtureFactory $fixtureFactory, BrowserInterface $browser, Store $storeOrigin = null, SystemVariable $customVariableOrigin = null)
 {
     $cmsPage = $fixtureFactory->createByCode('cmsPage', ['dataset' => 'default', 'data' => ['content' => ['content' => '{{customVar code=' . $customVariable->getCode() . '}}']]]);
     $cmsPage->persist();
     $browser->open($_ENV['app_frontend_url'] . $cmsPage->getIdentifier());
     $cmsIndex->getStoreSwitcherBlock()->selectStoreView('Default Store View');
     $htmlValue = $customVariableOrigin ? $this->getHtmlValue($customVariable, $customVariableOrigin) : strip_tags($customVariable->getHtmlValue());
     $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent();
     $this->checkVariable($htmlValue, $pageContent);
     if ($storeOrigin !== null) {
         $cmsIndex->getStoreSwitcherBlock()->selectStoreView($storeOrigin->getName());
         $htmlValue = strip_tags($customVariable->getHtmlValue());
         if ($htmlValue === '') {
             $htmlValue = strip_tags($variable->getHtmlValue());
         }
         $pageContent = $cmsIndex->getCmsPageBlock()->getPageContent();
         $this->checkVariable($htmlValue, $pageContent);
     }
 }
 /**
  * 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}();
 }
 /**
  * Assert Custom System Variable not available in System Variable grid
  *
  * @param SystemVariableIndex $systemVariableIndexNew
  * @param SystemVariable $systemVariable
  * @return void
  */
 public function processAssert(SystemVariableIndex $systemVariableIndexNew, SystemVariable $systemVariable)
 {
     $filter = ['code' => $systemVariable->getCode(), 'name' => $systemVariable->getName()];
     $systemVariableIndexNew->open();
     \PHPUnit_Framework_Assert::assertFalse($systemVariableIndexNew->getSystemVariableGrid()->isRowVisible($filter), 'Custom System Variable with code \'' . $filter['code'] . '\' is present in System Variable grid.');
 }