ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
PanelSecondaryLegacyTest Class Reference

Test secondary legacy panels. More...

+ Inheritance diagram for PanelSecondaryLegacyTest:
+ Collaboration diagram for PanelSecondaryLegacyTest:

Public Member Functions

 getUIFactory ()
 
 testImplementsFactoryInterface ()
 
 testGetTitle ()
 
 testGetLegacyComponent ()
 
 testWithActions ()
 
 testWithoutViewControls ()
 
 testWithSortationViewControl ()
 
 testWithPaginationViewControl ()
 
 testWithSectionViewControl ()
 
 testRenderPanelSecondaryWithActions ()
 
 testRenderPanelSecondaryWithSortation ()
 
 testRenderPanelSecondaryWithPagination ()
 
 testRenderPanelSecondaryWithSection ()
 
 testRenderPanelSecondaryWithFooter ()
 
 testRenderPanelSecondaryWithNoHeader ()
 

Protected Member Functions

 cleanHTML (string $html)
 

Detailed Description

Test secondary legacy panels.

Definition at line 31 of file PanelSecondaryLegacyTest.php.

Member Function Documentation

◆ cleanHTML()

PanelSecondaryLegacyTest::cleanHTML ( string  $html)
protected

Definition at line 73 of file PanelSecondaryLegacyTest.php.

73  : string
74  {
75  $html = str_replace(["\n", "\t"], "", $html);
76 
77  return trim($html);
78  }

◆ getUIFactory()

PanelSecondaryLegacyTest::getUIFactory ( )

Definition at line 33 of file PanelSecondaryLegacyTest.php.

References Vendor\Package\$f, ILIAS\Repository\button(), ILIAS\UI\examples\MainControls\Slate\Legacy\legacy(), and ILIAS\Repository\symbol().

Referenced by testGetLegacyComponent(), testGetTitle(), testImplementsFactoryInterface(), testRenderPanelSecondaryWithActions(), testRenderPanelSecondaryWithFooter(), testRenderPanelSecondaryWithNoHeader(), testRenderPanelSecondaryWithPagination(), testRenderPanelSecondaryWithSection(), testRenderPanelSecondaryWithSortation(), testWithActions(), testWithoutViewControls(), testWithPaginationViewControl(), testWithSectionViewControl(), and testWithSortationViewControl().

33  : NoUIFactory
34  {
35  return new class () extends NoUIFactory {
36  public function legacyPanel(string $title, C\Legacy\Legacy $content): I\Component\Panel\Secondary\Legacy
37  {
38  return new I\Component\Panel\Secondary\Legacy($title, $content);
39  }
40 
41  public function legacy(string $content): C\Legacy\Legacy
42  {
43  $f = new I\Component\Legacy\Factory(new I\Component\SignalGenerator());
44  return $f->legacy($content);
45  }
46 
47  public function dropdown(): C\Dropdown\Factory
48  {
49  return new I\Component\Dropdown\Factory();
50  }
51 
52  public function viewControl(): C\ViewControl\Factory
53  {
54  return new I\Component\ViewControl\Factory(new SignalGenerator());
55  }
56 
57  public function button(): C\Button\Factory
58  {
59  return new I\Component\Button\Factory();
60  }
61 
62  public function symbol(): C\Symbol\Factory
63  {
64  return new I\Component\Symbol\Factory(
65  new I\Component\Symbol\Icon\Factory(),
66  new I\Component\Symbol\Glyph\Factory(),
67  new I\Component\Symbol\Avatar\Factory()
68  );
69  }
70  };
71  }
button(string $caption, string $cmd)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
legacy()
expected output: > ILIAS shows the rendered Component.
Definition: legacy.php:13
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ testGetLegacyComponent()

PanelSecondaryLegacyTest::testGetLegacyComponent ( )

Definition at line 96 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

96  : void
97  {
98  $legacy = $this->getUIFactory()->legacy("Legacy content");
99  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy);
100 
101  $this->assertEquals($secondary_panel->getLegacyComponent(), $legacy);
102  }
+ Here is the call graph for this function:

◆ testGetTitle()

PanelSecondaryLegacyTest::testGetTitle ( )

Definition at line 88 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

88  : void
89  {
90  $legacy = $this->getUIFactory()->legacy("Legacy content");
91  $secondary_panel = $this->getUIFactory()->legacyPanel("Title", $legacy);
92 
93  $this->assertEquals("Title", $secondary_panel->getTitle());
94  }
+ Here is the call graph for this function:

