19 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(
   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">
   155         <div 
class=
"panel-title"><h2>
Title</h2></div>
   156         <div 
class=
"panel-controls">
   157             <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>
   158                 <ul 
id=
"id_3_menu" class=
"dropdown-menu">
   159                     <li><
button class=
"btn btn-link" data-action=
"https://www.ilias.de" id=
"id_1">
ILIAS</button></li>
   160                     <li><button 
class=
"btn btn-link" data-action=
"https://www.github.com" id=
"id_2">Github</button></li>
   165     <div 
class=
"panel-body">
   177         $sort_options = array(
   181         $sortation = $this->
getUIFactory()->viewControl()->sortation($sort_options);
   182         $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
   183             ->withViewControls([$sortation]);
   187         $expected_html = <<<EOT
   188 <div 
class=
"panel panel-secondary panel-flex">
   189     <div 
class=
"panel-heading ilHeader">
   190         <div 
class=
"panel-title"><h2>
Title</h2></div>
   191         <div 
class=
"panel-viewcontrols l-bar__space-keeper">
   192             <div 
class=
"il-viewcontrol-sortation l-bar__element" id=
"id_1">
   193                 <div 
class=
"dropdown">
   194                     <
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">
   195                         <span 
class=
"caret"></span>
   197                     <ul 
id=
"id_4_menu" class=
"dropdown-menu">
   198                         <li><
button class=
"btn btn-link" data-action=
"?sortation=a" id=
"id_2">
A</button></li>
   199                         <li><button 
class=
"btn btn-link" data-action=
"?sortation=b" id=
"id_3">
B</button></li>
   204         <div 
class=
"panel-controls"></div>
   206     <div 
class=
"panel-body">
   218         $pagination = $this->
getUIFactory()->viewControl()->pagination()
   219             ->withTargetURL(
'http://ilias.de', 
'page')
   220             ->withTotalEntries(10)
   222             ->withCurrentPage(1);
   224         $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
   225             ->withViewControls([$pagination]);
   229         $expected_html = <<<EOT
   230 <div 
class=
"panel panel-secondary panel-flex">
   231     <div 
class=
"panel-heading ilHeader">
   232         <div 
class=
"panel-title"><h2>
Title</h2></div>
   233         <div 
class=
"panel-viewcontrols l-bar__space-keeper">
   234             <div 
class=
"il-viewcontrol-pagination l-bar__element">
   235                 <span 
class=
"btn btn-ctrl browse previous">
   236                     <a tabindex=
"0" class=
"glyph" href=
"http://ilias.de?page=0" aria-label=
"back">
   237                         <span 
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span>
   240                 <
button class=
"btn btn-link" data-action=
"http://ilias.de?page=0" id=
"id_1">1</button>
   241                 <button 
class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"http://ilias.de?page=1" id=
"id_2">2</button>
   242                 <button 
class=
"btn btn-link" data-action=
"http://ilias.de?page=2" id=
"id_3">3</button>
   243                 <button 
class=
"btn btn-link" data-action=
"http://ilias.de?page=3" id=
"id_4">4</button>
   244                 <button 
class=
"btn btn-link" data-action=
"http://ilias.de?page=4" id=
"id_5">5</button>
   245                 <span 
class=
"btn btn-ctrl browse next">
   246                     <a tabindex=
"0" class=
"glyph" href=
"http://ilias.de?page=2" aria-label=
"next">
   247                         <span 
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span>
   252         <div 
class=
"panel-controls"></div>
   254     <div 
class=
"panel-body">
   266         $back = $this->
getUIFactory()->button()->standard(
"previous", 
"http://www.ilias.de");
   267         $next = $this->
getUIFactory()->button()->standard(
"next", 
"http://www.github.com");
   268         $current = $this->
getUIFactory()->button()->standard(
"current", 
"");
   269         $section = $this->
getUIFactory()->viewControl()->section($back, $current, $next);
   271         $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
   272             ->withViewControls([$section]);
   276         $expected_html = <<<EOT
   277 <div 
class=
"panel panel-secondary panel-flex">
   278     <div 
class=
"panel-heading ilHeader">
   279         <div 
class=
"panel-title"><h2>
Title</h2></div>
   280         <div 
class=
"panel-viewcontrols l-bar__space-keeper">
   281             <div 
class=
"il-viewcontrol-section l-bar__element">
   282                 <a 
class=
"btn btn-ctrl browse previous" href=
"http://www.ilias.de" aria-label=
"previous" data-action=
"http://www.ilias.de" id=
"id_1">
   283                     <span 
class=
"glyphicon glyphicon-chevron-left"></span>
   285                 <
button class=
"btn btn-default" data-action=
"">current</button>
   286                 <a 
class=
"btn btn-ctrl browse next" href=
"http://www.github.com" aria-label=
"next" data-action=
"http://www.github.com" id=
"id_2">
   287                     <span 
class=
"glyphicon glyphicon-chevron-right"></span>
   291         <div 
class=
"panel-controls"></div>
   293     <div 
class=
"panel-body">
   304         $footer_shy_button = $this->
getUIFactory()->button()->shy(
"Action", 
"");
   305         $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array())->withFooter($footer_shy_button);
   309         $expected_html = <<<EOT
   310 <div 
class=
"panel panel-secondary panel-flex">\n
   311 <div 
class=
"panel-body"></div>\n
   312 <div 
class=
"panel-footer ilBlockInfo"><
button class=
"btn btn-link" data-action=
"">
Action</
button></div>\n
   331         $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array($group));
   335         $expected_html = <<<EOT
   336 <div 
class=
"panel panel-secondary panel-flex">
   337   <div 
class=
"panel-body">
   338     <div 
class=
"il-item-group">
   340       <div 
class=
"il-item-group-items">
   342             <li 
class=
"il-std-item-container">
   343               <div 
class=
"il-item il-std-item ">
   344                 <h4 
class=
"il-item-title">title1</h4>
   347             <li 
class=
"il-std-item-container">
   348               <div 
class=
"il-item il-std-item ">
   349                 <h4 
class=
"il-item-title">title2</h4>
   366         $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array());
   370         $this->assertEquals(
"", $html);
 testImplementsFactoryInterface()
 
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=[])
 
button(string $caption, string $cmd)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
testRenderWithSortation()
 
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. 
 
testRenderWithNoHeaderButContent()
 
assertHTMLEquals(string $expected_html_as_string, string $html_as_string)
 
Provides common functionality for UI tests. 
 
testRenderWithPagination()
 
Test secondary listing panels. 
 
testRenderWithNoHeaderNoContentNoFooter()