19 declare(strict_types=1);
21 require_once(__DIR__ .
"/TestComponent.php");
22 require_once(__DIR__ .
"/../Base.php");
45 $dr = $this->getDefaultRenderer();
46 $r = $dr->_getRendererFor(
new Glyph(
"up",
"up"));
47 $this->assertInstanceOf(ComponentRenderer::class,
$r);
52 $dr = $this->getDefaultRenderer();
53 $r1 = $dr->_getRendererFor(
new Glyph(
"up",
"up"));
54 $r2 = $dr->_getRendererFor(
new Glyph(
"up",
"up"));
55 $this->assertTrue($r1 === $r2,
"Instances not equal");
60 $this->resource_registry = parent::getResourceRegistry();
66 $dr = $this->getDefaultRenderer();
69 $dr->render($component);
71 $this->assertEquals(array(
"test.js"), $this->resource_registry->resources);
85 $component_renderer = $this->createMock(ComponentRenderer::class);
86 $component_renderer->method(
'render')->willReturnCallback(
93 return match ($component->text) {
94 $component1->text => $component1->text . $glue . $renderer->
render($component2),
95 $component2->text => $component2->text . $glue . $renderer->
render($component3),
96 $component3->text => $component3->text,
102 public array $context_history = [];
114 protected function pushContext(
Component $component):
void 116 parent::pushContext($component);
117 $this->context_history[] = $this->getContexts();
120 protected function popContext():
void 122 parent::popContext();
123 $this->context_history[] = $this->getContexts();
127 $expected_context_history = [
129 [$component1, $component2],
130 [$component1, $component2, $component3],
131 [$component1, $component2],
137 $component1->text . $glue .
138 $component2->text . $glue .
141 $html = $renderer->
render($component1);
143 $this->assertEquals($expected_context_history, $renderer->context_history);
144 $this->assertEquals($expected_html, $html);
152 $this->assertEquals(
"foo", $html);
160 $this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false)
164 $this->assertEquals(
"foo", $html);
171 new ilJavaScriptBinding($this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false))
174 $this->assertEquals(
'foo<script data-replace-marker="script">id:foo.id content:foo</script>', $html);
182 new ilJavaScriptBinding($this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false))
185 $this->assertEquals(
'foo<script data-replace-marker="script">id:foo.id content:foo</script>', $html);
187 $this->assertEquals(
"foo", $html);
189 $this->assertEquals(
'foo<script data-replace-marker="script">id:foo.id content:foo</script>', $html);
197 new ilJavaScriptBinding($this->getTemplateFactory()->getTemplate(
"tpl.main.html",
false,
false))
199 $html =
$renderer->renderAsync([$c1,$c1]);
200 $this->assertEquals(
'foofoo', $html);
208 $this->component_renderer = $this->createMock(ComponentRenderer::class);
209 $component = $this->createMock(
C\Component::class);
211 $loader = $this->createMock(Loader::class);
212 $loader->method(
'getRendererFor')->willReturn($this->component_renderer);
216 $this->component_renderer->expects($this->once())
228 $this->component_renderer = $this->createMock(ComponentRenderer::class);
229 $component = $this->createMock(
C\Component::class);
230 $root = $this->createMock(Renderer::class);
232 $loader = $this->createMock(Loader::class);
233 $loader->method(
'getRendererFor')->willReturn($this->component_renderer);
237 $this->component_renderer->expects($this->once())
239 ->with($component, $root);
241 $renderer->$render_type($component, $root);
254 $component = $this->createMock(
C\Component::class);
255 $root = $this->createMock(Renderer::class);
259 $root->expects($this->exactly(2))
265 $this->assertEquals(
"..",
$res);
render($component, ?Renderer $root=null)
Render given component.If an array of components is passed, this method returns a concatenated output...
An entity that renders components to a string output.
Wraps global ilTemplate to provide JavaScriptBinding.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testRenderingChainAndContextStack()
Simulates the rendering chain and tests if the contexts are properly stacked.
testGetRendererSuccessfully()
ComponentRenderer $component_renderer
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testComponentListUsesRootToRender()
testPassesSelfAsRootIfNoRootExist($render_type)
getRenderType
LoggingRegistry $resource_registry
testPassesOtherOnAsRoot($render_type)
getRenderType
__construct(Container $dic, ilPlugin $plugin)
testRenderAsyncWithJsTwice()