ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
FileInputTest Class Reference
+ Inheritance diagram for FileInputTest:
+ Collaboration diagram for FileInputTest:

Public Member Functions

 setUp ()
 
 testImplementsFactoryInterface ()
 
 testRender ()
 
 testCommonRendering ()
 
 testRenderValue ()
 
 testRenderWithMetadata ()
 
 testRenderWithMetadataValue ()
 
 getUIFactory ()
 

Protected Member Functions

 brutallyTrimHTML (string $html)
 
 buildButtonFactory ()
 
 buildSymbolFactory ()
 

Protected Attributes

DefNamesource $name_source
 

Private Member Functions

 getUploadHandler (?FileInfoResult $file=null)
 

Detailed Description

Definition at line 57 of file FileInputTest.php.

Member Function Documentation

◆ brutallyTrimHTML()

FileInputTest::brutallyTrimHTML ( string  $html)
protected

Definition at line 69 of file FileInputTest.php.

69 : string
70 {
71 $html = str_replace(" />", "/>", $html);
72 return parent::brutallyTrimHTML($html);
73 }

◆ buildButtonFactory()

FileInputTest::buildButtonFactory ( )
protected

Definition at line 417 of file FileInputTest.php.

417 : I\Button\Factory
418 {
419 return new I\Button\Factory();
420 }

Referenced by getUIFactory().

+ Here is the caller graph for this function:

◆ buildSymbolFactory()

FileInputTest::buildSymbolFactory ( )
protected

Definition at line 422 of file FileInputTest.php.

422 : I\Symbol\Factory
423 {
424 return new I\Symbol\Factory(
425 new I\Symbol\Icon\Factory(),
426 new I\Symbol\Glyph\Factory($this->createRelayArgumentLanguageStub()),
427 new I\Symbol\Avatar\Factory()
428 );
429 }
Builds data types.
Definition: Factory.php:36

Referenced by getUIFactory().

+ Here is the caller graph for this function:

◆ getUIFactory()

FileInputTest::getUIFactory ( )

Definition at line 431 of file FileInputTest.php.

References buildButtonFactory(), and buildSymbolFactory().

+ Here is the call graph for this function:

◆ getUploadHandler()

FileInputTest::getUploadHandler ( ?FileInfoResult  $file = null)
private

@inheritDoc

@inheritDoc

Definition at line 75 of file FileInputTest.php.

75 : Field\UploadHandler
76 {
77 return new class ($file) implements Field\UploadHandler {
78 protected ?FileInfoResult $file;
79
80 public function __construct(?FileInfoResult $file)
81 {
82 $this->file = $file;
83 }
84
85 public function getFileIdentifierParameterName(): string
86 {
87 return 'file_id';
88 }
89
90 public function getUploadURL(): string
91 {
92 return 'uploadurl';
93 }
94
95 public function getFileRemovalURL(): string
96 {
97 return 'removalurl';
98 }
99
103 public function getExistingFileInfoURL(): string
104 {
105 return 'infourl';
106 }
107
111 public function getInfoForExistingFiles(array $file_ids): array
112 {
113 return [];
114 }
115
116 public function getInfoResult(string $identifier): ?FileInfoResult
117 {
118 if (null !== $this->file && $identifier === $this->file->getFileIdentifier()) {
119 return $this->file;
120 }
121
122 return null;
123 }
124
125 public function supportsChunkedUploads(): bool
126 {
127 return false;
128 }
129 };
130 }
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
getFileIdentifierParameterName()
Provided by the UploadHandler both users of this trait implement.

References ILIAS\GlobalScreen\Provider\__construct(), and ILIAS\components\ResourceStorage\getFileIdentifierParameterName().

Referenced by testCommonRendering(), testImplementsFactoryInterface(), testRender(), testRenderValue(), testRenderWithMetadata(), and testRenderWithMetadataValue().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setUp()

FileInputTest::setUp ( )

Definition at line 64 of file FileInputTest.php.

64 : void
65 {
66 $this->name_source = new DefNamesource();
67 }

◆ testCommonRendering()

FileInputTest::testCommonRendering ( )

Definition at line 185 of file FileInputTest.php.

185 : void
186 {
187 $f = $this->getFieldFactory();
188 $file_input = $f->file($this->getUploadHandler(), 'label', null)
189 ->withNameFrom($this->name_source);
190 $this->testWithError($file_input);
191 $this->testWithNoByline($file_input);
192 $this->testWithRequired($file_input);
193 $this->testWithDisabled($file_input);
194 $this->testWithAdditionalOnloadCodeRendersId($file_input);
195 }
getUploadHandler(?FileInfoResult $file=null)