◆ testImplementsFactoryInterface()

PanelSecondaryLegacyTest::testImplementsFactoryInterface ( )

Definition at line 80 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

80  : void
81  {
82  $legacy = $this->getUIFactory()->legacy("Legacy content");
83  $secondary_panel = $this->getUIFactory()->legacyPanel("List Title", $legacy);
84 
85  $this->assertInstanceOf("ILIAS\\UI\\Component\\Panel\\Secondary\\Legacy", $secondary_panel);
86  }
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithActions()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithActions ( )

Definition at line 180 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

180  : void
181  {
182  $legacy = $this->getUIFactory()->legacy("Legacy content");
183  $actions = $this->getUIFactory()->dropdown()->standard(array(
184  $this->getUIFactory()->button()->shy("ILIAS", "https://www.ilias.de"),
185  $this->getUIFactory()->button()->shy("Github", "https://www.github.com")
186  ));
187 
188  $sec = $this->getUIFactory()->legacyPanel("Title", $legacy)->withActions($actions);
189 
190  $html = $this->getDefaultRenderer()->render($sec);
191 
192  $expected_html = <<<EOT
193 <div class="panel panel-secondary panel-flex">
194  <div class="panel-heading ilHeader">
195  <div class="panel-title"><h2>Title</h2></div>
196  <div class="panel-controls">
197  <div class="dropdown" id="id_3"><button class="btn btn-default dropdown-toggle" type="button" aria-label="actions" aria-haspopup="true" aria-expanded="false" aria-controls="id_3_menu" ><span class="caret"></span></button>
198  <ul id="id_3_menu" class="dropdown-menu">
199  <li><button class="btn btn-link" data-action="https://www.ilias.de" id="id_1">ILIAS</button></li>
200  <li><button class="btn btn-link" data-action="https://www.github.com" id="id_2">Github</button></li>
201  </ul>
202  </div>
203  </div>
204  </div>
205 
206  <div class="panel-body">
207  Legacy content
208  </div>
209 </div>
210 EOT;
211  $this->assertHTMLEquals(
212  $this->brutallyTrimHTML($expected_html),
213  $this->brutallyTrimHTML($html)
214  );
215  }
button(string $caption, string $cmd)
Interface Observer Contains several chained tasks and infos about them.
Title class.
Definition: Title.php:26
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithFooter()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithFooter ( )

Definition at line 328 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

328  : void
329  {
330  $legacy = $this->getUIFactory()->legacy("Legacy content");
331  $footer_shy_button = $this->getUIFactory()->button()->shy("Action", "");
332 
333  $secondary_panel = $this->getUIFactory()->legacyPanel("Title", $legacy)
334  ->withFooter($footer_shy_button);
335 
336  $html = $this->getDefaultRenderer()->render($secondary_panel);
337 
338  $expected_html = <<<EOT
339 <div class="panel panel-secondary panel-flex">
340  <div class="panel-heading ilHeader">
341  <div class="panel-title"><h2>Title</h2></div>
342  <div class="panel-controls"></div>
343  </div>
344  <div class="panel-body">
345  Legacy content
346  </div>
347  <div class="panel-footer ilBlockInfo">
348  <button class="btn btn-link" data-action="">Action</button>
349  </div>
350 </div>
351 EOT;
352  $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
353  }
button(string $caption, string $cmd)
Title class.
Definition: Title.php:26
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithNoHeader()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithNoHeader ( )

Definition at line 355 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

355  : void
356  {
357  $legacy = $this->getUIFactory()->legacy("Legacy content");
358 
359  $secondary_panel = $this->getUIFactory()->legacyPanel("", $legacy);
360 
361  $html = $this->getDefaultRenderer()->render($secondary_panel);
362 
363  $expected_html = <<<EOT
364 <div class="panel panel-secondary panel-flex">
365  <div class="panel-body">Legacy content</div>
366 </div>
367 EOT;
368  $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
369  }
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithPagination()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithPagination ( )

Definition at line 254 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

