示例#1
0
 /**
  * Prepare data
  *
  * @param array $customersReport
  * @return array
  */
 protected function prepareData(array $customersReport)
 {
     foreach ($customersReport as $name => $reportFilter) {
         if ($name === 'report_period') {
             continue;
         }
         $date = ObjectManager::getInstance()->create('\\Magento\\Backend\\Test\\Fixture\\Date', ['params' => [], 'data' => ['pattern' => $reportFilter]]);
         $customersReport[$name] = $date->getData();
     }
     return $customersReport;
 }
示例#2
0
 /**
  * Prepare data
  *
  * @param array $viewsReport
  * @return array
  */
 protected function prepareData(array $viewsReport)
 {
     foreach ($viewsReport as $name => $reportFilter) {
         if ($name === 'period_type' || $name === 'show_empty_rows') {
             continue;
         }
         $date = ObjectManager::getInstance()->create('\\Magento\\Backend\\Test\\Fixture\\Date', ['params' => [], 'data' => ['pattern' => $reportFilter]]);
         $viewsReport[$name] = $date->getData();
     }
     return $viewsReport;
 }
示例#3
0
 /**
  * Prepare data
  *
  * @param array $viewsReport
  * @return array
  */
 protected function prepareData(array $viewsReport)
 {
     foreach ($viewsReport as $name => $reportFilter) {
         if ($reportFilter == '-') {
             unset($viewsReport[$name]);
         }
         if ($name === 'from' || $name === 'to') {
             $date = ObjectManager::getInstance()->create('\\Magento\\Backend\\Test\\Fixture\\Date', ['params' => [], 'data' => ['pattern' => $reportFilter]]);
             $viewsReport[$name] = $date->getData();
         }
     }
     return $viewsReport;
 }
示例#4
0
 /**
  * Return Wrapped Elements.
  * If element was not created before:
  * 1. Context is defined. If context was not passed to constructor - test case (all page) is taken as context
  * 2. Attempt to get selenium elements is performed in loop
  * that is terminated if elements is found or after timeout set in configuration
  *
  * @param bool $waitForElementPresent
  * @throws \PHPUnit_Extensions_Selenium2TestCase_Exception|\PHPUnit_Extensions_Selenium2TestCase_WebDriverException
  * @return \PHPUnit_Extensions_Selenium2TestCase_Element[]
  */
 protected function _getWrappedElements($waitForElementPresent = true)
 {
     if (!$this->_wrappedElements) {
         $context = $this->getContext($waitForElementPresent);
         $criteria = new \PHPUnit_Extensions_Selenium2TestCase_ElementCriteria($this->_locator['using']);
         $criteria->value($this->_locator['value']);
         if ($waitForElementPresent) {
             $wrappedElements = $this->_driver->waitUntil(function () use($context, $criteria) {
                 return $context->elements($criteria);
             });
         } else {
             $this->waitPageToLoad();
             $wrappedElements = $context->elements($criteria);
         }
         foreach ($wrappedElements as $wrappedElement) {
             $element = \Mtf\ObjectManager::getInstance()->create(get_class($this), ['locator' => $this->_locator, 'driver' => $this->_driver, 'context' => $this->_context]);
             $element->_wrappedElement = $wrappedElement;
             $this->_wrappedElements[] = $element;
         }
     }
     return $this->_wrappedElements;
 }
示例#5
0
 /**
  * Get MTF Object Manager instance
  *
  * @return ObjectManager
  */
 public static function getObjectManager()
 {
     if (!($objectManager = ObjectManager::getInstance())) {
         $objectManagerFactory = new self();
         $objectManager = $objectManagerFactory->create();
     }
     return $objectManager;
 }
示例#6
0
 /**
  * Init Object Manager
  *
  * @return void
  */
 public static function initObjectManager()
 {
     self::$_objectManager = \Mtf\ObjectManager::getInstance();
 }
示例#7
0
 /**
  * Initialize ObjectManager
  * @return void
  */
 protected function initObjectManager()
 {
     $this->objectManager = \Mtf\ObjectManager::getInstance();
 }
