Hello, world! ]]> '; } } /** * GadgetRendererTest test case. */ class GadgetHtmlRendererTest extends PHPUnit_Framework_TestCase { /** * @var Gadget */ private $gadget; /** * @var GadgetContext */ private $gadgetContext; /** * @var GadgetHtmlRender */ private $gadgetHtmlRenderer; /** * @var view */ private $view; /** * @var DomElement */ private $domElement; /** * @var DomDocument */ private $domDocument; /** * Prepares the environment before running a test. */ protected function setUp() { parent::setUp(); $this->gadgetContext = new GadgetContext('GADGET'); $gadgetSpecFactory = new MockHtmlGadgetFactory($this->gadgetContext, null); $gadgetSpecFactory->fetchGadget = null; $this->gadget = $gadgetSpecFactory->createGadget(); // init gadgetRenderer; $this->GadgetHtmlRenderer = new GadgetHtmlRenderer($this->gadgetContext); // init $this->doc $this->domDocument = new DOMDocument(null, 'utf-8'); $this->domDocument->preserveWhiteSpace = true; $this->domDocument->formatOutput = false; $this->domDocument->strictErrorChecking = false; $this->domDocument->recover = false; // init $this->element $this->domElement = $this->domDocument->createElement('test'); } /** * Cleans up the environment after running a test. */ protected function tearDown() { $this->gadget = null; $this->gadgetContext = null; $this->GadgetHtmlRenderer = null; $this->view = null; $this->domDocument = null; $this->domElement = null; parent::tearDown(); } /** * Tests GadgetHtmlRenderer->renderGadget() */ public function testRenderGadget() { ob_start(); $this->GadgetHtmlRenderer->renderGadget($this->gadget, $this->view); ob_end_clean(); } /** * Tests GadgetHtmlRenderer->addBodyTags() */ public function testAddBodyTags() { $this->GadgetHtmlRenderer->addBodyTags($this->domElement, $this->domDocument); $tmpNodeList = $this->domElement->getElementsByTagName("script"); foreach($tmpNodeList as $tmpNode) { $this->assertEquals('gadgets.util.runOnLoadHandlers();', $tmpNode->nodeValue); } } /** * Tests GadgetHtmlRenderer->addHeadTags() */ public function testAddHeadTags() { ob_start(); $this->GadgetHtmlRenderer->renderGadget($this->gadget, $this->view); ob_end_clean(); $this->GadgetHtmlRenderer->addHeadTags($this->domElement, $this->domDocument); $tmpNodeList = $this->domElement->getElementsByTagName("style"); $tmpNodeList = $this->domElement->getElementsByTagName("script"); $script = ''; foreach($this->GadgetHtmlRenderer->gadget->features as $feature) { $script .= $this->gadgetContext->getRegistry()->getFeatureContent($feature, $this->gadgetContext, true); } foreach($tmpNodeList as $tmpNode) { $this->assertEquals('text/javascript', $tmpNode->getAttribute('type')); $nodeValue = substr($tmpNode->nodeValue, 0, strpos($tmpNode->nodeValue, 'gadgets.config.init(')); $this->assertEquals(trim($script), trim($nodeValue)); } } } ?>