ILIAS  release_8 Revision v8.24
ToggleButtonTest Class Reference

Test Toggle Button. More...

+ Inheritance diagram for ToggleButtonTest:
+ Collaboration diagram for ToggleButtonTest:

Public Member Functions

 getFactory ()
 
 test_implements_factory_interface ()
 
 test_construction_action_on_type_wrong ()
 
 test_construction_action_off_type_wrong ()
 
 test_setOn_on_default ()
 
 test_append_OnAction ()
 
 test_append_OffAction ()
 
 test_render_with_label ()
 
 test_render_setOn_on_default ()
 
 test_render_with_signals ()
 
 test_append_UnavailAction (Toggle $button)
 @depends test_render_setOn_on_default More...
 
- Public Member Functions inherited from ILIAS_UI_TestBase
 setUp ()
 
 tearDown ()
 
 getUIFactory ()
 
 getTemplateFactory ()
 
 getResourceRegistry ()
 
 getLanguage ()
 
 getJavaScriptBinding ()
 
 getRefinery ()
 
 getImagePathResolver ()
 
 getDataFactory ()
 
 getDefaultRenderer (JavaScriptBinding $js_binding=null, array $with_stub_renderings=[])
 
 getDecoratedRenderer (Renderer $default)
 
 normalizeHTML (string $html)
 
 assertHTMLEquals (string $expected_html_as_string, string $html_as_string)
 

Additional Inherited Members

- Protected Member Functions inherited from ILIAS_UI_TestBase
 brutallyTrimHTML (string $html)
 A more radical version of normalizeHTML. More...
 
 brutallyTrimSignals (string $html)
 A naive replacement of all il_signal-ids with dots to ease comparisons of rendered output. More...
 

Detailed Description

Test Toggle Button.

Definition at line 31 of file ToggleButtonTest.php.

Member Function Documentation

◆ getFactory()

◆ test_append_OffAction()

ToggleButtonTest::test_append_OffAction ( )

Definition at line 91 of file ToggleButtonTest.php.

91 : void
92 {
93 $f = $this->getFactory();
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());
98
99 $button = $button->withAdditionalToggleOffSignal($signal_off2);
100 $this->assertEquals([$signal_off1, $signal_off2], $button->getActionOff());
101 }

References Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

◆ test_append_OnAction()

ToggleButtonTest::test_append_OnAction ( )

Definition at line 78 of file ToggleButtonTest.php.

78 : void
79 {
80 $f = $this->getFactory();
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());
86
87 $button = $button->withAdditionalToggleOnSignal($signal_on2);
88 $this->assertEquals([$signal_on1, $signal_on2], $button->getActionOn());
89 }

References Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

◆ test_append_UnavailAction()

ToggleButtonTest::test_append_UnavailAction ( Toggle  $button)

@depends test_render_setOn_on_default

Definition at line 162 of file ToggleButtonTest.php.

162 : void
163 {
164 $r = $this->getDefaultRenderer();
165 $button = $button->withUnavailableAction();
166
167 $html = $r->render($button);
168
169 $expected = ''
170 . '<button class="il-toggle-button unavailable" aria-pressed="false" disabled="disabled">'
171 . ' <span class="il-toggle-switch"></span>'
172 . '</button>';
173
174 $this->assertHTMLEquals(
175 $expected,
176 $html
177 );
178 }
assertHTMLEquals(string $expected_html_as_string, string $html_as_string)
Definition: Base.php:427
getDefaultRenderer(JavaScriptBinding $js_binding=null, array $with_stub_renderings=[])
Definition: Base.php:355
withUnavailableAction()
Get a button like this, but action should be unavailable atm.

References ILIAS_UI_TestBase\assertHTMLEquals(), ILIAS_UI_TestBase\getDefaultRenderer(), and ILIAS\UI\Component\Button\Button\withUnavailableAction().

+ Here is the call graph for this function:

◆ test_construction_action_off_type_wrong()

ToggleButtonTest::test_construction_action_off_type_wrong ( )

Definition at line 59 of file ToggleButtonTest.php.

59 : void
60 {
61 $f = $this->getFactory();
62 try {
63 $f->toggle("label", "action_on_string", 2);
64 $this->assertFalse("This should not happen");
65 } catch (\InvalidArgumentException $e) {
66 $this->assertTrue(true);
67 }
68 }

References Vendor\Package\$e, Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

◆ test_construction_action_on_type_wrong()

ToggleButtonTest::test_construction_action_on_type_wrong ( )

