public function testIsBlock() { $this->assertFalse($this->_layout->isBlock('container')); $this->assertFalse($this->_layout->isBlock('block')); $this->_layout->addContainer('container', 'Container'); $this->_layout->addBlock('Mage_Core_Block_Text', 'block'); $this->assertFalse($this->_layout->isBlock('container')); $this->assertTrue($this->_layout->isBlock('block')); }
public function testLayoutDirectives() { /** * Test correct move */ $layout = new Mage_Core_Model_Layout(); $layout->getUpdate()->load(array('layout_test_handle_move')); $layout->generateXml()->generateElements(); $this->assertEquals('container2', $layout->getParentName('container1')); $this->assertEquals('container1', $layout->getParentName('no.name2')); $this->assertEquals('block_container', $layout->getParentName('no_name3')); // verify `after` attribute $this->assertEquals('block_container', $layout->getParentName('no_name')); $childrenOrderArray = array_keys($layout->getChildBlocks($layout->getParentName('no_name'))); $positionAfter = array_search('child_block1', $childrenOrderArray); $positionToVerify = array_search('no_name', $childrenOrderArray); $this->assertEquals($positionAfter, --$positionToVerify); // verify `before` attribute $this->assertEquals('block_container', $layout->getParentName('no_name4')); $childrenOrderArray = array_keys($layout->getChildBlocks($layout->getParentName('no_name4'))); $positionBefore = array_search('child_block2', $childrenOrderArray); $positionToVerify = array_search('no_name4', $childrenOrderArray); $this->assertEquals($positionBefore, ++$positionToVerify); /** * Test move with the same alias */ $layout = new Mage_Core_Model_Layout(); $layout->getUpdate()->load(array('layout_test_handle_move_the_same_alias')); $layout->generateXml()->generateElements(); $this->assertEquals('container1', $layout->getParentName('no_name3')); /** * Test move with a new alias */ $layout = new Mage_Core_Model_Layout(); $layout->getUpdate()->load(array('layout_test_handle_move_new_alias')); $layout->generateXml()->generateElements(); $this->assertEquals('new_alias', $layout->getElementAlias('no_name3')); /** * Test layout action with anonymous parent block */ $layout = new Mage_Core_Model_Layout(); $layout->getUpdate()->load(array('layout_test_handle_action_for_anonymous_parent_block')); $layout->generateXml()->generateElements(); $this->assertEquals('schedule_block', $layout->getParentName('test.block.insert')); $this->assertEquals('schedule_block_1', $layout->getParentName('test.block.append')); /** * Test layout remove directive */ $layout = new Mage_Core_Model_Layout(); $layout->getUpdate()->load(array('layout_test_handle_remove')); $layout->generateXml()->generateElements(); $this->assertFalse($layout->getBlock('no_name2')); $this->assertFalse($layout->getBlock('child_block1')); $this->assertTrue($layout->isBlock('child_block2')); }