References Vendor\Package\$f, and getUploadHandler().

+ Here is the call graph for this function:

◆ testImplementsFactoryInterface()

FileInputTest::testImplementsFactoryInterface ( )

Definition at line 133 of file FileInputTest.php.

133 : void
134 {
135 $f = $this->getFieldFactory();
136
137 $text = $f->file($this->getUploadHandler(), "label", "byline");
138
139 $this->assertInstanceOf(\ILIAS\UI\Component\Input\Container\Form\FormInput::class, $text);
140 $this->assertInstanceOf(Field\File::class, $text);
141 }
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.
$text
Definition: xapiexit.php:21

References Vendor\Package\$f, $text, and getUploadHandler().

+ Here is the call graph for this function:

◆ testRender()

FileInputTest::testRender ( )

Definition at line 144 of file FileInputTest.php.

144 : void
145 {
146 $f = $this->getFieldFactory();
147 $label = "label";
148 $byline = "byline";
149 $file_input = $f->file($this->getUploadHandler(), $label, $byline)->withNameFrom($this->name_source);
150
151 $expected = $this->getFormWrappedHtml(
152 'file-field-input',
153 $label,
154 '
155 <div class="ui-input-file">
156 <div class="ui-input-file-input-list">
157 <template>
158 <div class="ui-input-file-input">
159 <div class="ui-input-file-info"><span data-action="expand"></span><span
160 data-action="collapse"></span><span data-dz-name></span><span data-dz-size></span><span
161 data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span
162 class="ui-input-file-input-error-msg" data-dz-error-msg></span></div>
163 <div class="ui-input-file-metadata" style="display: none;"><input id="id_1" type="hidden"
164 name="name_0[input_0][]" value="" /></div>
165 <div class="ui-input-file-input-progress-container">
166 <div class="ui-input-file-input-progress-indicator"></div>
167 </div>
168 </div>
169 </template>
170 </div>
171 <div class="ui-input-file-input-dropzone">
172 <button type="button" class="btn btn-link" data-action="#" id="id_2">select_file_from_computer</button>
173 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span>
174 </div>
175 <div class="help-block"> file_notice 0 B | ui_file_upload_max_nr 1</div>
176 </div>
177 ',
178 $byline,
179 null,
180 'id_3'
181 );
182 $this->assertEquals($expected, $this->renderInsideContainer($file_input));
183 }

References Vendor\Package\$f, and getUploadHandler().

+ Here is the call graph for this function:

◆ testRenderValue()

FileInputTest::testRenderValue ( )

Definition at line 197 of file FileInputTest.php.

197 : void
198 {
199 $test_file_id = "test_file_id_1";
200 $test_file_name = "test file name 1";
201
202 $test_file_info = $this->createMock(FileInfoResult::class);
203 $test_file_info->method('getFileIdentifier')->willReturn("test_file_id_1");
204 $test_file_info->method('getName')->willReturn("test file name 1");
205 $test_file_info->method('getSize')->willReturn(1001);
206
207 $file_input = $this->getFieldFactory()->file(
208 $this->getUploadHandler($test_file_info),
209 "",
210 )->withValue([
211 $test_file_id,
212 ])->withNameFrom($this->name_source);
213
214 $expected = $this->getFormWrappedHtml(
215 'file-field-input',
216 '',
217 '
218 <div class="ui-input-file">
219 <div class="ui-input-file-input-list">
220 <div class="ui-input-file-input">
221 <div class="ui-input-file-info">
222 <span data-action="expand"></span>
223 <span data-action="collapse"></span>
224 <span data-dz-name>test file name 1</span>
225 <span data-dz-size>1 KB</span>
226 <span data-action="remove">
227 <button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button>
228 </span>
229 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span>
230 </div>
231 <div class="ui-input-file-metadata" style="display: none;">
232 <input id="id_1" type="hidden" name="name_0[input_0][]" value="test_file_id_1"/>
233 </div>
234 <div class="ui-input-file-input-progress-container">
235 <div class="ui-input-file-input-progress-indicator"></div>
236 </div>
237 </div>
238 <template>
239 <div class="ui-input-file-input">
240 <div class="ui-input-file-info"><span data-action="expand"></span><span
241 data-action="collapse"></span><span data-dz-name></span><span data-dz-size></span><span
242 data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span
243 class="ui-input-file-input-error-msg" data-dz-error-msg></span></div>
244 <div class="ui-input-file-metadata" style="display: none;"><input id="id_2" type="hidden"
245 name="name_0[input_0][]" value="" /></div>
246 <div class="ui-input-file-input-progress-container">
247 <div class="ui-input-file-input-progress-indicator"></div>
248 </div>
249 </div>
250 </template>
251 </div>
252 <div class="ui-input-file-input-dropzone">
253 <button type="button" class="btn btn-link" data-action="#" id="id_3">select_file_from_computer</button>
254 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span>
255 </div>
256 <div class="help-block"> file_notice 0 B | ui_file_upload_max_nr 1</div>
257 </div>
258 ',
259 null,
260 null,
261 'id_4'
262 );
263 $this->assertEquals($expected, $this->renderInsideContainer($file_input));
264 }