254  : void
255  {
256  $legacy = $this->getUIFactory()->legacy("Legacy content");
257 
258  $pagination = $this->getUIFactory()->viewControl()->pagination()
259  ->withTargetURL('http://ilias.de', 'page')
260  ->withTotalEntries(10)
261  ->withPageSize(2)
262  ->withCurrentPage(1);
263 
264  $sec = $this->getUIFactory()->legacyPanel("Title", $legacy)
265  ->withViewControls([$pagination]);
266 
267  $html = $this->getDefaultRenderer()->render($sec);
268 
269  $expected_html = <<<EOT
270 <div class="panel panel-secondary panel-flex">
271  <div class="panel-heading ilHeader">
272  <div class="panel-title"><h2>Title</h2></div>
273  <div class="panel-viewcontrols l-bar__space-keeper">
274  <div class="il-viewcontrol-pagination l-bar__element">
275  <button class="btn btn-default" data-action="http://ilias.de?page=0" id="id_6">
276  <span class="glyph" aria-label="back" role="img"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span></span>
277  </button>
278  <button class="btn btn-link" data-action="http://ilias.de?page=0" id="id_1">1</button>
279  <button class="btn btn-link engaged" aria-pressed="true" data-action="http://ilias.de?page=1" id="id_2">2</button>
280  <button class="btn btn-link" data-action="http://ilias.de?page=2" id="id_3">3</button>
281  <button class="btn btn-link" data-action="http://ilias.de?page=3" id="id_4">4</button>
282  <button class="btn btn-link" data-action="http://ilias.de?page=4" id="id_5">5</button>
283  <button class="btn btn-default" data-action="http://ilias.de?page=2" id="id_7">
284  <span class="glyph" aria-label="next" role="img"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span></span>
285  </button>
286  </div>
287  </div>
288  <div class="panel-controls"></div>
289  </div>
290  <div class="panel-body">Legacy content</div>
291 </div>
292 EOT;
293  $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
294  }
button(string $caption, string $cmd)
Title class.
Definition: Title.php:26
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithSection()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithSection ( )

Definition at line 296 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

296  : void
297  {
298  $legacy = $this->getUIFactory()->legacy("Legacy content");
299  $back = $this->getUIFactory()->button()->standard("previous", "http://www.ilias.de");
300  $next = $this->getUIFactory()->button()->standard("next", "http://www.github.com");
301  $current = $this->getUIFactory()->button()->standard("current", "");
302  $section = $this->getUIFactory()->viewControl()->section($back, $current, $next);
303 
304  $secondary_panel = $this->getUIFactory()->legacyPanel("Title", $legacy)
305  ->withViewControls([$section]);
306 
307  $html = $this->getDefaultRenderer()->render($secondary_panel);
308 
309  $expected_html = <<<EOT
310 <div class="panel panel-secondary panel-flex">
311  <div class="panel-heading ilHeader">
312  <div class="panel-title"><h2>Title</h2></div>
313  <div class="panel-viewcontrols l-bar__space-keeper">
314  <div class="il-viewcontrol-section l-bar__element">
315  <a class="btn btn-ctrl browse previous" href="http://www.ilias.de" aria-label="previous" data-action="http://www.ilias.de" id="id_1"><span class="glyphicon glyphicon-chevron-left"></span></a>
316  <button class="btn btn-default" data-action="">current</button>
317  <a class="btn btn-ctrl browse next" href="http://www.github.com" aria-label="next" data-action="http://www.github.com" id="id_2"><span class="glyphicon glyphicon-chevron-right"></span></a>
318  </div>
319  </div>
320  <div class="panel-controls"></div>
321  </div>
322  <div class="panel-body">Legacy content</div>
323 </div>
324 EOT;
325  $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
326  }
button(string $caption, string $cmd)
Title class.
Definition: Title.php:26
+ Here is the call graph for this function:

◆ testRenderPanelSecondaryWithSortation()

PanelSecondaryLegacyTest::testRenderPanelSecondaryWithSortation ( )

Definition at line 217 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