示例#8
0
 /**
  * Fill single condition
  *
  * @param array $rules
  * @param Element $element
  * @return void
  * @throws \Exception
  */
 protected function fillCondition(array $rules, Element $element)
 {
     $this->resetKeyParam();
     foreach ($rules as $rule) {
         $param = $this->findNextParam($element);
         $param->find('a')->click();
         if (preg_match('`%(.*?)%`', $rule, $chooserGrid)) {
             $chooserConfig = explode('#', $chooserGrid[1]);
             $param->find($this->chooserLocator)->click();
             $rule = preg_replace('`%(.*?)%`', '', $rule);
             $grid = ObjectManager::getInstance()->create(str_replace('/', '\\', $chooserConfig[0]), ['element' => $this->find($this->chooserGridLocator)]);
             $grid->searchAndSelect([$chooserConfig[1] => $rule]);
             continue;
         }
         $value = $param->find('select', Locator::SELECTOR_CSS, 'select');
         if ($value->isVisible()) {
             $value->setValue($rule);
             continue;
         }
         $value = $param->find('input');
         if ($value->isVisible()) {
             $value->setValue($rule);
             $apply = $param->find('.//*[@class="rule-param-apply"]', Locator::SELECTOR_XPATH);
             if ($apply->isVisible()) {
                 $apply->click();
             }
             continue;
         }
         throw new \Exception('Undefined type of value ');
     }
 }
 /**
  * Delete Store after test
  *
  * @return void
  */
 public static function tearDownAfterClass()
 {
     $filter['store_title'] = self::$storeName;
     $storeIndex = ObjectManager::getInstance()->create('Magento\\Backend\\Test\\Page\\Adminhtml\\StoreIndex');
     $storeIndex->open();
     $storeIndex->getStoreGrid()->searchAndOpen($filter);
     $storeNew = ObjectManager::getInstance()->create('Magento\\Backend\\Test\\Page\\Adminhtml\\StoreNew');
     $storeNew->getFormPageActions()->delete();
     $storeDelete = ObjectManager::getInstance()->create('Magento\\Backend\\Test\\Page\\Adminhtml\\StoreDelete');
     $storeDelete->getStoreForm()->fillForm(['create_backup' => 'No']);
     $storeDelete->getFormPageActions()->delete();
 }
示例#10
0
 /**
  * Custom implementation of native PHPUnit_Framework_TestSuite::createTest method
  *  - Test Case class should be instantiated with MTF Object Manager
  *  - Data Provider Test Suite should be instantiated with MTF Object Manager
  *
  * @param \ReflectionClass $theClass
  * @param string $name
  * @param array $arguments
  * @return \PHPUnit_Framework_Test
  * @throws \PHPUnit_Framework_Exception
  */
 public static function createTest(\ReflectionClass $theClass, $name, array $arguments = [])
 {
     $objectManager = \Mtf\ObjectManager::getInstance();
     $class = $theClass->getName();
     $arguments['name'] = $name;
     $backupSettings = \PHPUnit_Util_Test::getBackupSettings($class, $name);
     $preserveGlobalState = \PHPUnit_Util_Test::getPreserveGlobalStateSettings($class, $name);
     $runTestInSeparateProcess = \PHPUnit_Util_Test::getProcessIsolationSettings($class, $name);
     try {
         $data = \PHPUnit_Util_Test::getProvidedData($class, $name);
     } catch (\Exception $e) {
         /** @var EventManager $eventManager */
         $eventManager = $objectManager->get('Mtf\\System\\Event\\Event');
         $eventManager->dispatchEvent(['exception'], [$e]);
         $message = sprintf('The data provider specified for %s::%s is invalid.', $class, $name);
         $_message = $e->getMessage();
         if (!empty($_message)) {
             $message .= "\n" . $_message;
         }
         $data = new \PHPUnit_Framework_Warning($message);
     }
     // Test method with @dataProvider.
     if (isset($data)) {
         $test = $objectManager->create('Mtf\\TestSuite\\InjectableDataProvider', ['class' => $class . '::' . $name]);
         if (empty($data)) {
             $data = new \PHPUnit_Framework_Warning(sprintf('No tests found in suite "%s".', $test->getName()));
         }
         $groups = \PHPUnit_Util_Test::getGroups($class, $name);
         if ($data instanceof \PHPUnit_Framework_Warning) {
             $test->addTest($data, $groups);
         } else {
             foreach ($data as $_dataName => $_data) {
                 $_arguments = $arguments;
                 $_arguments['data'] = $_data;
                 $_arguments['dataName'] = $_dataName;
                 $_test = $objectManager->create($class, $_arguments);
                 if ($runTestInSeparateProcess) {
                     $_test->setRunTestInSeparateProcess(true);
                     if ($preserveGlobalState !== null) {
                         $_test->setPreserveGlobalState($preserveGlobalState);
                     }
                 }
                 if ($backupSettings['backupGlobals'] !== null) {
                     $_test->setBackupGlobals($backupSettings['backupGlobals']);
                 }
                 if ($backupSettings['backupStaticAttributes'] !== null) {
                     $_test->setBackupStaticAttributes($backupSettings['backupStaticAttributes']);
                 }
                 $test->addTest($_test, $groups);
             }
         }
     } else {
         $test = $objectManager->create($class, $arguments);
     }
     if (!isset($test)) {
         throw new \PHPUnit_Framework_Exception('No valid test provided.');
     }
     if ($test instanceof \PHPUnit_Framework_TestCase) {
         $test->setName($name);
         if ($runTestInSeparateProcess) {
             $test->setRunTestInSeparateProcess(true);
             if ($preserveGlobalState !== null) {
                 $test->setPreserveGlobalState($preserveGlobalState);
             }
         }
         if ($backupSettings['backupGlobals'] !== null) {
             $test->setBackupGlobals($backupSettings['backupGlobals']);
         }
         if ($backupSettings['backupStaticAttributes'] !== null) {
             $test->setBackupStaticAttributes($backupSettings['backupStaticAttributes']);
         }
     }
     return $test;
 }