19 declare(strict_types=1);
21 require_once(
"libs/composer/vendor/autoload.php");
22 require_once(__DIR__ .
"/TableTestBase.php");
40 protected int $total_count;
44 $this->total_count = $total_count;
46 public function getRows(
47 I\Table\DataRowBuilder $row_builder,
48 array $visible_column_ids,
52 ?array $additional_parameters
54 yield $row_builder->buildStandardRow(
'', []);
56 public function getTotalRowCount(
58 ?array $additional_parameters
60 return $this->total_count;
65 protected function getTable(
int $total_count, array $columns): array
69 return $table->applyViewControls([], []);
76 'f1' =>
$factory->column()->text(
'f1'),
77 'f2' =>
$factory->column()->text(
'f2')->withIsOptional(
true),
80 list($table, $view_controls) = $this->
getTable($total_count, $columns);
82 $this->assertInstanceOf(
I\
Input\Container\
ViewControl\ViewControl::class, $view_controls);
85 C\Table\Data::VIEWCONTROL_KEY_PAGINATION,
86 C\Table\Data::VIEWCONTROL_KEY_ORDERING,
87 C\Table\Data::VIEWCONTROL_KEY_FIELDSELECTION,
89 array_keys($view_controls->getInputs())
91 foreach (array_values($view_controls->getInputs()) as $vc) {
92 $this->assertInstanceOf(
I\
Input\Container\
ViewControl\ViewControlInput::class, $vc);
100 'f1' =>
$factory->column()->text(
'f1'),
101 'f2' =>
$factory->column()->text(
'f2')->withIsOptional(
true),
104 list($table, $view_controls) = $this->
getTable($total_count, $columns);
108 C\Table\Data::VIEWCONTROL_KEY_PAGINATION,
109 C\Table\Data::VIEWCONTROL_KEY_ORDERING,
110 C\Table\Data::VIEWCONTROL_KEY_FIELDSELECTION,
112 array_keys($view_controls->getInputs())
114 $this->assertInstanceOf(
116 $view_controls->getInputs()[C\Table\Data::VIEWCONTROL_KEY_PAGINATION]
119 $group_contents = $view_controls->getInputs()[C\Table\Data::VIEWCONTROL_KEY_PAGINATION]->getInputs();
130 'f1' =>
$factory->column()->text(
'f1')
131 ->withIsSortable(
false),
132 'f2' =>
$factory->column()->text(
'f2')
133 ->withIsSortable(
false)
134 ->withIsOptional(
true),
137 list($table, $view_controls) = $this->
getTable($total_count, $columns);
141 C\Table\Data::VIEWCONTROL_KEY_PAGINATION,
142 C\Table\Data::VIEWCONTROL_KEY_FIELDSELECTION,
144 array_keys($view_controls->getInputs())
152 'f1' =>
$factory->column()->text(
'f1'),
153 'f2' =>
$factory->column()->text(
'f2'),
156 list($table, $view_controls) = $this->
getTable($total_count, $columns);
160 C\Table\Data::VIEWCONTROL_KEY_PAGINATION,
161 C\Table\Data::VIEWCONTROL_KEY_ORDERING,
163 array_keys($view_controls->getInputs())
170 $request = $this->createMock(ServerRequestInterface::class);
173 ->willReturn(
new class () {
174 public function __toString()
176 return 'http://localhost:80';
180 ->method(
"getQueryParams")
181 ->willReturn($returns);
189 'f1' =>
$factory->column()->text(
'f1')->withIsOptional(
true),
190 'f2' =>
$factory->column()->text(
'f2')->withIsOptional(
true),
191 'f3' =>
$factory->column()->text(
'f3')->withIsOptional(
true),
194 list($base_table, $view_controls) = $this->
getTable($total_count, $columns);
196 $table_id =
'testing_data_table';
201 'view_control/input_0/input_1' => 0,
202 'view_control/input_0/input_2' => 10,
203 'view_control/input_3/input_4' =>
'f2',
204 'view_control/input_3/input_5' =>
'DESC',
205 'view_control/input_6' => [
'f2']
208 list($table, $view_controls) = $table->applyViewControls([], []);
210 $this->assertEquals(
new Range(0, 10), $table->getRange());
211 $this->assertEquals(
new Order(
'f2', Order::DESC), $table->getOrder());
212 $this->assertEquals(1, count($table->getSelectedOptionalColumns()));
218 list($table, $view_controls) = $table->applyViewControls([], []);
219 $this->assertEquals(
new Range(0, 12), $table->getRange());
220 $this->assertEquals(
new Order(
'f1', Order::ASC), $table->getOrder());
221 $this->assertEquals(3, count($table->getSelectedOptionalColumns()));
227 list($table, $view_controls) = $table->applyViewControls([], []);
228 $this->assertEquals(
new Range(0, 10), $table->getRange());
229 $this->assertEquals(
new Order(
'f2', Order::DESC), $table->getOrder());
230 $this->assertEquals(1, count($table->getSelectedOptionalColumns()));
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testDataTableHasNoFieldSelectionViewControl()
getDataRetrieval(int $total_count)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Tests for the Data Table.
testDataTableHasNoOrderingViewControl()
Both the subject and the direction need to be specified when expressing an order. ...
testDataTableViewControlStorage()
testDataTableHasNoPaginationViewControl()
testDataTableHasViewControls()
__construct(Container $dic, ilPlugin $plugin)
getRequestMock(array $returns)
A simple class to express a range of whole positive numbers.
Basic Tests for all Tables.
getTable(int $total_count, array $columns)