References getUploadHandler().

+ Here is the call graph for this function:

◆ testRenderWithMetadata()

FileInputTest::testRenderWithMetadata ( )

Definition at line 267 of file FileInputTest.php.

267 : void
268 {
269 $factory = $this->getFieldFactory();
270 $label = 'file_input';
271 $metadata_input = $factory->text("text_input");
272 $file_input = $factory->file(
273 ($u = $this->getUploadHandler()),
274 $label,
275 null,
276 $metadata_input
277 )->withValue([
278 [
279 "file_id",
280 ""
281 ]
282 ])->withNameFrom($this->name_source);
283
284 $expected = $this->getFormWrappedHtml(
285 'file-field-input',
286 $label,
287 '
288 <div class="ui-input-file">
289 <div class="ui-input-file-input-list">
290 <div class="ui-input-file-input">
291 <div class="ui-input-file-info"><span data-action="expand"><button type="button" class="btn btn-link" aria-label="expand_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span></span></button></span><span data-action="collapse"><button type="button" class="btn btn-link" aria-label="collapse_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span></span></button></span><span data-dz-name></span><span
292 data-dz-size></span><span data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span class="ui-input-file-input-error-msg"
293 data-dz-error-msg></span></div>
294 <div class="ui-input-file-metadata" style="display: none;"><input id="id_1" type="hidden"
295 name="name_0[input_1][]" value="file_id" />
296 <fieldset class="c-input" data-il-ui-component="text-field-input"
297 data-il-ui-input-name="name_0[input_2][]"><label for="id_2">text_input</label>
298 <div class="c-input__field"><input id="id_2" type="text" name="name_0[input_2][]"
299 class="c-field-text" /></div>
300 </fieldset>
301 </div>
302 <div class="ui-input-file-input-progress-container">
303 <div class="ui-input-file-input-progress-indicator"></div>
304 </div>
305 </div><template>
306 <div class="ui-input-file-input">
307 <div class="ui-input-file-info"><span data-action="expand"><button type="button" class="btn btn-link" aria-label="expand_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span></span></button></span><span data-action="collapse"><button type="button" class="btn btn-link" aria-label="collapse_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span></span></button></span><span data-dz-name></span><span
308 data-dz-size></span><span data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span class="ui-input-file-input-error-msg"
309 data-dz-error-msg></span></div>
310 <div class="ui-input-file-metadata" style="display: none;"><input id="id_3" type="hidden"
311 name="name_0[input_1][]" value="" />
312 <fieldset class="c-input" data-il-ui-component="text-field-input"
313 data-il-ui-input-name="name_0[input_2][]"><label for="id_4">text_input</label>
314 <div class="c-input__field"><input id="id_4" type="text" name="name_0[input_2][]"
315 class="c-field-text" /></div>
316 </fieldset>
317 </div>
318 <div class="ui-input-file-input-progress-container">
319 <div class="ui-input-file-input-progress-indicator"></div>
320 </div>
321 </div>
322 </template>
323 </div>
324 <div class="ui-input-file-input-dropzone"><button type="button" class="btn btn-link" data-action="#"
325 id="id_5">select_file_from_computer</button><span class="ui-input-file-input-error-msg"
326 data-dz-error-msg></span></div>
327 <div class="help-block"> file_notice 0 B | ui_file_upload_max_nr 1</div>
328 </div>
329 ',
330 null,
331 null,
332 'id_6',
333 );
334 $this->assertEquals($expected, $this->renderInsideContainer($file_input));
335 }

