public function testVerySimple()
    {
        $div = $this->createComponentFromXml('
	        <div id="my-div" class="container">bla bla</div>
	    ');
        $renderingEngine = new XhtmlRenderingEngine();
        $renderingEngine->setCssClassPolicy(XhtmlRenderingEngine::CSSCLASS_ABSTRACT);
        $rendering = $renderingEngine->render($div);
        $this->assertInstanceOf('\\DOMDocument', $rendering);
        $divElt = $rendering->documentElement;
        $this->assertEquals('div', $divElt->nodeName);
        $this->assertEquals('my-div', $divElt->getAttribute('id'));
        $this->assertEquals('qti-bodyElement qti-div container', $divElt->getAttribute('class'));
        $text = $divElt->firstChild;
        $this->assertInstanceOf('\\DOMText', $text);
        $this->assertEquals('bla bla', $text->wholeText);
    }
 public function testRenderChildren()
 {
     $ctx = new XhtmlRenderingEngine();
     $ctx->setCssClassPolicy(XhtmlRenderingEngine::CSSCLASS_ABSTRACT);
     $abbr = new Abbr('my-abbr', 'qti qti-abbr');
     $abbrRenderer = new BodyElementRenderer();
     $abbrRenderer->setRenderingEngine($ctx);
     $textRun = new TextRun('abbreviation...');
     $textRunRenderer = new TextRunRenderer();
     $textRunRenderer->setRenderingEngine($ctx);
     $renderedTextRun = $textRunRenderer->render($textRun);
     $ctx->storeRendering($textRun, $renderedTextRun);
     $abbr->setContent(new InlineCollection(array($textRun)));
     $element = $abbrRenderer->render($abbr)->firstChild;
     $this->assertEquals('abbr', $element->nodeName);
     $this->assertEquals('my-abbr', $element->getAttribute('id'));
     $this->assertEquals('qti-bodyElement qti-abbr qti qti-abbr', $element->getAttribute('class'));
     $this->assertEquals('abbreviation...', $element->firstChild->wholeText);
 }
Beispiel #3
0
 /**
  * Instantiate an appropriate Rendering Engine.
  * 
  * The instantiated Rendering Engine implementation will depend on the "flavour"
  * CLI argument.
  * 
  * @return \qtism\runtime\rendering\markup\AbstractMarkupRenderingEngine
  */
 private function instantiateEngine()
 {
     $arguments = $this->getArguments();
     $engine = null;
     switch (strtolower($arguments['flavour'])) {
         case 'goldilocks':
             $engine = new GoldilocksRenderingEngine();
             break;
         case 'xhtml':
             $engine = new XhtmlRenderingEngine();
             break;
     }
     if ($arguments['xmlbase'] === 'process') {
         $engine->setXmlBasePolicy(AbstractMarkupRenderingEngine::XMLBASE_PROCESS);
     } elseif ($arguments['xmlbase'] === 'keep') {
         $engine->setXmlBasePolicy(AbstractMarkupRenderingEngine::XMLBASE_KEEP);
     } elseif ($arguments['xmlbase'] === 'ignore') {
         $engine->setXmlBasePolicy(AbstractMarkupRenderingEngine::XMLBASE_IGNORE);
     }
     if ($arguments['document'] === true) {
         $engine->setStylesheetPolicy(AbstractMarkupRenderingEngine::STYLESHEET_SEPARATE);
     }
     if ($arguments['csshierarchy'] === true) {
         $engine->setCssClassPolicy(AbstractMarkupRenderingEngine::CSSCLASS_ABSTRACT);
     }
     return $engine;
 }