ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
StandardTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
28use ILIAS\UI\Component\Input\Field\Input;
29
30require_once("./components/ILIAS/UI/tests/Component/Dropzone/File/FileTestBase.php");
31
36{
37 public function testRenderStandard(): void
38 {
39 $expected_title = 'test_title';
40 $expected_msg = 'test_msg';
41 $expected_url = 'test_url';
42
43 $expected_html = $this->brutallyTrimHTML('
44<div id="id_4" class="ui-dropzone ">
45 <dialog class="c-modal il-modal-roundtrip" tabindex="-1" id="id_1">
46 <div class="modal-dialog" role="document" data-replace-marker="component">
47 <div class="modal-content">
48 <div class="modal-header"><form><button formmethod="dialog" class="close" aria-label="close"><span aria-hidden="true">&times;</span></button></form><h1 class="modal-title">' . $expected_title . ' </h1></div>
49 <div class="modal-body">
50 <form id="id_2" class="c-form c-form--horizontal" enctype="multipart/form-data" action="' . $expected_url . '" method="post">' . $this->input->getCanonicalName() . '</form>
51 </div>
52 <div class="modal-footer"><form><button class="btn btn-default" id="id_3">save</button><button formmethod="dialog" class="btn btn-default" data-dismiss="modal">cancel</button></form></div>
53 </div>
54 </div>
55 </dialog>
56 <div class="ui-dropzone-container"><span class="ui-dropzone-message">' . $expected_msg . '</span></div>
57</div>
58 ');
59
60 $dropzone = $this->factory->standard($expected_title, $expected_msg, $expected_url, $this->input);
61
62 $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
63 $this->input,
64 ])->render($dropzone));
65
66 $this->assertEquals($expected_html, $html);
67 }
68
69 public function testRenderStandardWithUploadButton(): void
70 {
71 $expected_button_html = md5(Button::class);
72
73 $button_mock = $this->createMock(Button::class);
74 $button_mock->method('getCanonicalName')->willReturn($expected_button_html);
75 $button_mock->method('withOnClick')->willReturnSelf();
76
77 $dropzone = $this->factory->standard('', '', '', $this->input)->withUploadButton($button_mock);
78
79 $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
80 $button_mock,
81 $this->input,
82 ])->render($dropzone));
83
84 $this->assertTrue(str_contains($html, $expected_button_html));
85 }
86
88 {
89 $expected_button_html = md5(Text::class);
90
91 $additional_input = $this->createMock(Text::class);
92 $additional_input->method('getCanonicalName')->willReturn($expected_button_html);
93 $additional_input->method('isRequired')->willReturn(false);
94 $additional_input->method('withNameFrom')->willReturnSelf();
95
96 $dropzone = $this->factory->standard('', '', '', $this->input, $additional_input);
97
98 $html = $this->getDefaultRenderer(null, [
99 $this->input,
100 $additional_input,
101 ])->render($dropzone);
102
103 $this->assertTrue(str_contains($html, $expected_button_html));
104 }
105
106 public function testRenderBulky(): void
107 {
108 $expected_title = 'test_title';
109 $expected_msg = 'test_msg';
110 $expected_url = 'test_url';
111
112 $expected_html = $this->brutallyTrimHTML('
113<div id="id_4" class="ui-dropzone ui-dropzone-bulky">
114 <dialog class="c-modal il-modal-roundtrip" tabindex="-1" id="id_1">
115 <div class="modal-dialog" role="document" data-replace-marker="component">
116 <div class="modal-content">
117 <div class="modal-header"><form><button formmethod="dialog" class="close" aria-label="close"><span aria-hidden="true">&times;</span></button></form><h1 class="modal-title">' . $expected_title . ' </h1></div>
118 <div class="modal-body">
119 <form id="id_2" class="c-form c-form--horizontal" enctype="multipart/form-data" action="' . $expected_url . '" method="post">' . $this->input->getCanonicalName() . '</form>
120 </div>
121 <div class="modal-footer"><form><button class="btn btn-default" id="id_3">save</button><button formmethod="dialog" class="btn btn-default" data-dismiss="modal">cancel</button></form></div>
122 </div>
123 </div>
124 </dialog>
125 <div class="ui-dropzone-container"><span class="ui-dropzone-message">' . $expected_msg . '</span></div>
126</div>
127 ');
128
129 $dropzone = $this->factory->standard($expected_title, $expected_msg, $expected_url, $this->input)->withBulky(true);
130
131 $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
132 $this->input,
133 ])->render($dropzone));
134
135 $this->assertEquals($expected_html, $html);
136 }
137}
factory()
This implements commonalities between standard and primary buttons.
Definition: Button.php:35
This implements the text input.
Definition: Text.php:33
Provides methods to interface with javascript.