217  : void
218  {
219  $legacy = $this->getUIFactory()->legacy("Legacy content");
220  $sort_options = array(
221  'a' => 'A',
222  'b' => 'B'
223  );
224  $sortation = $this->getUIFactory()->viewControl()->sortation($sort_options, 'b');
225  $sec = $this->getUIFactory()->legacyPanel("Title", $legacy)
226  ->withViewControls([$sortation]);
227 
228  $html = $this->getDefaultRenderer()->render($sec);
229 
230  $expected_html = <<<EOT
231 <div class="panel panel-secondary panel-flex">
232  <div class="panel-heading ilHeader">
233  <div class="panel-title"><h2>Title</h2></div>
234  <div class="panel-viewcontrols l-bar__space-keeper">
235  <div class="dropdown il-viewcontrol il-viewcontrol-sortation l-bar__element" id="id_1">
236  <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-label="sortation" aria-haspopup="true" aria-expanded="false" aria-controls="id_1_ctrl">
237  <span class="label">vc_sort B</span>
238  <span class="caret"></span>
239  </button>
240  <ul id="id_1_ctrl" class="dropdown-menu">
241  <li><button class="btn btn-link" data-action="?sortation=a" id="id_2">A</button></li>
242  <li class="selected"><button class="btn btn-link" data-action="?sortation=b" id="id_3">B</button></li>
243  </ul>
244  </div>
245  </div>
246  <div class="panel-controls"></div>
247  </div>
248  <div class="panel-body">Legacy content</div>
249 </div>
250 EOT;
251  $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
252  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Avatar.php:21
button(string $caption, string $cmd)
Title class.
Definition: Title.php:26
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Bulky.php:21
+ Here is the call graph for this function:

◆ testWithActions()

PanelSecondaryLegacyTest::testWithActions ( )

Definition at line 104 of file PanelSecondaryLegacyTest.php.

References ILIAS\Repository\button(), and getUIFactory().

104  : void
105  {
106  $legacy = $this->getUIFactory()->legacy("Legacy content");
107  $actions = $this->getUIFactory()->dropdown()->standard(array(
108  $this->getUIFactory()->button()->shy("ILIAS", "https://www.ilias.de"),
109  $this->getUIFactory()->button()->shy("Github", "https://www.github.com")
110  ));
111 
112  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy)
113  ->withActions($actions);
114 
115  $this->assertEquals($secondary_panel->getActions(), $actions);
116  }
button(string $caption, string $cmd)
+ Here is the call graph for this function:

◆ testWithoutViewControls()

PanelSecondaryLegacyTest::testWithoutViewControls ( )

Definition at line 118 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

118  : void
119  {
120  $legacy = $this->getUIFactory()->legacy("Legacy content");
121  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy);
122  $array_vc = $secondary_panel->getViewControls();
123 
124  $this->assertEquals(null, $array_vc);
125  }
+ Here is the call graph for this function:

◆ testWithPaginationViewControl()

PanelSecondaryLegacyTest::testWithPaginationViewControl ( )

Definition at line 145 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

145  : void
146  {
147  $legacy = $this->getUIFactory()->legacy("Legacy content");
148  $pagination = $this->getUIFactory()->viewControl()->pagination()
149  ->withTargetURL("http://ilias.de", 'page')
150  ->withTotalEntries(98)
151  ->withPageSize(10)
152  ->withCurrentPage(1);
153 
154  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy)
155  ->withViewControls([$pagination]);
156 
157  $array_vc = $secondary_panel->getViewControls();
158 
159  $this->assertEquals($array_vc[0], $pagination);
160  }
+ Here is the call graph for this function:

◆ testWithSectionViewControl()

PanelSecondaryLegacyTest::testWithSectionViewControl ( )

Definition at line 162 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

162  : void
163  {
164  $legacy = $this->getUIFactory()->legacy("Legacy content");
165  $back = $this->getUIFactory()->button()->standard("previous", "http://www.ilias.de");
166  $next = $this->getUIFactory()->button()->standard("next", "http://www.github.com");
167  $current = $this->getUIFactory()->button()->standard("current", "");
168  $section = $this->getUIFactory()->viewControl()->section($back, $current, $next);
169 
170  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy)
171  ->withViewControls([$section]);
172 
173  $array_vc = $secondary_panel->getViewControls();
174 
175  $this->assertEquals($array_vc[0], $section);
176  }
+ Here is the call graph for this function:

◆ testWithSortationViewControl()

PanelSecondaryLegacyTest::testWithSortationViewControl ( )

Definition at line 127 of file PanelSecondaryLegacyTest.php.

References getUIFactory().

127  : void
128  {
129  $legacy = $this->getUIFactory()->legacy("Legacy content");
130  $sort_options = array(
131  'internal_rating' => 'Best',
132  'date_desc' => 'Most Recent',
133  'date_asc' => 'Oldest',
134  );
135  $sortation = $this->getUIFactory()->viewControl()->sortation($sort_options, 'internal_rating');
136 
137  $secondary_panel = $this->getUIFactory()->legacyPanel("title", $legacy)
138  ->withViewControls([$sortation]);
139 
140  $array_vc = $secondary_panel->getViewControls();
141 
142  $this->assertEquals($array_vc[0], $sortation);
143  }
+ Here is the call graph for this function:

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