19declare(strict_types=1);
21require_once(
"vendor/composer/vendor/autoload.php");
22require_once(__DIR__ .
"/../../Base.php");
37 public function symbol(): IC\Symbol\Factory
39 return new IC\Symbol\Factory(
45 public function button(): IC\Button\Factory
47 return new IC\Button\Factory();
49 public function dropdown(): IC\Dropdown\Factory
51 return new IC\Dropdown\Factory();
65 $pagination =
$f->pagination();
66 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\ViewControl\\Pagination", $pagination);
67 $this->assertInstanceOf(
"ILIAS\\UI\\Component\\Signal", $pagination->getInternalSignal());
76 $target_url =
'http://testurl';
77 $parameter_name =
"param_name";
78 $max_page_options = 10;
82 ->withTargetURL($target_url, $parameter_name)
83 ->withTotalEntries($total_entries)
84 ->withPageSize($page_size)
85 ->withCurrentPage($current_page)
86 ->withMaxPaginationButtons($max_page_options)
89 $this->assertEquals($target_url, $p->getTargetURL());
90 $this->assertEquals($parameter_name, $p->getParameterName());
91 $this->assertEquals($page_size, $p->getPageSize());
92 $this->assertEquals($current_page, $p->getCurrentPage());
93 $this->assertEquals($max_page_options, $p->getMaxPaginationButtons());
94 $this->assertEquals(2, $p->getNumberOfPages());
100 ->withTotalEntries(2)
105 $expected_html = <<<EOT
106<div
class=
"il-viewcontrol-pagination l-bar__element">
107 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=0" id=
"id_1">1</
button>
108 <
button class=
"btn btn-link" data-action=
"?pagination_offset=1" id=
"id_2">2</
button>
109 <
button class=
"btn btn-default" data-action=
"?pagination_offset=1" id=
"id_3">
110 <span
class=
"glyph" aria-label=
"next" role=
"img"><span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span></span>
115 $html = $this->getDefaultRenderer()->render($p);
116 $this->assertEquals($this->brutallyTrimHTML($expected_html), $this->brutallyTrimHTML($html));
122 ->withTotalEntries(2)
124 ->withCurrentPage(1);
128 $expected_html = <<<EOT
129<div
class=
"il-viewcontrol-pagination l-bar__element">
130 <
button class=
"btn btn-default" data-action=
"?pagination_offset=0" id=
"id_3">
131 <span
class=
"glyph" aria-label=
"back" role=
"img"><span
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span></span>
133 <
button class=
"btn btn-link" data-action=
"?pagination_offset=0" id=
"id_1">1</
button>
134 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=1" id=
"id_2">2</
button>
138 $html = $this->getDefaultRenderer()->render($p);
139 $this->assertHTMLEquals(
140 $this->brutallyTrimHTML($expected_html),
141 $this->brutallyTrimHTML($html)
148 ->withTotalEntries(3)
150 ->withMaxPaginationButtons(1);
155 $expected_html = <<<EOT
156<div
class=
"il-viewcontrol-pagination l-bar__element">
157 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=0" id=
"id_1">1</
button>
158 <span
class=
"last"><
button class=
"btn btn-link" data-action=
"?pagination_offset=2" id=
"id_2">3</
button></span>
159 <
button class=
"btn btn-default" data-action=
"?pagination_offset=1" id=
"id_3">
160 <span
class=
"glyph" aria-label=
"next" role=
"img"><span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span></span>
164 $html = $this->getDefaultRenderer()->render($p);
166 $this->brutallyTrimHTML($expected_html),
167 $this->brutallyTrimHTML($html)
174 ->withTotalEntries(3)
176 ->withMaxPaginationButtons(1)
177 ->withCurrentPage(1);
182 $expected_html = <<<EOT
183<div
class=
"il-viewcontrol-pagination l-bar__element">
184 <
button class=
"btn btn-default" data-action=
"?pagination_offset=0" id=
"id_4">
185 <span
class=
"glyph" aria-label=
"back" role=
"img"><span
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span></span>
186 </
button><span
class=
"first"><
button class=
"btn btn-link" data-action=
"?pagination_offset=0" id=
"id_2">1</
button></span>
187 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=1" id=
"id_1">2</
button>
188 <span
class=
"last"><
button class=
"btn btn-link" data-action=
"?pagination_offset=2" id=
"id_3">3</
button></span>
189 <
button class=
"btn btn-default" data-action=
"?pagination_offset=2" id=
"id_5">
190 <span
class=
"glyph" aria-label=
"next" role=
"img"><span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span></span>
194 $html = $this->getDefaultRenderer()->render($p);
195 $this->assertHTMLEquals(
196 $this->brutallyTrimHTML($expected_html),
197 $this->brutallyTrimHTML($html)
204 ->withTotalEntries(3)
206 ->withMaxPaginationButtons(1)
207 ->withCurrentPage(2);
212 $expected_html = <<<EOT
213<div
class=
"il-viewcontrol-pagination l-bar__element">
214 <
button class=
"btn btn-default" data-action=
"?pagination_offset=1" id=
"id_3">
215 <span
class=
"glyph" aria-label=
"back" role=
"img"><span
class=
"glyphicon glyphicon-chevron-left" aria-hidden=
"true"></span></span>
217 <span
class=
"first"><
button class=
"btn btn-link" data-action=
"?pagination_offset=0" id=
"id_2">1</
button></span>
218 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=2" id=
"id_1">3</
button>
221 $html = $this->getDefaultRenderer()->render($p);
223 $this->brutallyTrimHTML($expected_html),
224 $this->brutallyTrimHTML($html)
231 ->withTotalEntries(3)
235 $expected_html = <<<EOT
236<div
class=
"il-viewcontrol-pagination l-bar__element">
237 <div
class=
"dropdown" id=
"id_4">
238 <
button class=
"btn btn-default dropdown-toggle" type=
"button" aria-haspopup=
"true" aria-expanded=
"false" aria-controls=
"id_4_menu">pagination_label_x_of_y<span
class=
"caret"></span></
button>
239 <ul
id=
"id_4_menu" class=
"dropdown-menu">
241 <
button class=
"btn btn-link engaged" aria-pressed=
"true" data-action=
"?pagination_offset=0" id=
"id_1">1</
button>
244 <
button class=
"btn btn-link" data-action=
"?pagination_offset=1" id=
"id_2">2</
button>
247 <
button class=
"btn btn-link" data-action=
"?pagination_offset=2" id=
"id_3">3</
button>
251 <
button class=
"btn btn-default" data-action=
"?pagination_offset=1" id=
"id_5">
252 <span
class=
"glyph" aria-label=
"next" role=
"img"><span
class=
"glyphicon glyphicon-chevron-right" aria-hidden=
"true"></span></span>
256 $html = $this->getDefaultRenderer()->render($p);
258 $this->brutallyTrimHTML($expected_html),
259 $this->brutallyTrimHTML($html)
269 $pagination = $this->
getFactory()->pagination()
270 ->withCurrentPage($current_page)
271 ->withPageSize($page_size);
273 $this->assertNull($pagination->getRange());
274 $this->assertEquals(
$range, $pagination->getRange());
280 ->withTotalEntries(30)
283 $html = $this->getDefaultRenderer()->render($p);
284 $this->assertEquals($expected_html, $html);
Provides common functionality for UI tests.
button(string $caption, string $cmd)