/** * {@inheritdoc} */ public function addHandle($handleName) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'addHandle'); if (!$pluginInfo) { return parent::addHandle($handleName); } else { return $this->___callPlugins('addHandle', func_get_args(), $pluginInfo); } }
public function testAddPageHandles() { /* add a non-page handle to verify that it won't be affected during page handles manipulation */ $nonPageHandles = ['non_page_handle']; $this->_model->addHandle($nonPageHandles); $this->assertFalse($this->_model->addPageHandles(['non_existing_handle'])); $this->assertEmpty($this->_model->getPageHandles()); $this->assertEquals($nonPageHandles, $this->_model->getHandles()); /* test that only the first existing handle is taken into account */ $handlesToTry = ['default', 'catalog_category_default', 'catalog_product_view', 'catalog_product_view_type_simple']; $expectedPageHandles = ['default', 'catalog_category_default', 'catalog_product_view', 'catalog_product_view_type_simple']; $this->assertTrue($this->_model->addPageHandles($handlesToTry)); $this->assertEquals($expectedPageHandles, $this->_model->getPageHandles()); $this->assertEquals(array_merge($nonPageHandles, $expectedPageHandles), $this->_model->getHandles()); /* test that new handles override the previous ones */ $expectedPageHandles = ['default', 'checkout_index_index']; $this->_model->removeHandle('catalog_category_default'); $this->_model->removeHandle('catalog_product_view'); $this->_model->removeHandle('catalog_product_view_type_simple'); $this->assertTrue($this->_model->addPageHandles(['default', 'checkout_index_index'])); $this->assertEquals($expectedPageHandles, $this->_model->getPageHandles()); $this->assertEquals(array_merge($nonPageHandles, $expectedPageHandles), $this->_model->getHandles()); }