19 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../../../vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../Base.php");
36 $this->df = new \ILIAS\Data\Factory();
41 $this->
language = $this->createMock(
ILIAS\Language\Language::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(),
55 new I\Modal\InterruptiveItem\Factory(),
62 return new I\Symbol\Icon\Factory();
68 public I\SignalGenerator $sig_gen;
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(
80 new I\Symbol\
Icon\Factory(),
81 new I\Symbol\Glyph\Factory(),
82 new I\Symbol\Avatar\Factory()
85 public function modal(): C\Modal\Factory
87 return new I\Modal\Factory(
89 new I\Modal\InterruptiveItem\Factory(),
94 $factory->sig_gen =
new I\SignalGenerator();
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">
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=
"./assets/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 <dialog
class=
"c-modal il-modal-roundtrip" tabindex=
"-1" 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 <
form><button formmethod=
"dialog" class=
"close" aria-label=
"close"><span aria-hidden=
"true">×</span></button></
form>
229 <h1
class=
"modal-title">different label</h1>
231 <div
class=
"modal-body">$msg_html
232 <
form id=
"id_3" class=
"c-form c-form--horizontal" enctype=
"multipart/form-data" action=
"http://localhost/ilias.php" method=
"post">
233 <fieldset
class=
"c-input" data-il-
ui-component=
"checkbox-field-input" data-il-
ui-input-name=
"form/input_0">
234 <label
for=
"id_2">Understood</label>
235 <div
class=
"c-input__field">
236 <input type=
"checkbox" id=
"id_2" value=
"checked" name=
"form/input_0" class=
"c-field-checkbox" />
238 <div
class=
"c-input__help-byline">ok</div>
242 <div
class=
"modal-footer">
244 <button
class=
"btn btn-default" id=
"id_4">some submit label</button>
245 <button formmethod=
"dialog" class=
"btn btn-default" data-dismiss=
"modal">some cancel label</button>
254 $r = $this->getDefaultRenderer(null, [$msg]);
255 $actual =
$r->render($l);
257 $this->brutallyTrimSignals($this->brutallyTrimHTML($expected)),
258 $this->brutallyTrimSignals($this->brutallyTrimHTML($actual))
button(string $caption, string $cmd)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testLauncherInlineBasicModifier()
Interface Observer Contains several chained tasks and infos about them.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS Language Language $language
testLauncherInlineRendering()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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="")
language()
description: > Example for rendring a language glyph.