19 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../../../vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../Base.php");
42 $this->assertInstanceOf(
43 "ILIAS\\UI\\Component\\Button\\Toggle",
44 $f->toggle(
"label",
"action_on_string",
"action_off_string")
52 $f->toggle(
"label", 1,
"action_off_string");
53 $this->assertFalse(
"This should not happen");
55 $this->assertTrue(
true);
63 $f->toggle(
"label",
"action_on_string", 2);
64 $this->assertFalse(
"This should not happen");
66 $this->assertTrue(
true);
73 $button =
$f->toggle(
"label",
"action_on_string",
"action_off_string",
true);
75 $this->assertTrue($button->isEngaged());
81 $signal_on1 = $this->createMock(Signal::class);
82 $signal_on2 = $this->createMock(Signal::class);
83 $signal_off = $this->createMock(Signal::class);
84 $button =
$f->toggle(
"label", $signal_on1, $signal_off);
85 $this->assertEquals([$signal_on1], $button->getActionOn());
87 $button = $button->withAdditionalToggleOnSignal($signal_on2);
88 $this->assertEquals([$signal_on1, $signal_on2], $button->getActionOn());
94 $signal_off1 = $this->createMock(Signal::class);
95 $signal_off2 = $this->createMock(Signal::class);
96 $button =
$f->toggle(
"label",
"action_on", $signal_off1);
97 $this->assertEquals([$signal_off1], $button->getActionOff());
99 $button = $button->withAdditionalToggleOffSignal($signal_off2);
100 $this->assertEquals([$signal_off1, $signal_off2], $button->getActionOff());
105 $r = $this->getDefaultRenderer();
106 $button = $this->
getFactory()->toggle(
"label",
"action_on_string",
"action_off_string");
109 <div
class=
"il-toggle-item">
111 <
button class=
"il-toggle-button off" id=
"id_1" aria-pressed=
"false">
112 <span
class=
"il-toggle-label-on">toggle_on</span>
113 <span
class=
"il-toggle-label-off">toggle_off</span>
114 <span
class=
"il-toggle-switch"></span>
119 $this->assertHTMLEquals(
"<div>" . $expected .
"</div>",
"<div>" .
$r->render($button) .
"</div>");
122 public function testRenderSetOnOnDefault():
Toggle 124 $r = $this->getDefaultRenderer();
125 $button = $this->
getFactory()->toggle(
"",
"action_on_string",
"action_off_string",
true);
128 .
'<div class="il-toggle-item">' 129 .
' <button class="il-toggle-button on" id="id_1" aria-pressed="false">' 130 .
' <span class="il-toggle-label-on">toggle_on</span>' 131 .
' <span class="il-toggle-label-off">toggle_off</span>' 132 .
' <span class="il-toggle-switch"></span>' 136 $this->assertHTMLEquals($expected,
$r->render($button));
140 public function testRenderWithSignals():
void 142 $r = $this->getDefaultRenderer();
143 $signal_on = $this->createMock(Signal::class);
144 $signal_on->method(
"__toString")
145 ->willReturn(
"MOCK_SIGNAL");
146 $signal_off = $this->createMock(Signal::class);
147 $signal_off->method(
"__toString")
148 ->willReturn(
"MOCK_SIGNAL");
149 $button = $this->
getFactory()->toggle(
"label", $signal_on, $signal_off);
152 <div
class=
"il-toggle-item">
154 <
button class=
"il-toggle-button off" id=
"id_1" aria-pressed=
"false">
155 <span
class=
"il-toggle-label-on">toggle_on</span>
156 <span
class=
"il-toggle-label-off">toggle_off</span>
157 <span
class=
"il-toggle-switch"></span>
162 $this->assertHTMLEquals(
"<div>" . $expected .
"</div>",
"<div>" .
$r->render($button) .
"</div>");
165 #[\PHPUnit\Framework\Attributes\Depends('testRenderSetOnOnDefault')] 168 $r = $this->getDefaultRenderer();
171 $html =
$r->render($button);
174 .
'<div class="il-toggle-item">' 175 .
' <button class="il-toggle-button unavailable" aria-pressed="false" disabled="disabled">' 176 .
' <span class="il-toggle-switch"></span>' 180 $this->assertHTMLEquals(
button(string $caption, string $cmd)
Interface Observer Contains several chained tasks and infos about them.