3 declare(strict_types=1);
21 require_once(__DIR__ .
"/../../../../libs/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/../../Base.php");
36 public function panelSecondary(): I\Component\Panel\Secondary\Factory
38 return new I\Component\Panel\Secondary\Factory();
41 public function dropdown(): C\Dropdown\Factory
43 return new I\Component\Dropdown\Factory();
46 public function viewControl(): C\ViewControl\Factory
51 public function button(): C\Button\Factory
53 return new I\Component\Button\Factory();
56 public function symbol(): C\Symbol\Factory
58 return new I\Component\Symbol\Factory(
69 $html = str_replace([
"\n",
"\t"],
"", $html);
76 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"List Title", array(
87 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Panel\\Secondary\\Listing", $secondary_panel);
102 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups);
104 $this->assertEquals(
"title",
$c->getTitle());
119 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups);
121 $this->assertEquals(
$c->getItemGroups(), $groups);
126 $actions =
new I\Component\Dropdown\Standard(array(
133 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups)
134 ->withActions($actions);
136 $this->assertEquals(
$c->getActions(), $actions);
143 $actions = $this->
getUIFactory()->dropdown()->standard(array(
144 $this->
getUIFactory()->button()->shy(
"ILIAS",
"https://www.ilias.de"),
145 $this->
getUIFactory()->button()->shy(
"Github",
"https://www.github.com")
148 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())->withActions($actions);
152 $expected_html = <<<EOT
153 <div
class=
"panel panel-secondary panel-flex">
154 <div
class=
"panel-heading ilHeader">
156 <div
class=
"dropdown"><button
class=
"btn btn-default dropdown-toggle" type=
"button" data-toggle=
"dropdown" id=
"id_3" aria-label=
"actions" aria-haspopup=
"true" aria-expanded=
"false" aria-controls=
"id_3_menu"> <span
class=
"caret"></span></button>
157 <ul
id=
"id_3_menu" class=
"dropdown-menu">
158 <li><button
class=
"btn btn-link" data-action=
"https://www.ilias.de" id=
"id_1">
ILIAS</button></li>
159 <li><button
class=
"btn btn-link" data-action=
"https://www.github.com" id=
"id_2">Github</button></li>
163 <div
class=
"panel-body">
175 $sort_options = array(
179 $sortation = $this->
getUIFactory()->viewControl()->sortation($sort_options);
180 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
181 ->withViewControls([$sortation]);
185 $expected_html = <<<EOT
186 <div
class=
"panel panel-secondary panel-flex">
187 <div
class=
"panel-heading ilHeader">
189 <div
class=
"il-viewcontrol-sortation" id=
"id_1">
190 <div
class=
"dropdown">
191 <button
class=
"btn btn-default dropdown-toggle" type=
"button" data-toggle=
"dropdown" id=
"id_4" aria-label=
"actions" aria-haspopup=
"true" aria-expanded=
"false" aria-controls=
"id_4_menu">
192 <span
class=
"caret"></span>
194 <ul
id=
"id_4_menu" class=
"dropdown-menu">
195 <li><button
class=
"btn btn-link" data-action=
"?sortation=a" id=
"id_2">
A</button></li>
196 <li><button
class=
"btn btn-link" data-action=
"?sortation=b" id=
"id_3">
B</button></li>
201 <div
class=
"panel-body">
213 $pagination = $this->
getUIFactory()->viewControl()->pagination()
214 ->withTargetURL(
'http://ilias.de',
'page')
215 ->withTotalEntries(10)
217 ->withCurrentPage(1);
219 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
220 ->withViewControls([$pagination]);
224 $expected_html = <<<EOT
225 <div
class=
"panel panel-secondary panel-flex">
226 <div
class=
"panel-heading ilHeader">
228 <div
class=
"il-viewcontrol-pagination">
229 <span
class=
"browse previous">
230 <a tabindex=
"0" class=
"glyph" href=
"http://ilias.de?page=0" aria-label=
"back">
231 <span
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span>
234 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=0" id=
"id_1">1</button>
235 <button
class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"http://ilias.de?page=1" id=
"id_2">2</button>
236 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=2" id=
"id_3">3</button>
237 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=3" id=
"id_4">4</button>
238 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=4" id=
"id_5">5</button>
239 <span
class=
"browse next">
240 <a tabindex=
"0" class=
"glyph" href=
"http://ilias.de?page=2" aria-label=
"next">
241 <span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span>
246 <div
class=
"panel-body">
258 $back = $this->
getUIFactory()->button()->standard(
"previous",
"http://www.ilias.de");
259 $next = $this->
getUIFactory()->button()->standard(
"next",
"http://www.github.com");
260 $current = $this->
getUIFactory()->button()->standard(
"current",
"");
261 $section = $this->
getUIFactory()->viewControl()->section($back, $current, $next);
263 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
264 ->withViewControls([$section]);
268 $expected_html = <<<EOT
269 <div
class=
"panel panel-secondary panel-flex">
270 <div
class=
"panel-heading ilHeader">
272 <div
class=
"il-viewcontrol-section">
273 <a
class=
"btn btn-default " href=
"http://www.ilias.de" aria-label=
"previous" data-action=
"http://www.ilias.de" id=
"id_1">
274 <span
class=
"glyphicon glyphicon-chevron-left"></span>
276 <button
class=
"btn btn-default" data-action=
"">
279 <a
class=
"btn btn-default " href=
"http://www.github.com" aria-label=
"next" data-action=
"http://www.github.com" id=
"id_2">
280 <span
class=
"glyphicon glyphicon-chevron-right"></span>
284 <div
class=
"panel-body">
295 $footer_shy_button = $this->
getUIFactory()->button()->shy(
"Action",
"");
296 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array())->withFooter($footer_shy_button);
300 $expected_html = <<<EOT
301 <div
class=
"panel panel-secondary panel-flex">\n
302 <div
class=
"panel-body"></div>\n
303 <div
class=
"panel-footer ilBlockInfo"><button
class=
"btn btn-link" data-action=
"">
Action</button></div>\n
322 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array($group));
326 $expected_html = <<<EOT
327 <div
class=
"panel panel-secondary panel-flex">
328 <div
class=
"panel-body">
329 <div
class=
"il-item-group">
331 <div
class=
"il-item-group-items">
333 <li
class=
"il-std-item-container">
334 <div
class=
"il-item il-std-item ">
335 <div
class=
"il-item-title">title1</div>
338 <li
class=
"il-std-item-container">
339 <div
class=
"il-item il-std-item ">
340 <div
class=
"il-item-title">title2</div>
357 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array());
361 $this->assertEquals(
"", $html);
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getDefaultRenderer(JavaScriptBinding $js_binding=null, array $with_stub_renderings=[])
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
test_render_with_no_header_no_content_no_footer()
test_implements_factory_interface()
Class ChatMainBarProvider .
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.
assertHTMLEquals(string $expected_html_as_string, string $html_as_string)
test_render_with_actions()
test_render_with_section()
Provides common functionality for UI tests.
test_render_with_footer()
test_render_with_pagination()
Test secondary listing panels.
test_render_with_sortation()
test_render_with_no_header_but_content()