19 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../../libs/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../../Base.php");
23 require_once(__DIR__ .
"/InputTest.php");
49 public function symbol(): SymbolFactory
66 $html = str_replace(
" />",
"/>", $html);
67 return parent::brutallyTrimHTML($html);
72 $df =
new Data\Factory();
73 $language = $this->createMock(ilLanguage::class);
75 return new I\Input\Field\Factory(
95 public function getFileIdentifierParameterName():
string 100 public function getUploadURL():
string 105 public function getFileRemovalURL():
string 113 public function getExistingFileInfoURL():
string 121 public function getInfoForExistingFiles(array $file_ids): array
126 public function getInfoResult(
string $identifier): ?
FileInfoResult 128 if (null !== $this->file && $identifier === $this->file->getFileIdentifier()) {
135 public function supportsChunkedUploads():
bool 145 $f = $this->buildFactory();
147 $text =
$f->file($this->getUploadHandler(),
"label",
"byline");
150 $this->assertInstanceOf(Field\File::class, $text);
156 $f = $this->buildFactory();
159 $text =
$f->file($this->getUploadHandler(), $label, $byline)->withNameFrom($this->name_source);
161 $r = $this->getDefaultRenderer();
162 $html = $this->brutallyTrimHTML($r->render($text));
164 $expected = $this->brutallyTrimHTML(
' 165 <div class="form-group row"> 166 <label class="control-label col-sm-4 col-md-3 col-lg-2">label</label> 167 <div class="col-sm-8 col-md-9 col-lg-10"> 168 <div id="id_3" class="ui-input-file"> 169 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"></div> 170 <div class="ui-input-file-input-dropzone"> 171 <button class="btn btn-link" data-action="#" id="id_2">select_files_from_computer</button> 172 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 175 <div class="help-block">byline</div> 179 $this->assertEquals($expected, $html);
185 $f = $this->buildFactory();
189 $text =
$f->file($this->getUploadHandler(), $label, $byline)->withNameFrom($this->name_source)->withError($error);
191 $r = $this->getDefaultRenderer();
192 $html = $this->brutallyTrimHTML($r->render($text));
194 $expected = $this->brutallyTrimHTML(
' 195 <div class="form-group row"><label class="control-label col-sm-4 col-md-3 col-lg-2">label</label> 196 <div class="col-sm-8 col-md-9 col-lg-10"> 197 <div class="help-block alert alert-danger" aria-describedby="id_3" role="alert">an_error</div> 198 <div id="id_3" class="ui-input-file"> 199 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"></div> 200 <div class="ui-input-file-input-dropzone"> 201 <button class="btn btn-link" data-action="#" id="id_2">select_files_from_computer</button> 202 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span></div> 204 <div class="help-block">byline</div> 208 $this->assertEquals($expected, $html);
214 $f = $this->buildFactory();
216 $text =
$f->file($this->getUploadHandler(), $label)->withNameFrom($this->name_source);
218 $r = $this->getDefaultRenderer();
219 $html = $this->brutallyTrimHTML($r->render($text));
221 $expected = $this->brutallyTrimHTML(
' 222 <div class="form-group row"><label class="control-label col-sm-4 col-md-3 col-lg-2">label</label> 223 <div class="col-sm-8 col-md-9 col-lg-10"> 224 <div id="id_3" class="ui-input-file"> 225 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"></div> 226 <div class="ui-input-file-input-dropzone"> 227 <button class="btn btn-link" data-action="#" id="id_2">select_files_from_computer</button> 228 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span></div> 233 $this->assertEquals($expected, $html);
239 $test_file_id =
"test_file_id_1";
240 $test_file_name =
"test file name 1";
242 $test_file_info = $this->createMock(FileInfoResult::class);
243 $test_file_info->method(
'getFileIdentifier')->willReturn(
"test_file_id_1");
244 $test_file_info->method(
'getName')->willReturn(
"test file name 1");
245 $test_file_info->method(
'getSize')->willReturn(1001);
247 $file_input = $this->buildFactory()->file(
248 $this->getUploadHandler($test_file_info),
252 ])->withNameFrom($this->name_source);
254 $html = $this->brutallyTrimHTML($this->getDefaultRenderer()->render($file_input));
256 $expected = $this->brutallyTrimHTML(
' 257 <div class="form-group row"> 258 <label class="control-label col-sm-4 col-md-3 col-lg-2"></label> 259 <div class="col-sm-8 col-md-9 col-lg-10"> 260 <div id="id_4" class="ui-input-file"> 261 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"> 262 <div class="ui-input-file-input ui-input-dynamic-input"> 263 <div class="ui-input-file-info"> 264 <span data-action="expand"></span> 265 <span data-action="collapse"></span> 266 <span data-dz-name>test file name 1</span> 267 <span data-dz-size>1 KB</span> 268 <span data-action="remove"> 269 <a tabindex="0" class="glyph" href="#" aria-label="close"> 270 <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> 273 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 275 <div class="ui-input-file-metadata" style="display: none;"> 276 <input id="id_1" type="hidden" name="name_0[input_0][]" value="test_file_id_1"/> 278 <div class="ui-input-file-input-progress-container"> 279 <div class="ui-input-file-input-progress-indicator"></div> 283 <div class="ui-input-file-input-dropzone"> 284 <button class="btn btn-link" data-action="#" id="id_3">select_files_from_computer</button> 285 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 291 $this->assertEquals($expected, $html);
299 $metadata_input =
$factory->text(
"text_input");
301 ($u = $this->getUploadHandler()),
307 $u->getFileIdentifierParameterName() =>
"file_id",
312 $r = $this->getDefaultRenderer();
313 $html = $this->brutallyTrimHTML($r->render($file_input));
315 $expected = $this->brutallyTrimHTML(
' 316 <div class="form-group row"> 317 <label class="control-label col-sm-4 col-md-3 col-lg-2">file_input</label> 318 <div class="col-sm-8 col-md-9 col-lg-10"> 319 <div id="id_6" class="ui-input-file"> 320 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"> 321 <div class="ui-input-file-input ui-input-dynamic-input"> 322 <div class="ui-input-file-info"> 323 <span data-action="expand"> 324 <a tabindex="0" class="glyph" href="#" aria-label="expand_content"> 325 <span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span> 328 <span data-action="collapse"> 329 <a tabindex="0" class="glyph" href="#" aria-label="collapse_content"> 330 <span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span> 333 <span data-dz-name></span> 334 <span data-dz-size></span> 335 <span data-action="remove"> 336 <a tabindex="0" class="glyph" href="#" aria-label="close"> 337 <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> 340 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 342 <div class="ui-input-file-metadata" style="display: none;"> 343 <div class="form-group row"> 344 <label for="id_1" class="control-label col-sm-4 col-md-3 col-lg-2">text_input</label> 345 <div class="col-sm-8 col-md-9 col-lg-10"> 346 <input id="id_1" type="text" name="name_0[input_1][]" class="form-control form-control-sm"/> 349 <input id="id_2" type="hidden" name="name_0[input_2][]" value="file_id"/> 351 <div class="ui-input-file-input-progress-container"> 352 <div class="ui-input-file-input-progress-indicator"></div> 356 <div class="ui-input-file-input-dropzone"> 357 <button class="btn btn-link" data-action="#" id="id_5">select_files_from_computer</button> 358 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 365 $this->assertEquals($expected, $html);
371 $test_file_id =
"test_file_id_1";
372 $test_file_name =
"test file name 1";
374 $test_file_info = $this->createMock(FileInfoResult::class);
375 $test_file_info->method(
'getFileIdentifier')->willReturn(
"test_file_id_1");
376 $test_file_info->method(
'getName')->willReturn(
"test file name 1");
377 $test_file_info->method(
'getSize')->willReturn(1000 * 1000 + 1);
381 $metadata_input =
$factory->text(
"text_input");
383 $u = $this->getUploadHandler($test_file_info),
389 $u->getFileIdentifierParameterName() => $test_file_id,
394 $r = $this->getDefaultRenderer();
395 $html = $this->brutallyTrimHTML($r->render($file_input));
397 $expected = $this->brutallyTrimHTML(
' 398 <div class="form-group row"> 399 <label class="control-label col-sm-4 col-md-3 col-lg-2">file_input</label> 400 <div class="col-sm-8 col-md-9 col-lg-10"> 401 <div id="id_6" class="ui-input-file"> 402 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"> 403 <div class="ui-input-file-input ui-input-dynamic-input"> 404 <div class="ui-input-file-info"> 405 <span data-action="expand"> 406 <a tabindex="0" class="glyph" href="#" aria-label="expand_content"> 407 <span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span> 410 <span data-action="collapse"> 411 <a tabindex="0" class="glyph" href="#" aria-label="collapse_content"> 412 <span class="glyphicon glyphicon-triangle-bottom" aria-hidden="true"></span> 415 <span data-dz-name>test file name 1</span> 416 <span data-dz-size>1 MB</span> 417 <span data-action="remove"> 418 <a tabindex="0" class="glyph" href="#" aria-label="close"> 419 <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> 422 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 424 <div class="ui-input-file-metadata" style="display: none;"> 425 <div class="form-group row"> 426 <label for="id_1" class="control-label col-sm-4 col-md-3 col-lg-2">text_input</label> 427 <div class="col-sm-8 col-md-9 col-lg-10"> 428 <input id="id_1" type="text" value="test" name="name_0[input_1][]" class="form-control form-control-sm"/> 431 <input id="id_2" type="hidden" name="name_0[input_2][]" value="test_file_id_1"/> 433 <div class="ui-input-file-input-progress-container"> 434 <div class="ui-input-file-input-progress-indicator"></div> 438 <div class="ui-input-file-input-dropzone"> 439 <button class="btn btn-link" data-action="#" id="id_5">select_files_from_computer</button> 440 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span> 447 $this->assertEquals($expected, $html);
453 $f = $this->buildFactory();
455 $text =
$f->file($this->getUploadHandler(), $label)->withNameFrom($this->name_source)->withRequired(
true);
457 $r = $this->getDefaultRenderer();
458 $html = $this->brutallyTrimHTML($r->render($text));
460 $expected = $this->brutallyTrimHTML(
' 461 <div class="form-group row"><label class="control-label col-sm-4 col-md-3 col-lg-2">label<span class="asterisk">*</span></label> 462 <div class="col-sm-8 col-md-9 col-lg-10"> 463 <div id="id_3" class="ui-input-file"> 464 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"></div> 465 <div class="ui-input-file-input-dropzone"> 466 <button class="btn btn-link" data-action="#" id="id_2">select_files_from_computer</button> 467 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span></div> 472 $this->assertEquals($expected, $html);
478 $f = $this->buildFactory();
480 $text =
$f->file($this->getUploadHandler(), $label)->withNameFrom($this->name_source)->withDisabled(
true);
482 $r = $this->getDefaultRenderer();
483 $html = $this->brutallyTrimHTML($r->render($text));
485 $expected = $this->brutallyTrimHTML(
' 486 <div class="form-group row"><label class="control-label col-sm-4 col-md-3 col-lg-2">label</label> 487 <div class="col-sm-8 col-md-9 col-lg-10"> 488 <div id="id_3" class="ui-input-file"> 489 <div class="ui-input-file-input-list ui-input-dynamic-inputs-list"></div> 490 <div class="ui-input-file-input-dropzone"> 491 <button class="btn btn-link" data-action="#" id="id_2">select_files_from_computer</button> 492 <span class="ui-input-file-input-error-msg" data-dz-error-msg></span></div> 498 $this->assertEquals($expected, $html);
503 return new I\Button\Factory();
508 return new I\Symbol\Factory(
518 $this->buildButtonFactory(),
519 $this->buildSymbolFactory()
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...
Class ChatMainBarProvider .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Provides common functionality for UI tests.
Interface FileInfoResult.