rendered paste body<?php
class PresentationRendererTest extends UnitTestCase{
public function testRenderTitleInHead(){
$presentation = new Presentation();
$presentation->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])'));
}
}
?>