Пример #1
0
 /**
  * Get all paths to fixture files and all paths to include uimap elements
  * @return array
  */
 public function getConfigFixtures()
 {
     if (!empty($this->_configFixtures)) {
         return $this->_configFixtures;
     }
     //Get initial path to fixtures
     $frameworkConfig = $this->_configHelper->getConfigFramework();
     $initialPath = SELENIUM_TESTS_BASEDIR . DIRECTORY_SEPARATOR . $frameworkConfig['fixture_base_path'];
     //Get fixtures sequence
     $fallbackOrderFixture = $this->_configHelper->getFixturesFallbackOrder();
     //Get folder names where uimaps are stored for specified area
     $uimapFolders = array();
     $configAreas = $this->_configHelper->getConfigAreas();
     foreach ($configAreas as $areaName => $areaConfig) {
         $uimapFolders[$areaName] = $areaConfig['uimap_path'];
     }
     $separator = preg_quote(DIRECTORY_SEPARATOR);
     $facade = new File_Iterator_Facade();
     foreach ($fallbackOrderFixture as $codePoolName) {
         $projectPath = $initialPath . DIRECTORY_SEPARATOR . $codePoolName;
         if (!is_dir($projectPath)) {
             continue;
         }
         $files = $facade->getFilesAsArray($projectPath, '.yml');
         foreach ($files as $file) {
             if (preg_match('|' . $separator . 'data' . $separator . '|', $file)) {
                 $this->_configFixtures[$codePoolName]['data'][] = $file;
             }
             if (preg_match('|' . $separator . 'uimap' . $separator . '|', $file)) {
                 foreach ($uimapFolders as $areaName => $uimapFolder) {
                     $pattern = implode($separator, array('', 'uimap', $uimapFolder, ''));
                     if (preg_match('|' . $pattern . '|', $file)) {
                         $this->_configFixtures[$codePoolName]['uimap'][$areaName][] = $file;
                     }
                 }
             }
             if (preg_match('|' . $separator . self::UIMAP_INCLUDE_FOLDER . $separator . '|', $file)) {
                 foreach ($uimapFolders as $areaName => $uimapFolder) {
                     $pattern = implode($separator, array('', self::UIMAP_INCLUDE_FOLDER, $uimapFolder)) . '\\.yml';
                     if (preg_match('|' . $pattern . '|', $file)) {
                         $this->_configFixtures['uimapInclude'][$areaName][] = $file;
                     }
                 }
             }
         }
     }
     return $this->_configFixtures;
 }
Пример #2
0
 /**
  * Set data params
  *
  * @param string $value
  * @param string $key Index of the target to randomize
  */
 public function setDataParams(&$value, $key)
 {
     if (preg_match('/%randomize%/', $value)) {
         $value = preg_replace('/%randomize%/', $this->generate('string', 5, ':lower:'), $value);
     }
     if (preg_match('/%longValue[0-9]+%/', $value)) {
         $str = preg_replace('/(.)+(?=longValue[0-9]+%)/', '', $value);
         list($dataParam) = explode('%', $str);
         $length = preg_replace('/[^0-9]/', '', $dataParam);
         $value = preg_replace('/%longValue[0-9]+%/', $this->generate('string', $length, ':alpha:'), $value);
     }
     if (preg_match('/%specialValue[0-9]+%/', $value)) {
         $str = preg_replace('/(.)+(?=specialValue[0-9]+%)/', '', $value);
         list($dataParam) = explode('%', $str);
         $length = preg_replace('/[^0-9]/', '', $dataParam);
         $value = preg_replace('/%specialValue[0-9]+%/', $this->generate('string', $length, ':punct:'), $value);
     }
     if (preg_match('/%currentDate%/', $value)) {
         $fallbackOrderHelper = $this->_configHelper->getFixturesFallbackOrder();
         switch (end($fallbackOrderHelper)) {
             case 'default':
                 $value = preg_replace('/%currentDate%/', date("n/j/y"), $value);
                 break;
             default:
                 $value = preg_replace('/%currentDate%/', date("n/j/Y"), $value);
                 break;
         }
     }
     if (preg_match('/^%next(\\w)+%$/', $value)) {
         $fallbackOrderHelper = $this->_configHelper->getFixturesFallbackOrder();
         $param = strtoupper(substr(substr($value, 0, -1), 5));
         switch (end($fallbackOrderHelper)) {
             case 'enterprise':
                 $value = preg_replace('/%next(\\w)+%/', date("n/j/Y", strtotime("+1 {$param}")), $value);
                 break;
             default:
                 $value = preg_replace('/%next(\\w)+%/', date("n/j/y", strtotime("+1 {$param}")), $value);
                 break;
         }
     }
 }
Пример #3
0
 /**
  * @covers Mage_Selenium_Helper_Config::getFixturesFallbackOrder
  */
 public function testGetFixturesFallbackOrder()
 {
     $configHelper = new Mage_Selenium_Helper_Config($this->_config);
     $configHelper->setApplication('mage');
     $fallbackOrder = $configHelper->getFixturesFallbackOrder();
     $this->assertInternalType('array', $fallbackOrder);
     $this->assertSame($fallbackOrder, array('default'));
     $configHelper->setApplication('enterprise');
     $fallbackOrder = $configHelper->getFixturesFallbackOrder();
     $this->assertInternalType('array', $fallbackOrder);
     $this->assertSame($fallbackOrder, array('default', 'enterprise'));
 }