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...