5 require_once(
"libs/composer/vendor/autoload.php");
6 require_once(__DIR__ .
"/../../../Base.php");
8 use \ILIAS\UI\Implementation\Component\Menu;
9 use \ILIAS\UI\Implementation\Component as
I;
10 use \ILIAS\UI\Component as
C;
19 $factory =
new class extends NoUIFactory {
20 public function menu() : C\Menu\Factory
24 public function button()
26 return new I\Button\Factory();
28 public function legacy($content)
30 return new I\Legacy\Legacy($content,
new I\SignalGenerator());
38 $icon_factory =
new I\Symbol\Icon\Factory();
39 $glyph_factory =
new I\Symbol\Glyph\Factory();
40 $button_factory =
new I\Button\Factory();
41 $divider_factory =
new I\Divider\Factory();
42 $this->icon = $icon_factory->standard(
'',
'');
43 $this->glyph = $glyph_factory->user(
'');
44 $this->button = $button_factory->standard(
'',
'');
45 $this->divider = $divider_factory->horizontal();
52 $menu =
$f->menu()->drilldown(
'root', []);
53 $this->assertInstanceOf(
54 "ILIAS\\UI\\Component\\Menu\\Menu",
57 $this->assertInstanceOf(
58 "ILIAS\\UI\\Component\\Menu\\LabeledMenu",
61 $this->assertInstanceOf(
62 "ILIAS\\UI\\Component\\Menu\\Drilldown",
87 $menu->withLabel(
'new label')->getLabel()
98 $menu->withLabel($this->button)->getLabel()
117 $f->menu()->sub(
'sub', [
124 $menu =
$f->menu()->drilldown(
'root', $items);
134 $this->expectException(\InvalidArgumentException::class);
136 $menu =
$f->menu()->drilldown($this->divider, []);
141 $this->expectException(\InvalidArgumentException::class);
143 $menu =
$f->menu()->drilldown(
'label', [$this->
legacy]);
149 $html = str_replace([
"\n",
"\t"],
"", $html);
150 $html = preg_replace(
'# {2,}#',
" ", $html);
160 $html = $r->render($menu);
162 <div
class=
"il-drilldown" id=
"id_3">
163 <ul
class=
"il-drilldown-structure">
164 <li
class=
"il-menu-item" id=
"id_1">
165 <span
class=
"il-menu-item-label">
166 <button
class=
"btn btn-link" data-action=
"">root</button>
169 <ul
class=
"il-menu-level">
170 <li
class=
"il-menu-item" id=
"id_2">
171 <span
class=
"il-menu-item-label">
172 <button
class=
"btn btn-link" data-action=
"">sub</button>
175 <ul
class=
"il-menu-level">
176 <li
class=
"il-menu-item" id=
"">
177 <span
class=
"il-menu-item-label">
178 <button
class=
"btn btn-default" data-action=
""></button>
183 <ul
class=
"il-menu-level">
184 <li
class=
"il-menu-item" id=
"">
185 <span
class=
"il-menu-item-label">
186 <a
class=
"glyph" href=
"" aria-label=
"show_who_is_online"><span
class=
"glyphicon glyphicon-user" aria-hidden=
"true"></span></a>
192 <ul
class=
"il-menu-level">
193 <li
class=
"il-menu-item" id=
"">
194 <span
class=
"il-menu-item-label">
200 <ul
class=
"il-menu-level">
201 <li
class=
"il-menu-item" id=
"">
202 <span
class=
"il-menu-item-label">
203 <button
class=
"btn btn-default" data-action=
""></button>
210 <ul
class=
"il-drilldown-backlink"></ul>
211 <ul
class=
"il-drilldown-current"></ul>
212 <ul
class=
"il-drilldown-visible"></ul>
testRendering($menu)
testWithEntries
testWithClickableLabel($menu)
testConstruction
testGetLabel($menu)
testConstruction
getDefaultRenderer(JavaScriptBinding $js_binding=null)
testGetItems($menu)
testConstruction
Provides common functionality for UI tests.
testWithLabel($menu)
testConstruction