/** * @covers Mage_Core_Model_Layout_ScheduledStructure::setElementToMove */ public function testSetElementToMove() { $data = array('some', 'new', 'data', 'element', 'to', 'move'); /** Test add new element */ $this->assertFalse($this->_model->hasElement('new_element')); $this->_model->setElementToMove('new_element', $data); $this->assertEquals($data, $this->_model->getElementToMove('new_element')); /** Test override existing element */ $this->assertNotEquals($data, $this->_model->getElementToMove('element1')); $this->_model->setElementToMove('element1', $data); $this->assertEquals($data, $this->_model->getElementToMove('element1')); }
/** * Schedule structural changes for move directive * * @param Mage_Core_Model_Layout_Element $node * @throws Magento_Exception * @return Mage_Core_Model_Layout */ protected function _scheduleMove($node) { $elementName = (string) $node->getAttribute('element'); $destination = (string) $node->getAttribute('destination'); $alias = (string) $node->getAttribute('as') ?: ''; if ($elementName && $destination) { list($siblingName, $isAfter) = $this->_beforeAfterToSibling($node); $this->_scheduledStructure->setElementToMove($elementName, array($destination, $siblingName, $isAfter, $alias)); } else { throw new Magento_Exception('Element name and destination must be specified.'); } return $this; }