All pastes #156947 Raw Edit

Untitled

public text v1 · immutable
·published 2006-09-01 05:20 UTC
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])'));
		
	}
}
?>