Commit 5cd47c08 authored by Jim O'Halloran's avatar Jim O'Halloran

Merge branch 'feature/disable_modules' into feature/bundle_fixture_loader

parents e43bf5d0 504c2848
...@@ -56,6 +56,13 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config ...@@ -56,6 +56,13 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config
*/ */
protected $_cacheSections = array(); protected $_cacheSections = array();
/**
* Object containing parsed local.xml.phpunit
*
* @var null
*/
protected $_localXmlForTest = null;
/** /**
* Load config data from DB * Load config data from DB
* *
...@@ -215,6 +222,22 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config ...@@ -215,6 +222,22 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config
return $this; return $this;
} }
protected function _isAllowedModule($moduleName)
{
if (!parent::_isAllowedModule($moduleName)) {
return false;
}
$localXml = $this->_loadLocalXmlForTest();
if ($localXml) {
$node = $localXml->getNode("phpunit/disable_modules/$moduleName");
return $node === false;
}
return true;
}
/** /**
* (non-PHPdoc) * (non-PHPdoc)
* @see Mage_Core_Model_Config::loadModules() * @see Mage_Core_Model_Config::loadModules()
...@@ -235,10 +258,8 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config ...@@ -235,10 +258,8 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config
*/ */
protected function _loadTestConfig() protected function _loadTestConfig()
{ {
$merge = clone $this->_prototype;
try { try {
if ($merge->loadFile($this->_getLocalXmlForTest())) { if ($merge = $this->_loadLocalXmlForTest()) {
$this->_checkDbCredentialForDuplicate($this, $merge); $this->_checkDbCredentialForDuplicate($this, $merge);
$this->_checkBaseUrl($this, $merge); $this->_checkBaseUrl($this, $merge);
$this->extend($merge); $this->extend($merge);
...@@ -253,6 +274,20 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config ...@@ -253,6 +274,20 @@ class EcomDev_PHPUnit_Model_Config extends Mage_Core_Model_Config
return $this; return $this;
} }
/**
* Parse the phpunit specific local configuration. THis may be loaded by
* and used by _isAllowedModule before it's merged into the merged config.
*
* @return Mage_Core_Model_Config_Base|null
*/
protected function _loadLocalXmlForTest() {
if ($this->_localXmlForTest === null) {
$this->_localXmlForTest = clone $this->_prototype;
$this->_localXmlForTest->loadFile($this->_getLocalXmlForTest());
}
return $this->_localXmlForTest;
}
/** /**
* Loads cache configuration for PHPUnit tests scope * Loads cache configuration for PHPUnit tests scope
* *
......
...@@ -739,6 +739,9 @@ class EcomDev_PHPUnit_Model_Fixture ...@@ -739,6 +739,9 @@ class EcomDev_PHPUnit_Model_Fixture
if (is_dir(Mage::getBaseDir('lib') . DS . 'vfsStream' . DS . 'src')) { if (is_dir(Mage::getBaseDir('lib') . DS . 'vfsStream' . DS . 'src')) {
spl_autoload_register(array($this, 'vfsAutoload'), true, true); spl_autoload_register(array($this, 'vfsAutoload'), true, true);
}
if( class_exists('\org\bovigo\vfs\vfsStream') ){
$this->_vfs = Mage::getModel('ecomdev_phpunit/fixture_vfs'); $this->_vfs = Mage::getModel('ecomdev_phpunit/fixture_vfs');
return $this->_vfs; return $this->_vfs;
} }
......
...@@ -133,11 +133,11 @@ class EcomDev_PHPUnit_Model_Mysql4_Fixture_Eav_Catalog_Product extends EcomDev_P ...@@ -133,11 +133,11 @@ class EcomDev_PHPUnit_Model_Mysql4_Fixture_Eav_Catalog_Product extends EcomDev_P
$records = array(); $records = array();
$attributeCodes = $entityTypeModel->getAttributeCollection(); $attributeCodes = $entityTypeModel->getAttributeCollection();
foreach ($row['super_attributes'] as $attributeCode) { foreach ($row['super_attributes'] as $attributeCode) {
$oAttribute = $attributeCodes->getItemByColumnValue('attribute_code', $attributeCode); $attribute = $attributeCodes->getItemByColumnValue('attribute_code', $attributeCode);
if(!$oAttribute){ if(!$attribute){
throw new Exception('Super attribute not found with code: ' . $attributeCode); throw new Exception('Super attribute not found with code: ' . $attributeCode);
} }
$attributeId = $oAttribute->getId(); $attributeId = $attribute->getId();
$records[] = array( $records[] = array(
'product_id' => $row[$this->_getEntityIdField($entityTypeModel)], 'product_id' => $row[$this->_getEntityIdField($entityTypeModel)],
'attribute_id' => $attributeId 'attribute_id' => $attributeId
......
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