Definition at line 48 of file ToggleButtonTest.php.

48 : void
49 {
50 $f = $this->getFactory();
51 try {
52 $f->toggle("label", 1, "action_off_string");
53 $this->assertFalse("This should not happen");
54 } catch (\InvalidArgumentException $e) {
55 $this->assertTrue(true);
56 }
57 }

References Vendor\Package\$e, Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

◆ test_implements_factory_interface()

ToggleButtonTest::test_implements_factory_interface ( )

Definition at line 38 of file ToggleButtonTest.php.

38 : void
39 {
40 $f = $this->getFactory();
41
42 $this->assertInstanceOf(
43 "ILIAS\\UI\\Component\\Button\\Toggle",
44 $f->toggle("label", "action_on_string", "action_off_string")
45 );
46 }

References Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

◆ test_render_setOn_on_default()

ToggleButtonTest::test_render_setOn_on_default ( )

Definition at line 120 of file ToggleButtonTest.php.

120 : Toggle
121 {
122 $r = $this->getDefaultRenderer();
123 $button = $this->getFactory()->toggle("", "action_on_string", "action_off_string", true);
124
125 $expected = ''
126 . '<button class="il-toggle-button on" id="id_1" aria-pressed="false">' //aria-pressed is set to "true" by JS
127 . ' <span class="il-toggle-label-on">toggle_on</span>'
128 . ' <span class="il-toggle-label-off">toggle_off</span>'
129 . ' <span class="il-toggle-switch"></span>'
130 . '</button>';
131
132 $this->assertHTMLEquals($expected, $r->render($button));
133 return $button;
134 }
This describes a toggle button.
Definition: Toggle.php:29

References ILIAS_UI_TestBase\assertHTMLEquals(), ILIAS_UI_TestBase\getDefaultRenderer(), and getFactory().

+ Here is the call graph for this function:

◆ test_render_with_label()

ToggleButtonTest::test_render_with_label ( )

Definition at line 103 of file ToggleButtonTest.php.

103 : void
104 {
105 $r = $this->getDefaultRenderer();
106 $button = $this->getFactory()->toggle("label", "action_on_string", "action_off_string");
107
108 $expected = <<<EOT
109 <label>label</label>
110<button class="il-toggle-button off" id="id_1" aria-pressed="false">
111 <span class="il-toggle-label-on">toggle_on</span>
112 <span class="il-toggle-label-off">toggle_off</span>
113 <span class="il-toggle-switch"></span>
114</button>
115EOT;
116
117 $this->assertHTMLEquals("<div>" . $expected . "</div>", "<div>" . $r->render($button) . "</div>");
118 }

References ILIAS_UI_TestBase\assertHTMLEquals(), ILIAS_UI_TestBase\getDefaultRenderer(), and getFactory().

+ Here is the call graph for this function:

◆ test_render_with_signals()

ToggleButtonTest::test_render_with_signals ( )

Definition at line 136 of file ToggleButtonTest.php.

136 : void
137 {
138 $r = $this->getDefaultRenderer();
139 $signal_on = $this->createMock(Signal::class);
140 $signal_on->method("__toString")
141 ->willReturn("MOCK_SIGNAL");
142 $signal_off = $this->createMock(Signal::class);
143 $signal_off->method("__toString")
144 ->willReturn("MOCK_SIGNAL");
145 $button = $this->getFactory()->toggle("label", $signal_on, $signal_off);
146
147 $expected = <<<EOT
148 <label>label</label>
149<button class="il-toggle-button off" id="id_1" aria-pressed="false">
150 <span class="il-toggle-label-on">toggle_on</span>
151 <span class="il-toggle-label-off">toggle_off</span>
152 <span class="il-toggle-switch"></span>
153</button>
154EOT;
155
156 $this->assertHTMLEquals("<div>" . $expected . "</div>", "<div>" . $r->render($button) . "</div>");
157 }

References ILIAS_UI_TestBase\assertHTMLEquals(), ILIAS_UI_TestBase\getDefaultRenderer(), and getFactory().

+ Here is the call graph for this function:

◆ test_setOn_on_default()

ToggleButtonTest::test_setOn_on_default ( )

Definition at line 70 of file ToggleButtonTest.php.

70 : void
71 {
72 $f = $this->getFactory();
73 $button = $f->toggle("label", "action_on_string", "action_off_string", true);
74
75 $this->assertTrue($button->isEngaged());
76 }

References Vendor\Package\$f, and getFactory().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: