ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
OrderingRendererTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 require_once("vendor/composer/vendor/autoload.php");
22 require_once(__DIR__ . "/TableRendererTestBase.php");
23 
26 use ILIAS\Data;
27 
32 {
33  private function getRenderer()
34  {
35  return new Renderer(
36  $this->getUIFactory(),
37  $this->getTemplateFactory(),
38  $this->getLanguage(),
39  $this->getJavaScriptBinding(),
40  new ilImagePathResolver(),
41  new \ILIAS\Data\Factory(),
42  new \ILIAS\UI\Help\TextRetriever\Echoing(),
43  $this->getUploadLimitResolver()
44  );
45  }
46 
48  {
49  $renderer = $this->getRenderer();
50  $data_factory = new \ILIAS\Data\Factory();
51  $tpl = $this->getTemplateFactory()->getTemplate("components/ILIAS/UI/src/templates/default/Table/tpl.orderingtable.html", true, true);
52  $f = $this->getColumnFactory();
53  $data = new class () implements ILIAS\UI\Component\Table\OrderingBinding {
54  public function getRows(
55  Component\Table\OrderingRowBuilder $row_builder,
56  array $visible_column_ids
57  ): \Generator {
58  if (false) {
59  yield;
60  }
61  }
62  };
63  $columns = [
64  'f1' => $f->text("Field 1")->withIndex(1),
65  'f2' => $f->text("Field 2")->withIndex(2),
66  'f3' => $f->number("Field 3")->withIndex(3)
67  ];
68  $uri = new Data\URI('https://localhost');
69  $table = $this->getUIFactory()->table()->ordering('', $columns, $data, $uri)
70  ->withRequest($this->getDummyRequest());
71 
72  $actual = $renderer->renderOrderingTable($table, $this->getDefaultRenderer());
73  $expected = <<<EOT
74 <div class="c-table-ordering" id="id_1"><h2 class="ilHeader" id="id_1_label"></h2>
75  <div class="viewcontrols">
76  <form class="il-viewcontrols-form l-bar__space-keeper" method="get" id="id_2"></form>
77  </div>
78  <form method="post" class="c-table-data__table-wrapper c-table-ordering__form" action="https://localhost">
79  <table class="c-table-data__table" aria-labelledby="id_1_label" aria-colcount="5" role="grid">
80  <thead>
81  <tr class="c-table-data__header c-table-data__row">
82  <th class="c-table-data__header c-table-data__cell c-table-data__header__rowselection" tabindex="-1" aria-colindex="1"></th>
83  <th class="c-table-data__header c-table-data__cell c-table-data__cell--number" tabindex="-1" aria-colindex="2">
84  <div class="c-table-data__header__resize-wrapper">table_posinput_col_title</div>
85  </th>
86  <th class="c-table-data__header c-table-data__cell c-table-data__cell--text" tabindex="-1" aria-colindex="3">
87  <div class="c-table-data__header__resize-wrapper">Field 1</div>
88  </th>
89  <th class="c-table-data__header c-table-data__cell c-table-data__cell--text" tabindex="-1" aria-colindex="4">
90  <div class="c-table-data__header__resize-wrapper">Field 2</div>
91  </th>
92  <th class="c-table-data__header c-table-data__cell c-table-data__cell--number" tabindex="-1" aria-colindex="5">
93  <div class="c-table-data__header__resize-wrapper">Field 3</div>
94  </th>
95  </tr>
96  </thead>
97  <tbody class="c-table-data__body">
98  <tr>
99  <td class="c-table-data__cell c-table-data__cell--multiaction" colspan="5">
100  <div class="l-bar__space-keeper">
101  <div class="l-bar__element">
102  <div class="c-table-data__multiaction-triggerer"></div>
103  </div>
104  <div class="l-bar__element">
105  <button class="btn btn-default" data-action="" id="id_1">sorting_save</button>
106  </div>
107  </div>
108  </td>
109  </tr>
110  </tbody>
111  </table>
112  </form>
113  <div class="c-table-data__async_modal_container"></div>
114  <div class="c-table-data__async_message modal" role="dialog" id="id_1_msgmodal">
115  <div class="modal-dialog" role="document">
116  <div class="modal-content">
117  <div class="modal-header">
118  <button type="button" class="close" data-dismiss="modal" aria-label="close">
119  <span aria-hidden="true">&times;</span></button>
120  </div>
121  <div class="c-table-data__async_messageresponse modal-body"></div>
122  </div>
123  </div>
124  </div>
125 </div>
126 EOT;
127  $this->assertEquals($this->brutallyTrimHTML($expected), $this->brutallyTrimHTML($actual));
128  }
129 }
button(string $caption, string $cmd)
$renderer
Interface Observer Contains several chained tasks and infos about them.
Tests for the Renderer of DataTables.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getLanguage()
Tests for the Renderer of DataTables.
Builds data types.
Definition: Factory.php:35
form( $class_path, string $cmd, string $submit_caption="")
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...