ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ItemGroupTest.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2017 Alex Killing <killing@leifos.de> Extended GPL, see docs/LICENSE */
4
5require_once(__DIR__ . "/../../../../libs/composer/vendor/autoload.php");
6require_once(__DIR__ . "/../../Base.php");
7
8use \ILIAS\UI\Component as C;
9use \ILIAS\UI\Implementation as I;
10
15{
16
20 public function getFactory()
21 {
22 return new I\Component\Item\Factory;
23 }
24
26 {
27 $f = $this->getFactory();
28
29 $group = $f->group("group", array(
30 $f->standard("title1"),
31 $f->standard("title2")
32 ));
33
34 $this->assertInstanceOf("ILIAS\\UI\\Component\\Item\\Group", $group);
35 }
36
37 public function test_get_title()
38 {
39 $f = $this->getFactory();
40 $c = $f->group("group", array(
41 $f->standard("title1"),
42 $f->standard("title2")
43 ));
44
45 $this->assertEquals($c->getTitle(), "group");
46 }
47
48 public function test_get_items()
49 {
50 $f = $this->getFactory();
51
52 $items = array(
53 $f->standard("title1"),
54 $f->standard("title2")
55 );
56
57 $c = $f->group("group", $items);
58
59 $this->assertEquals($c->getItems(), $items);
60 }
61
62 public function test_with_actions()
63 {
64 $f = $this->getFactory();
65
66 $actions = new I\Component\Dropdown\Standard(array(
67 new I\Component\Button\Shy("ILIAS", "https://www.ilias.de"),
68 new I\Component\Button\Shy("GitHub", "https://www.github.com")
69 ));
70 $items = array(
71 $f->standard("title1"),
72 $f->standard("title2")
73 );
74
75 $c = $f->group("group", $items)->withActions($actions);
76
77 $this->assertEquals($c->getActions(), $actions);
78 }
79
80 public function test_render_base()
81 {
82 $f = $this->getFactory();
83 $r = $this->getDefaultRenderer();
84
85 $items = array(
86 $f->standard("title1"),
87 $f->standard("title2")
88 );
89
90 $c = $f->group("group", $items);
91
92 $html = $r->render($c);
93
94 $expected = <<<EOT
95<div class="il-item-group">
96 <h4>group</h4>
97 <div class="il-item-group-items">
98 <div class="il-panel-listing-std-item-container"><div class="il-item il-std-item ">
99 <h5>title1</h5>
100 </div></div><div class="il-panel-listing-std-item-container"><div class="il-item il-std-item ">
101 <h5>title2</h5>
102 </div></div>
103 </div>
104</div>
105EOT;
106 $this->assertHTMLEquals($expected, $html);
107 }
108
109 public function test_render_with_actions()
110 {
111 $f = $this->getFactory();
112 $r = $this->getDefaultRenderer();
113
114 $actions = new I\Component\Dropdown\Standard(array(
115 new I\Component\Button\Shy("ILIAS", "https://www.ilias.de"),
116 new I\Component\Button\Shy("GitHub", "https://www.github.com")
117 ));
118 $items = array(
119 $f->standard("title1"),
120 $f->standard("title2")
121 );
122
123 $c = $f->group("group", $items)->withActions($actions);
124
125 $html = $r->render($c);
126
127 $expected = <<<EOT
128<div class="il-item-group">
129<h4>group</h4><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>
130 <ul class="dropdown-menu">
131 <li><button class="btn btn-link" data-action="https://www.ilias.de" id="id_1">ILIAS</button></li>
132 <li><button class="btn btn-link" data-action="https://www.github.com" id="id_2">GitHub</button></li>
133 </ul>
134 </div>
135 <div class="il-item-group-items">
136 <div class="il-panel-listing-std-item-container"><div class="il-item il-std-item ">
137 <h5>title1</h5>
138 </div></div><div class="il-panel-listing-std-item-container"><div class="il-item il-std-item ">
139 <h5>title2</h5>
140 </div></div>
141 </div>
142</div>
143EOT;
144 $this->assertHTMLEquals($expected, $html);
145 }
146}
An exception for terminatinating execution or to throw for unit testing.
Provides common functionality for UI tests.
Definition: Base.php:192
assertHTMLEquals($expected_html_as_string, $html_as_string)
Definition: Base.php:270
getDefaultRenderer(JavaScriptBinding $js_binding=null)
Definition: Base.php:228
Test items groups.
test_implements_factory_interface()
$html
Definition: example_001.php:87
$r
Definition: example_031.php:79
Class BaseForm.
$this data['403_header']