References getUploadHandler().

+ Here is the call graph for this function:

◆ testRenderWithMetadataValue()

FileInputTest::testRenderWithMetadataValue ( )

Definition at line 338 of file FileInputTest.php.

338 : void
339 {
340 $test_file_id = "test_file_id_1";
341 $test_file_name = "test file name 1";
342
343 $test_file_info = $this->createMock(FileInfoResult::class);
344 $test_file_info->method('getFileIdentifier')->willReturn("test_file_id_1");
345 $test_file_info->method('getName')->willReturn("test file name 1");
346 $test_file_info->method('getSize')->willReturn(1000 * 1000 + 1);
347
348 $factory = $this->getFieldFactory();
349 $label = 'file_input';
350 $metadata_input = $factory->text("text_input");
351 $file_input = $factory->file(
352 $u = $this->getUploadHandler($test_file_info),
353 $label,
354 null,
355 $metadata_input
356 )->withValue([
357 [
358 $test_file_id,
359 "test",
360 ]
361 ])->withNameFrom($this->name_source);
362
363
364 $expected = $this->getFormWrappedHtml(
365 'file-field-input',
366 $label,
367 '
368 <div class="ui-input-file">
369 <div class="ui-input-file-input-list">
370 <div class="ui-input-file-input">
371 <div class="ui-input-file-info"><span data-action="expand"><button type="button" class="btn btn-link" aria-label="expand_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span></span></button></span><span data-action="collapse"><button type="button" class="btn btn-link" aria-label="collapse_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span></span></button></span><span data-dz-name>test file name 1</span><span
372 data-dz-size>1 MB</span><span data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span class="ui-input-file-input-error-msg"
373 data-dz-error-msg></span></div>
374 <div class="ui-input-file-metadata" style="display: none;"><input id="id_1" type="hidden"
375 name="name_0[input_1][]" value="test_file_id_1" />
376 <fieldset class="c-input" data-il-ui-component="text-field-input"
377 data-il-ui-input-name="name_0[input_2][]"><label for="id_2">text_input</label>
378 <div class="c-input__field"><input id="id_2" type="text" value="test"
379 name="name_0[input_2][]" class="c-field-text" /></div>
380 </fieldset>
381 </div>
382 <div class="ui-input-file-input-progress-container">
383 <div class="ui-input-file-input-progress-indicator"></div>
384 </div>
385 </div><template>
386 <div class="ui-input-file-input">
387 <div class="ui-input-file-info"><span data-action="expand"><button type="button" class="btn btn-link" aria-label="expand_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span></span></button></span><span data-action="collapse"><button type="button" class="btn btn-link" aria-label="collapse_content" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span></span></button></span><span data-dz-name></span><span
388 data-dz-size></span><span data-action="remove"><button type="button" class="btn btn-link" aria-label="close" data-action=""><span class="glyph" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></span></button></span><span class="ui-input-file-input-error-msg"
389 data-dz-error-msg></span></div>
390 <div class="ui-input-file-metadata" style="display: none;"><input id="id_3" type="hidden"
391 name="name_0[input_1][]" value="" />
392 <fieldset class="c-input" data-il-ui-component="text-field-input"
393 data-il-ui-input-name="name_0[input_2][]"><label for="id_4">text_input</label>
394 <div class="c-input__field"><input id="id_4" type="text" name="name_0[input_2][]"
395 class="c-field-text" /></div>
396 </fieldset>
397 </div>
398 <div class="ui-input-file-input-progress-container">
399 <div class="ui-input-file-input-progress-indicator"></div>
400 </div>
401 </div>
402 </template>
403 </div>
404 <div class="ui-input-file-input-dropzone"><button type="button" class="btn btn-link" data-action="#"
405 id="id_5">select_file_from_computer</button><span class="ui-input-file-input-error-msg"
406 data-dz-error-msg></span></div>
407 <div class="help-block"> file_notice 0 B | ui_file_upload_max_nr 1</div>
408 </div>
409 ',
410 null,
411 null,
412 'id_6'
413 );
414 $this->assertEquals($expected, $this->renderInsideContainer($file_input));
415 }

References getUploadHandler().

+ Here is the call graph for this function:

Field Documentation

◆ $name_source

DefNamesource FileInputTest::$name_source
protected

Definition at line 62 of file FileInputTest.php.


The documentation for this class was generated from the following file: