/** * Safe method for children to overrride w/o affecting the cache. * * @return string */ protected function _renderBlock() { if (!$this->_block) { return null; } if (($html = $this->_block->toHtml()) == '') { // saves at least a space to prevent additional generation for the same cache key $html = ' '; } return $html; }
/** * @test * @dataProvider blocksProvider */ public function coreTextBlock(Mage_Core_Block_Abstract $block, array $regex, array $notRegex) { $this->assertEventObserverDefined('global', 'core_block_abstract_to_html_after', 'Aoe_TemplateHints_Model_Observer', 'core_block_abstract_to_html_after'); $observer = Mage::getModel('aoe_templatehints/observer'); /* @var $observer Aoe_TemplateHints_Model_Observer */ $rendererFromObserver = $observer->getRenderer(); $this->assertInstanceOf('Aoe_TemplateHints_Model_Renderer_Abstract', $rendererFromObserver); $this->assertInstanceOf('Aoe_TemplateHints_Model_Renderer_Opentip', $rendererFromObserver); $html = $block->toHtml(); $this->assertEventDispatchedExactly('core_block_abstract_to_html_before', 1); $this->assertEventDispatchedExactly('core_block_abstract_to_html_after', 1); $this->assertContains('id="tpl-hint-', $html); $this->assertContains('class="tpl-hint tpl-hint-border', $html); $this->assertRegExp('/<div id="tpl-hint-\\d*-title"/', $html); $this->assertRegExp('/<div id="tpl-hint-\\d*-infobox"/', $html); $this->assertContains('<dt>Class:</dt><dd>' . get_class($block) . '</dd>', $html); foreach ($regex as $c) { $this->assertRegExp($c, $html); } Mage::app()->disableEvents(); $rawBlockHtml = $block->toHtml(); Mage::app()->enableEvents(); $this->assertContains($rawBlockHtml, $html); }