public function testGetElementAlias() { $this->_layout->addContainer('one', 'One'); $this->_layout->addContainer('two', 'One', array(), 'one', '1'); $this->assertFalse($this->_layout->getElementAlias('one')); $this->assertEquals('1', $this->_layout->getElementAlias('two')); }
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')); }