ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
StandardTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
29 
34 {
35  public function testRenderStandard(): void
36  {
37  $expected_title = 'test_title';
38  $expected_msg = 'test_msg';
39  $expected_url = 'test_url';
40 
41  $expected_html = $this->brutallyTrimHTML('
42 <div id="id_4" class="ui-dropzone ">
43  <div class="modal fade il-modal-roundtrip" tabindex="-1" role="dialog" id="id_1">
44  <div class="modal-dialog" role="document" data-replace-marker="component">
45  <div class="modal-content">
46  <div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="close"><span aria-hidden="true">&times;</span></button><h1 class="modal-title">' . $expected_title . '</h1></div>
47  <div class="modal-body">
48  <form id="id_2" role="form" class="il-standard-form form-horizontal" enctype="multipart/form-data" action="' . $expected_url . '" method="post" >' . $this->input->getCanonicalName() . '</form>
49  </div>
50  <div class="modal-footer"><button class="btn btn-default" id="id_3">save</button><button class="btn btn-default" data-dismiss="modal">cancel</button></div>
51  </div>
52  </div>
53  </div>
54  <div class="ui-dropzone-container"><span class="ui-dropzone-message">' . $expected_msg . '</span></div>
55 </div>
56  ');
57 
58  $dropzone = $this->factory->standard($expected_title, $expected_msg, $expected_url, $this->input);
59 
60  $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
61  $this->input,
62  ])->render($dropzone));
63 
64  $this->assertEquals($expected_html, $html);
65  }
66 
67  public function testRenderStandardWithUploadButton(): void
68  {
69  $expected_button_html = md5(Button::class);
70 
71  $button_mock = $this->createMock(Button::class);
72  $button_mock->method('getCanonicalName')->willReturn($expected_button_html);
73  $button_mock->method('withOnClick')->willReturnSelf();
74 
75  $dropzone = $this->factory->standard('', '', '', $this->input)->withUploadButton($button_mock);
76 
77  $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
78  $button_mock,
79  $this->input,
80  ])->render($dropzone));
81 
82  $this->assertTrue(str_contains($html, $expected_button_html));
83  }
84 
86  {
87  $expected_button_html = md5(Text::class);
88 
89  $additional_input = $this->createMock(Text::class);
90  $additional_input->method('getCanonicalName')->willReturn($expected_button_html);
91  $additional_input->method('isRequired')->willReturn(false);
92  $additional_input->method('withNameFrom')->willReturnSelf();
93 
94  $dropzone = $this->factory->standard('', '', '', $this->input, $additional_input);
95 
96  $html = $this->getDefaultRenderer(null, [
97  $this->input,
98  $additional_input,
99  ])->render($dropzone);
100 
101  $this->assertTrue(str_contains($html, $expected_button_html));
102  }
103 
104  public function testRenderBulky(): void
105  {
106  $expected_title = 'test_title';
107  $expected_msg = 'test_msg';
108  $expected_url = 'test_url';
109 
110  $expected_html = $this->brutallyTrimHTML('
111 <div id="id_4" class="ui-dropzone ui-dropzone-bulky">
112  <div class="modal fade il-modal-roundtrip" tabindex="-1" role="dialog" id="id_1">
113  <div class="modal-dialog" role="document" data-replace-marker="component">
114  <div class="modal-content">
115  <div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="close"><span aria-hidden="true">&times;</span></button><h1 class="modal-title">' . $expected_title . '</h1></div>
116  <div class="modal-body">
117  <form id="id_2" role="form" class="il-standard-form form-horizontal" enctype="multipart/form-data" action="' . $expected_url . '" method="post" >' . $this->input->getCanonicalName() . '</form>
118  </div>
119  <div class="modal-footer"><button class="btn btn-default" id="id_3">save</button><button class="btn btn-default" data-dismiss="modal">cancel</button></div>
120  </div>
121  </div>
122  </div>
123  <div class="ui-dropzone-container"><span class="ui-dropzone-message">' . $expected_msg . '</span></div>
124 </div>
125  ');
126 
127  $dropzone = $this->factory->standard($expected_title, $expected_msg, $expected_url, $this->input)->withBulky(true);
128 
129  $html = $this->brutallyTrimHTML($this->getDefaultRenderer(null, [
130  $this->input,
131  ])->render($dropzone));
132 
133  $this->assertEquals($expected_html, $html);
134  }
135 }
getDefaultRenderer(JavaScriptBinding $js_binding=null, array $with_stub_renderings=[])
Definition: Base.php:377
brutallyTrimHTML(string $html)
A more radical version of normalizeHTML.
Definition: Base.php:475