setTitle('S5: An Introduction'); $ctx = $this->renderHeader($presentation); $expression = 'string(//head/title/text())'; $this->assertEqual('S5: An Introduction', $ctx->evaluate($expression)); } private function renderHeader($presentation){ $renderer = new PresentationRenderer(); $renderer->setDoc(new DomDocument()); $doc = $renderer->renderHeader($presentation); $this->ctx= new DomXpath($doc); return $this->ctx; } private function evaluate($expression){ return $this->ctx->evaluate($expression); } public function testRenderMetaData(){ $presentation = new Presentation(); $presentation->setMetaData("generator", "James Carr's S5 Generator"); $presentation->setMetaData("version", "S5 1.1"); $this->renderHeader($presentation); $this->assertEqual("metadata", $this->evaluate('string(//head/comment()[1])')); $this->assertEqual("James Carr's S5 Generator", $this->evaluate('string(//head/meta[@name="generator"]/@value)')); $this->assertEqual("S5 1.1", $this->evaluate('string(//head/meta[@name="version"]/@value)')); } public function testRenderConfigurationParameters(){ $presentation = new Presentation(); $presentation->setConfigurationParameter('defaultView', 'slideshow'); $presentation->setConfigurationParameter('controlVis', 'hidden'); $this->renderHeader($presentation); $this->assertEqual("configuration parameters", $this->evaluate('string(//head/comment()[2])')); $this->assertEqual('slideshow', $this->evaluate('string(//head/meta[@name="defaultView"]/@value)')); $this->assertEqual('hidden', $this->evaluate('string(//head/meta[@name="controlVis"]/@value)')); } public function testRenderStyleSheets(){ $presentation = new Presentation(); $presentation->addStyleSheet('slideProj', new StyleSheet('ui/default/slides.css', 'projector')); $this->renderHeader($presentation); $this->assertEqual('style sheet links', $this->evaluate('string(//head/comment()[3])')); $this->assertEqual('text/css', $this->evaluate('string(//head/style[1]/@type)')); $this->assertEqual('stylesheet', $this->evaluate('string(//head/style[1]/@rel)')); $this->assertEqual('ui/default/slides.css', $this->evaluate('string(//head/style[1]/@href)')); $this->assertEqual('projector', $this->evaluate('string(//head/style[1]/@media)')); $this->assertEqual('slideProj', $this->evaluate('string(//head/style[1]/@id)')); } public function testThatS5ScriptIsIncluded(){ $presentation = new Presentation(); $presentation->addStyleSheet('slideProj', new StyleSheet('ui/default/slides.css', 'projector')); $this->renderHeader($presentation); $this->assertEqual('S5 JS', $this->evaluate('string(//head/comment()[4])')); } } ?>