/** * Access/load helpers from the tests. Helper class name should be like "TestScope_HelperName" * * @param string $testScope Part of the helper class name which refers to the file with the needed helper * * @return object * @throws UnexpectedValueException */ protected function _loadHelper($testScope) { if (empty($testScope)) { throw new UnexpectedValueException('Helper name can\'t be empty'); } $helpers = $this->_testConfig->getTestHelperClassNames(); if (!isset($helpers[ucwords($testScope)])) { throw new UnexpectedValueException('Cannot load helper "' . $testScope . '"'); } $helperClassName = $helpers[ucwords($testScope)]; if (!isset(self::$_testHelpers[$helperClassName])) { if (class_exists($helperClassName)) { self::$_testHelpers[$helperClassName] = new $helperClassName(); } else { return false; } } if (self::$_testHelpers[$helperClassName] instanceof Mage_Selenium_TestCase) { foreach (get_object_vars($this) as $name => $value) { self::$_testHelpers[$helperClassName]->{$name} = $value; } } return self::$_testHelpers[$helperClassName]; }