19 declare(strict_types=1);
    21 require_once(__DIR__ . 
"/../../../../libs/composer/vendor/autoload.php");
    22 require_once(__DIR__ . 
"/../../Base.php");
    36         $this->df = new \ILIAS\Data\Factory();
    41         $this->
language = $this->createMock(ilLanguage::class);
    42         return new I\Input\Field\Factory(
    43             $this->createMock(
I\Input\UploadLimitResolver::class),
    44             new I\SignalGenerator(),
    53         return new I\Modal\Factory(
    54             new I\SignalGenerator(),
    62         return new I\Symbol\Icon\Factory();
    69             public I\Input\Field\Factory $input_factory;
    71             public function button(): C\Button\Factory
    73                 return new I\Button\Factory(
    77             public function symbol(): C\Symbol\Factory
    79                 return new I\Symbol\Factory(
    85             public function modal(): C\Modal\Factory
    87                 return new I\Modal\Factory(
   101         return $this->df->uri(
'http://localhost/ilias.php');
   106         $target = $this->df->link(
'LaunchSomething', $this->
getURI());
   107         return new I\Launcher\Inline(
   118         $html = sha1(
C\MessageBox\MessageBox::class);
   119         $stub = $this->createMock(
C\MessageBox\MessageBox::class);
   120         $stub->method(
'getCanonicalName')->willReturn($html);
   122         return [$stub, $html];
   128         $this->assertInstanceOf(
C\Launcher\Inline::class, $l);
   129         $this->assertEquals($this->df->link(
'LaunchSomething', $this->getURI()), $l->getTarget());
   130         $this->assertEquals(
'LaunchSomething', $l->getButtonLabel());
   131         $this->assertTrue($l->isLaunchable());
   132         $this->assertNull($l->getStatusIcon());
   133         $this->assertNull($l->getStatusMessageBox());
   134         $this->assertNull($l->getModal());
   135         $this->assertNull($l->getModalSubmitLabel());
   136         $this->assertNull($l->getModalCancelLabel());
   143         $some_submit_label = 
'some submit label';
   144         $some_cancel_label = 
'some cancel label';
   146             ->withDescription(
'some description')
   147             ->withButtonLabel(
'different label', 
false)
   148             ->withStatusMessageBox($msg)
   149             ->withStatusIcon($icon)
   150             ->withModalSubmitLabel($some_submit_label)
   151             ->withModalCancelLabel($some_cancel_label)
   154         $this->assertEquals($this->df->link(
'LaunchSomething', $this->getURI()), $l->getTarget());
   155         $this->assertEquals(
'different label', $l->getButtonLabel());
   156         $this->assertfalse($l->isLaunchable());
   157         $this->assertEquals($msg, $l->getStatusMessageBox());
   158         $this->assertEquals($icon, $l->getStatusIcon());
   159         $this->assertNull($l->getModal());
   160         $this->assertEquals($l->getModalSubmitLabel(), $some_submit_label);
   161         $this->assertEquals($l->getModalCancelLabel(), $some_cancel_label);
   167         $field = $ff->checkbox(
'Understood', 
'ok');
   168         $group = $ff->group([$field]);
   169         $evaluation = fn(Result $result, Launcher & $launcher) => 
true;
   172             ->withInputs($group, $evaluation, $instruction);
   174         $this->assertEquals($evaluation, $l->getEvaluation());
   175         $this->assertInstanceOf(
C\
Modal\Roundtrip::class, $l->getModal());
   179             $l->getModal()->getContent()[0]
   182         $ns = 
new class () extends 
I\Input\FormInputNameSource {
   183             public function getNewName(): 
string   185                 return 'form/input_0';
   189             [$field->withNameFrom($ns)],
   190             $l->getModal()->getInputs()
   197         $group = $ff->group([$ff->checkbox(
'Understood', 
'ok')]);
   198         $evaluation = fn(Result $result, Launcher & $launcher) => 
true;
   203             ->withDescription(
'some description')
   204             ->withButtonLabel(
'different label', 
false)
   205             ->withStatusMessageBox($msg)
   206             ->withStatusIcon($icon)
   207             ->withInputs($group, $evaluation, $msg)
   208             ->withModalSubmitLabel(
'some submit label')
   209             ->withModalCancelLabel(
'some cancel label')
   213 <div 
class=
"c-launcher c-launcher--inline" id=
"">
   214     <div 
class=
"c-launcher__status">
   215         <div 
class=
"c-launcher__status__message">$msg_html
   217         <div 
class=
"c-launcher__status__icon"><img 
class=
"icon course small" src=
"./templates/default/images/standard/icon_default.svg" alt=
"some icon"/></div>
   219     <div 
class=
"c-launcher__description">
   222     <
button class=
"btn btn-bulky" id=
"id_5" disabled=
"disabled"><span 
class=
"glyph" role=
"img"><span 
class=
"glyphicon glyphicon-launch" aria-hidden=
"true"></span></span><span 
class=
"bulky-label">different label</span></button>
   223     <div 
class=
"c-launcher__form">
   224         <div 
class=
"modal fade il-modal-roundtrip" tabindex=
"-1" role=
"dialog" id=
"id_1">
   225             <div 
class=
"modal-dialog" role=
"document" data-replace-marker=
"component">
   226                 <div 
class=
"modal-content">
   227                     <div 
class=
"modal-header">
   228                         <button type=
"button" class=
"close" data-dismiss=
"modal" aria-label=
"close"><span aria-hidden=
"true">×</span></button>
   229                         <h1 
class=
"modal-title">different label</h1>
   231                     <div 
class=
"modal-body">$msg_html
   232                         <
form id=
"id_3" role=
"form" class=
"il-standard-form form-horizontal" enctype=
"multipart/form-data" action=
"http://localhost/ilias.php" method=
"post" >
   233                             <div 
class=
"form-group row">
   234                                 <label 
for=
"id_2" class=
"control-label col-sm-4 col-md-3 col-lg-2">Understood</label>
   235                                 <div 
class=
"col-sm-8 col-md-9 col-lg-10">
   236                                     <input type=
"checkbox" id=
"id_2" value=
"checked" name=
"form/input_0" class=
"form-control form-control-sm" />
   237                                     <div 
class=
"help-block">ok</div>
   242                     <div 
class=
"modal-footer">
   243                         <button 
class=
"btn btn-default" id=
"id_4">some submit label</button>
   244                         <button 
class=
"btn btn-default" data-dismiss=
"modal">some cancel label</button>
   253         $actual = 
$r->render($l);
 
getDefaultRenderer(JavaScriptBinding $js_binding=null, array $with_stub_renderings=[])
 
button(string $caption, string $cmd)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
testLauncherInlineBasicModifier()
 
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...
 
brutallyTrimHTML(string $html)
A more radical version of normalizeHTML. 
 
testLauncherInlineRendering()
 
Provides common functionality for UI tests. 
 
testLauncherInlineConstruction()
 
The scope of this class is split ilias-conform URI's into components. 
 
testLauncherInlineWithFields()
 
form( $class_path, string $cmd, string $submit_caption="")
 
modal(string $title="", string $cancel_label="")
 
brutallyTrimSignals(string $html)
A naive replacement of all il_signal-ids with dots to ease comparisons of rendered output...