19declare(strict_types=1);
32use PHPUnit\Framework\Attributes\DataProvider;
33use PHPUnit\Framework\TestCase;
34use PHPUnit\Framework\MockObject\MockObject;
47 protected function setUp(): void
49 $this->default_renderer_factory = $this->createMock(RendererFactory::class);
50 $this->button_renderer_factory = $this->createMock(RendererFactory::class);
51 $this->field_renderer_factory = $this->createMock(RendererFactory::class);
52 $this->message_box_renderer_factory = $this->createMock(RendererFactory::class);
53 $this->form_renderer_factory = $this->createMock(RendererFactory::class);
54 $this->menu_renderer_factory = $this->createMock(RendererFactory::class);
57 $this->default_renderer_factory,
58 $this->button_renderer_factory,
59 $this->field_renderer_factory,
60 $this->message_box_renderer_factory,
61 $this->form_renderer_factory,
62 $this->menu_renderer_factory,
71 ->onlyMethods([
"getRendererFactoryFor",
"getContextNames"])
72 ->disableOriginalConstructor()
77 $rendered_component = $this->createMock(
ILIAS\UI\
Component\Component::class);
79 $component1 = $this->createMock(
ILIAS\UI\
Component\Component::class);
80 $component2 = $this->createMock(
ILIAS\UI\
Component\Component::class);
81 $component_name1 =
"COMPONENT 1";
82 $component_name2 =
"COMPONENT 2";
85 ->expects($this->once())
86 ->method(
"getContextNames")
87 ->with([$component1, $component2])
88 ->willReturn([$component_name1, $component_name2]);
91 ->expects($this->once())
92 ->method(
"getRendererFactoryFor")
93 ->with($rendered_component)
94 ->willReturn($factory);
96 $renderer = $this->createMock(ComponentRenderer::class);
98 ->expects($this->once())
99 ->method(
"getRendererInContext")
100 ->with($rendered_component, [$component_name1, $component_name2])
103 $renderer2 = $loader->getRendererFor($rendered_component, [$component1, $component2]);
104 $this->assertEquals(
$renderer, $renderer2);
109 $component_mock = $this->createMock(FormInput::class);
110 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
111 $this->assertSame($factory, $this->field_renderer_factory);
116 $component_mock = $this->createMock(MessageBox::class);
117 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
118 $this->assertSame($factory, $this->message_box_renderer_factory);
123 $component_mock = $this->createMock(Form::class);
124 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
125 $this->assertSame($factory, $this->form_renderer_factory);
130 $component_mock = $this->createMock(Menu::class);
131 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
132 $this->assertSame($factory, $this->menu_renderer_factory);
137 $component_mock = $this->createMock(Button::class);
138 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
139 $this->assertSame($factory, $this->button_renderer_factory);
144 $component_mock = $this->createMock(Component::class);
145 $factory = $this->fs_loader->getRendererFactoryFor($component_mock);
146 $this->assertSame($factory, $this->default_renderer_factory);
testGetRendererFactoryForFormInput()
testGetRendererFactoryForButton()
RendererFactory &MockObject $button_renderer_factory
RendererFactory &MockObject $default_renderer_factory
RendererFactory &MockObject $menu_renderer_factory
testGetRendererFactoryForOther()
RendererFactory &MockObject $message_box_renderer_factory
testGetRendererFactoryForMenu()
testGetRendererFactoryForMessageBox()
testGetRendererFactoryForForm()
RendererFactory &MockObject $field_renderer_factory
RendererFactory &MockObject $form_renderer_factory
testGetRendererUsesRendererFactory()
Loads renderers for components from the file system.
A component is the most general form of an entity in the UI.
An entity that renders components to a string output.
This is the interface that components should use if they want to load specific renderers.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.