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); }
/** * 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; }