Commit b0fd8e25 authored by Ivan Chepurnyi's avatar Ivan Chepurnyi

! Compatibility and strict issues fixed for extension

parent be294b5a
......@@ -64,6 +64,18 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config
return $this;
}
/**
* Get events configuration
*
* @param string $area event area
* @param string $eventName event name
* @return Mage_Core_Model_Config_Element
*/
public function getEventConfig($area, $eventName)
{
return $this->getNode($area)->events->{$eventName};
}
/**
* Replaces creation of some instance by mock object
*
......
......@@ -502,6 +502,18 @@ class EcomDev_PHPUnit_Model_Fixture
}
Mage::getConfig()->loadDb();
// Flush website and store configuration caches
foreach (Mage::app()->getWebsites(true) as $website) {
EcomDev_Utils_Reflection::setRestrictedPropertyValue(
$website, '_configCache', array()
);
}
foreach (Mage::app()->getStores(true) as $store) {
EcomDev_Utils_Reflection::setRestrictedPropertyValue(
$store, '_configCache', array()
);
}
return $this;
}
......@@ -653,31 +665,7 @@ class EcomDev_PHPUnit_Model_Fixture
*/
protected function _setConfigNodeValue($path, $value)
{
$pathArray = explode('/', $path);
$scope = array_shift($pathArray);
switch ($scope) {
case 'stores':
$storeCode = array_shift($pathArray);
Mage::app()->getStore($storeCode)->setConfig(
implode('/', $pathArray), $value
);
break;
case 'websites':
$websiteCode = array_shift($pathArray);
$website = Mage::app()->getWebsite($websiteCode);
EcomDev_Utils_Reflection::setRestrictedPropertyValue(
$website, '_configCache', array()
);
// Should change value
default:
Mage::getConfig()->setNode($path, $value);
break;
}
Mage::getConfig()->setNode($path, $value);
return $this;
}
......
......@@ -112,9 +112,10 @@ class EcomDev_PHPUnit_Model_Layout
$this->_records = array();
foreach ($this->_blocks as $block) {
/* @var $block Mage_Core_Block_Abstract */
// Remove references between blocks
$block->setParentBlock(null);
$block->setMessageBlock(null);
EcomDev_Utils_Reflection::setRestrictedPropertyValue($block, '_parentBlock', null);
$block->unsMessageBlock();
$block->unsetChildren();
}
......@@ -285,9 +286,9 @@ class EcomDev_PHPUnit_Model_Layout
protected function _generateAction($node, $parent)
{
$this->_collectedArgs = $this->_collectActionArguments($node);
$this->_translateLayoutNode($node, $this->_collectedArgs);
parent::_generateAction($node, $parent);
if ($this->_collectedArgs !== null) {
$this->_translateLayoutNode($node, $this->_collectedArgs);
$method = (string)$node['method'];
if (!empty($node['block'])) {
$parentName = (string)$node['block'];
......@@ -307,10 +308,14 @@ class EcomDev_PHPUnit_Model_Layout
* Collects action arguments
*
* @param Varien_SimpleXml_Element $node
* @return array
* @return array|null
*/
protected function _collectActionArguments($node)
{
if (isset($node['ifconfig']) && !Mage::getStoreConfigFlag((string)$node['ifconfig'])) {
return null;
}
$args = (array)$node->children();
unset($args['@attributes']);
......
......@@ -718,7 +718,7 @@ abstract class EcomDev_PHPUnit_Test_Case extends PHPUnit_Framework_TestCase
if (current($annotationValue)) {
$classAlias = current($annotationValue);
} else {
$classAlias = self::app()->getConfig()->getNode($configPath);
$classAlias = (string) self::app()->getConfig()->getNode($configPath);
}
return $classAlias;
......
......@@ -186,7 +186,7 @@ abstract class EcomDev_PHPUnit_Test_Case_Config extends EcomDev_PHPUnit_Test_Cas
* @param EcomDev_PHPUnit_Constraint_Config $constraint
* @param string $message
*/
public static function assertThatConfig(EcomDev_PHPUnit_Constraint_Config $constraint, $message)
public static function assertThatConfig(PHPUnit_Framework_Constraint $constraint, $message)
{
self::assertThat(Mage::getConfig(), $constraint, $message);
}
......
......@@ -80,7 +80,7 @@ abstract class EcomDev_PHPUnit_Test_Case_Controller extends EcomDev_PHPUnit_Test
* @param string $type
* @return EcomDev_PHPUnit_Constraint_Layout
*/
public static function layout($type = EcomDev_PHPUnit_Constraint_Layout::TYPE_LOADED)
public static function layout($type)
{
return new EcomDev_PHPUnit_Constraint_Layout($type);
}
......@@ -437,10 +437,10 @@ abstract class EcomDev_PHPUnit_Test_Case_Controller extends EcomDev_PHPUnit_Test
/**
* Assert shortcut for response assertions
*
* @param EcomDev_PHPUnit_Constraint_Controller_Response_Header $constraint
* @param EcomDev_PHPUnit_Constraint_Controller_Response_Abstract $constraint
* @param string $message
*/
public static function assertThatResponse(EcomDev_PHPUnit_Constraint_Controller_Response_Header $constraint, $message)
public static function assertThatResponse(PHPUnit_Framework_Constraint $constraint, $message)
{
self::assertThat(self::getResponse(), $constraint, $message);
}
......
......@@ -58,11 +58,11 @@ class EcomDev_PHPUnit_Constraint_Config extends PHPUnit_Framework_Constraint
* @param string $description
* @param boolean $not
*/
public function fail($other, $description, $not)
public function fail($other, $description, PHPUnit_Framework_ComparisonFailure $comparisonFailure = NULL)
{
$nodeValue = $this->getNodeValue($other);
return $this->constraint->fail($nodeValue, $description, $not);
return $this->constraint->fail($nodeValue, $description, $comparisonFailure);
}
/**
......
......@@ -120,9 +120,11 @@ class EcomDev_PHPUnit_Constraint_Config_Resource_Script
}
// Sort install scripts by version
usort($result['install'], array($this, 'compareVersions'));
usort($result['scheme']['install'], array($this, 'compareVersions'));
usort($result['data']['install'], array($this, 'compareVersions'));
// Sort upgrade scripts by version
usort($result['upgrade'], array($this, 'compareVersions'));
usort($result['scheme']['upgrade'], array($this, 'compareVersions'));
usort($result['data']['upgrade'], array($this, 'compareVersions'));
return $result;
}
......
......@@ -59,7 +59,7 @@ class EcomDev_PHPUnit_Constraint_Config_TableAlias
protected function evaluateTableAlias($other)
{
if (!isset($other->{$this->_tableAliasPrefix})) {
$this->setActualValue(false);
$this->setActualValue('');
return false;
}
......@@ -72,7 +72,7 @@ class EcomDev_PHPUnit_Constraint_Config_TableAlias
if (isset($modelNode->entities->{$this->_tableAliasName}->table)) {
$tableName = (string)$modelNode->entities->{$this->_tableAliasName}->table;
} else {
$tableName = false;
$tableName = '';
}
$this->setActualValue($tableName);
......
......@@ -49,7 +49,7 @@ class EcomDev_PHPUnit_Constraint_Controller_Response_Body
protected function evaluateConstraint($other)
{
$this->setActualValue($other->getOutputBody());
return $this->_expectedValue->evaluate($this->_actualValue);
return $this->_expectedValue->evaluate($this->_actualValue, '', true);
}
/**
......@@ -59,6 +59,20 @@ class EcomDev_PHPUnit_Constraint_Controller_Response_Body
*/
protected function textConstraint()
{
return sprintf('body %s', $this->_expectedValue->toString());
return $this->_expectedValue->toString();
}
/**
* Custom failure description
*
* @param $other
* @return string
*/
protected function customFailureDescription($other)
{
return sprintf(
'request body %s.',
$this->toString()
);
}
}
\ No newline at end of file
......@@ -85,7 +85,7 @@ class EcomDev_PHPUnit_Constraint_Controller_Response_Header
protected function evaluateConstraint($other)
{
$this->setActualValue($other->getSentHeader($this->_headerName));
return $this->_expectedValue->evaluate($this->_actualValue);
return $this->_expectedValue->evaluate($this->_actualValue, '', true);
}
/**
......
......@@ -40,7 +40,7 @@ abstract class EcomDev_PHPUnit_Constraint_Layout_Abstract extends EcomDev_PHPUni
* (non-PHPdoc)
* @see EcomDev_PHPUnit_Constraint_Abstract::getActualValue()
*/
protected function getActualValue($other)
protected function getActualValue($other = null)
{
if ($this->_useActualValue) {
return parent::getActualValue($other);
......
......@@ -133,7 +133,7 @@ class EcomDev_PHPUnit_Constraint_Layout_Block extends EcomDev_PHPUnit_Constraint
}
$this->setActualValue($renderInfo['content']);
return $this->_expectedValue->evaluate($renderInfo['content']);
return $this->_expectedValue->evaluate($renderInfo['content'], '', true);
}
/**
......
......@@ -150,7 +150,7 @@ class EcomDev_PHPUnit_Constraint_Layout_Block_Action extends EcomDev_PHPUnit_Con
$withArguments = ' with expected arguments';
}
return sprintf('block "%s" action for method "%s" was invoked%s',
return sprintf('block "%s" action for method "%s" is invoked%s',
$this->_blockName, $this->_method, $withArguments);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment