5 require_once(__DIR__ .
"/../../../../libs/composer/vendor/autoload.php");
6 require_once(__DIR__ .
"/../../Base.php");
8 use \ILIAS\UI\Component as
C;
9 use \ILIAS\UI\Implementation as
I;
10 use \ILIAS\UI\Implementation\Component\SignalGenerator;
19 $factory =
new class extends NoUIFactory {
20 public function panelSecondary()
22 return new I\Component\Panel\Secondary\Factory();
24 public function dropdown()
26 return new I\Component\Dropdown\Factory();
28 public function viewControl()
32 public function button()
34 return new I\Component\Button\Factory();
36 public function symbol() : C\Symbol\Factory
38 return new I\Component\Symbol\Factory(
50 $html = str_replace([
"\n",
"\t"],
"", $html);
57 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"List Title", array(
59 new I\
Component\Item\Group(
"Subtitle 1", array(
63 new I\
Component\Item\Group(
"Subtitle 2", array(
68 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Panel\\Secondary\\Listing", $secondary_panel);
74 new I\
Component\Item\Group(
"Subtitle 1", array(
78 new I\
Component\Item\Group(
"Subtitle 2", array(
83 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups);
85 $this->assertEquals(
$c->getTitle(),
"title");
91 new I\
Component\Item\Group(
"Subtitle 1", array(
95 new I\
Component\Item\Group(
"Subtitle 2", array(
100 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups);
102 $this->assertEquals(
$c->getItemGroups(), $groups);
107 $actions =
new I\Component\Dropdown\Standard(array(
114 $c = $this->
getUIFactory()->panelSecondary()->listing(
"title", $groups)
115 ->withActions($actions);
117 $this->assertEquals(
$c->getActions(), $actions);
124 $actions = $this->
getUIFactory()->dropdown()->standard(array(
125 $this->
getUIFactory()->button()->shy(
"ILIAS",
"https://www.ilias.de"),
126 $this->
getUIFactory()->button()->shy(
"Github",
"https://www.github.com")
129 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())->withActions($actions);
133 $expected_html = <<<EOT
134 <div
class=
"panel panel-secondary panel-flex">
135 <div
class=
"panel-heading ilHeader">
137 <div
class=
"dropdown"><button
class=
"btn btn-default dropdown-toggle" type=
"button" data-toggle=
"dropdown" aria-label=
"actions" aria-haspopup=
"true" aria-expanded=
"false"> <span
class=
"caret"></span></button>
138 <ul
class=
"dropdown-menu">
139 <li><button
class=
"btn btn-link" data-action=
"https://www.ilias.de" id=
"id_1">
ILIAS</button></li>
140 <li><button
class=
"btn btn-link" data-action=
"https://www.github.com" id=
"id_2">Github</button></li>
144 <div
class=
"panel-body">
156 $sort_options = array(
160 $sortation = $this->
getUIFactory()->viewControl()->sortation($sort_options);
161 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
162 ->withViewControls([$sortation]);
166 $expected_html = <<<EOT
167 <div
class=
"panel panel-secondary panel-flex">
168 <div
class=
"panel-heading ilHeader">
170 <div
class=
"il-viewcontrol-sortation" id=
"">
171 <div
class=
"dropdown">
172 <button
class=
"btn btn-default dropdown-toggle" type=
"button" data-toggle=
"dropdown" aria-label=
"actions" aria-haspopup=
"true" aria-expanded=
"false">
173 <span
class=
"caret"></span>
175 <ul
class=
"dropdown-menu">
176 <li><button
class=
"btn btn-link" data-action=
"?sortation=a" id=
"id_1">
A</button></li>
177 <li><button
class=
"btn btn-link" data-action=
"?sortation=b" id=
"id_2">
B</button></li>
182 <div
class=
"panel-body">
194 $pagination = $this->
getUIFactory()->viewControl()->pagination()
195 ->withTargetURL(
'http://ilias.de',
'page')
196 ->withTotalEntries(10)
198 ->withCurrentPage(1);
200 $sec = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
201 ->withViewControls([$pagination]);
205 $expected_html = <<<EOT
206 <div
class=
"panel panel-secondary panel-flex">
207 <div
class=
"panel-heading ilHeader">
209 <div
class=
"il-viewcontrol-pagination">
210 <span
class=
"browse previous">
211 <a
class=
"glyph" href=
"http://ilias.de?page=0" aria-label=
"back">
212 <span
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span>
215 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=0" id=
"id_1">1</button>
216 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=1" disabled=
"true">2</button>
217 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=2" id=
"id_2">3</button>
218 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=3" id=
"id_3">4</button>
219 <button
class=
"btn btn-link" data-action=
"http://ilias.de?page=4" id=
"id_4">5</button>
220 <span
class=
"browse next">
221 <a
class=
"glyph" href=
"http://ilias.de?page=2" aria-label=
"next">
222 <span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span>
227 <div
class=
"panel-body">
239 $back = $this->
getUIFactory()->button()->standard(
"previous",
"http://www.ilias.de");
240 $next = $this->
getUIFactory()->button()->standard(
"next",
"http://www.github.com");
241 $current = $this->
getUIFactory()->button()->standard(
"current",
"");
244 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"Title", array())
249 $expected_html = <<<EOT
250 <div
class=
"panel panel-secondary panel-flex">
251 <div
class=
"panel-heading ilHeader">
253 <div
class=
"il-viewcontrol-section">
254 <a
class=
"btn btn-default " href=
"http://www.ilias.de" aria-label=
"previous" data-action=
"http://www.ilias.de">
255 <span
class=
"glyphicon glyphicon-chevron-left"></span>
257 <button
class=
"btn btn-default" data-action=
"">
260 <a
class=
"btn btn-default " href=
"http://www.github.com" aria-label=
"next" data-action=
"http://www.github.com">
261 <span
class=
"glyphicon glyphicon-chevron-right"></span>
265 <div
class=
"panel-body">
276 $footer_shy_button = $this->
getUIFactory()->button()->shy(
"Action",
"");
277 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array())->withFooter($footer_shy_button);
281 $expected_html = <<<EOT
282 <div
class=
"panel panel-secondary panel-flex">
\n 283 <div
class=
"panel-body"></div>
\n 284 <div
class=
"panel-footer ilBlockInfo"><button
class=
"btn btn-link" data-action=
"">Action</button></div>
\n 296 $group =
new I\Component\Item\Group(
303 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array($group));
307 $expected_html = <<<EOT
308 <div
class=
"panel panel-secondary panel-flex">
309 <div
class=
"panel-body">
310 <div
class=
"il-item-group">
\n 311 <h3>Subtitle 1</h3>
\n 312 <div
class=
"il-item-group-items">
\n 313 <div
class=
"il-std-item-container">
314 <div
class=
"il-item il-std-item ">
315 <div
class=
"il-item-title">title1</div>
317 <div
class=
"il-std-item-container">
318 <div
class=
"il-item il-std-item ">
319 <div
class=
"il-item-title">title2</div>
335 $secondary_panel = $this->
getUIFactory()->panelSecondary()->listing(
"", array());
339 $this->assertEquals(
"", $html);
test_render_with_no_header_no_content_no_footer()
test_implements_factory_interface()
Class ChatMainBarProvider .
if(! $in) print Initializing normalization quick check tables n
getDefaultRenderer(JavaScriptBinding $js_binding=null)
test_render_with_actions()
test_render_with_section()
Provides common functionality for UI tests.
test_render_with_footer()
disabled()
Example showing how to plug a disabled checkbox into a form.
test_render_with_pagination()
assertHTMLEquals($expected_html_as_string, $html_as_string)
Test secondary listing panels.
test_render_with_sortation()
test_render_with_no_header_but_content()