ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
PCListTest.php
Go to the documentation of this file.
1 <?php
2 
20 
25 {
26  public function testConstruction(): void
27  {
28  $page = $this->getEmptyPageWithDom();
29  $pc = new ilPCList($page);
30  $this->assertEquals(
31  ilPCList::class,
32  get_class($pc)
33  );
34  }
35 
36  public function testCreate(): void
37  {
38  $page = $this->getEmptyPageWithDom();
39  $pc = new ilPCList($page);
40  $pc->create($page, "pg");
41  $this->assertXmlEquals(
42  '<PageObject HierId="pg"><PageContent><List></List></PageContent></PageObject>',
43  $page->getXMLFromDom()
44  );
45  }
46 
47  public function testAddItems(): void
48  {
49  $page = $this->getEmptyPageWithDom();
50  $pc = new ilPCList($page);
51  $pc->create($page, "pg");
52  $pc->addItems(2);
53 
54  $page->stripHierIDs();
55 
56  $expected = <<<EOT
57 <PageObject><PageContent><List><ListItem/><ListItem/></List></PageContent></PageObject>
58 EOT;
59  $this->assertXmlEquals(
60  $expected,
61  $page->getXMLFromDom()
62  );
63  }
64 
65  public function testListType(): void
66  {
67  $page = $this->getEmptyPageWithDom();
68  $pc = new ilPCList($page);
69  $pc->create($page, "pg");
70  $pc->setListType("Ordered");
71 
72  $this->assertEquals(
73  "Ordered",
74  $pc->getListType()
75  );
76 
77  $pc->setListType("Unordered");
78 
79  $this->assertEquals(
80  "Unordered",
81  $pc->getListType()
82  );
83 
84  $page->stripHierIDs();
85 
86  $expected = <<<EOT
87 <PageObject><PageContent><List Type="Unordered"/></PageContent></PageObject>
88 EOT;
89  $this->assertXmlEquals(
90  $expected,
91  $page->getXMLFromDom()
92  );
93  }
94 
95  public function testNumberingType(): void
96  {
97  $page = $this->getEmptyPageWithDom();
98  $pc = new ilPCList($page);
99  $pc->create($page, "pg");
100  $pc->setListType("Ordered");
101  $pc->setNumberingType("Roman");
102 
103  $this->assertEquals(
104  "Roman",
105  $pc->getNumberingType()
106  );
107 
108  $pc->setNumberingType("alphabetic");
109 
110  $this->assertEquals(
111  "alphabetic",
112  $pc->getNumberingType()
113  );
114 
115  $page->stripHierIDs();
116 
117  $expected = <<<EOT
118 <PageObject><PageContent><List Type="Ordered" NumberingType="alphabetic"/></PageContent></PageObject>
119 EOT;
120  $this->assertXmlEquals(
121  $expected,
122  $page->getXMLFromDom()
123  );
124  }
125 
126  public function testStartValue(): void
127  {
128  $page = $this->getEmptyPageWithDom();
129  $pc = new ilPCList($page);
130  $pc->create($page, "pg");
131  $pc->setListType("Ordered");
132  $pc->setStartValue("3");
133 
134  $this->assertEquals(
135  "3",
136  $pc->getStartValue()
137  );
138 
139  $page->stripHierIDs();
140 
141  $expected = <<<EOT
142 <PageObject><PageContent><List Type="Ordered" StartValue="3"/></PageContent></PageObject>
143 EOT;
144  $this->assertXmlEquals(
145  $expected,
146  $page->getXMLFromDom()
147  );
148  }
149 
150  public function testStyleClass(): void
151  {
152  $page = $this->getEmptyPageWithDom();
153  $pc = new ilPCList($page);
154  $pc->create($page, "pg");
155  $pc->setListType("Ordered");
156  $pc->setStyleClass("MyClass");
157 
158  $this->assertEquals(
159  "MyClass",
160  $pc->getStyleClass()
161  );
162 
163  $page->stripHierIDs();
164 
165  $expected = <<<EOT
166 <PageObject><PageContent><List Type="Ordered" Class="MyClass"/></PageContent></PageObject>
167 EOT;
168  $this->assertXmlEquals(
169  $expected,
170  $page->getXMLFromDom()
171  );
172  }
173 
174  //
175  // Test file items
176  //
177 
178  protected function getPageWithList(): ilPageObject
179  {
180  $page = $this->getEmptyPageWithDom();
181  $pc = new ilPCList($page);
182  $pc->create($page, "pg");
183  $pc->addItems(3);
184  $page->addHierIDs();
185 
186  $par1 = new ilPCParagraph($page);
187  $par1->create($page, "1_1");
188  $par1->setLanguage("en");
189  $par1->setText("One");
190 
191  $par2 = new ilPCParagraph($page);
192  $par2->create($page, "1_2");
193  $par2->setLanguage("en");
194  $par2->setText("Two");
195 
196  $page->addHierIDs();
197  $page->insertPCIds();
198 
199  return $page;
200  }
201 
202  protected function getItemForHierId(ilPageObject $page, string $hier_id): ilPCListItem
203  {
204  $pc_id = $page->getPCIdForHierId($hier_id);
205  $cont_node = $page->getContentDomNode($hier_id);
206  $pc = new ilPCListItem($page);
207  $pc->setDomNode($cont_node);
208  $pc->setHierId($hier_id);
209  $pc->setPcId($pc_id);
210  return $pc;
211  }
212 
213  public function testNewItemAfter(): void
214  {
215  $page = $this->getPageWithList();
216  $item = $this->getItemForHierId($page, "1_1");
217  $item->newItemAfter();
218  $page->stripHierIDs();
219  $page->stripPCIDs();
220 
221  $expected = <<<EOT
222 <PageObject><PageContent><List><ListItem><PageContent><Paragraph Language="en">One</Paragraph></PageContent></ListItem><ListItem/><ListItem><PageContent><Paragraph Language="en">Two</Paragraph></PageContent></ListItem><ListItem/></List></PageContent></PageObject>
223 EOT;
224 
225  $this->assertXmlEquals(
226  $expected,
227  $page->getXMLFromDom()
228  );
229  }
230 
231  public function testNewItemBefore(): void
232  {
233  $page = $this->getPageWithList();
234  $item = $this->getItemForHierId($page, "1_2");
235  $item->newItemBefore();
236  $page->stripHierIDs();
237  $page->stripPCIDs();
238 
239  $expected = <<<EOT
240 <PageObject><PageContent><List><ListItem><PageContent><Paragraph Language="en">One</Paragraph></PageContent></ListItem><ListItem/><ListItem><PageContent><Paragraph Language="en">Two</Paragraph></PageContent></ListItem><ListItem/></List></PageContent></PageObject>
241 EOT;
242 
243  $this->assertXmlEquals(
244  $expected,
245  $page->getXMLFromDom()
246  );
247  }
248 
249  public function testDeleteItem(): void
250  {
251  $page = $this->getPageWithList();
252  $item = $this->getItemForHierId($page, "1_1");
253  $item->deleteItem();
254  $page->stripHierIDs();
255  $page->stripPCIDs();
256 
257  $expected = <<<EOT
258 <PageObject><PageContent><List><ListItem><PageContent><Paragraph Language="en">Two</Paragraph></PageContent></ListItem><ListItem/></List></PageContent></PageObject>
259 EOT;
260 
261  $this->assertXmlEquals(
262  $expected,
263  $page->getXMLFromDom()
264  );
265  }
266 
267  public function testMoveItemDown(): void
268  {
269  $page = $this->getPageWithList();
270  $item = $this->getItemForHierId($page, "1_1");
271  $item->moveItemDown();
272  $page->stripHierIDs();
273  $page->stripPCIDs();
274 
275  $expected = <<<EOT
276 <PageObject><PageContent><List><ListItem><PageContent><Paragraph Language="en">Two</Paragraph></PageContent></ListItem><ListItem><PageContent><Paragraph Language="en">One</Paragraph></PageContent></ListItem><ListItem/></List></PageContent></PageObject>
277 EOT;
278 
279  $this->assertXmlEquals(
280  $expected,
281  $page->getXMLFromDom()
282  );
283  }
284 
285  public function testMoveItemUp(): void
286  {
287  $page = $this->getPageWithList();
288  $item = $this->getItemForHierId($page, "1_2");
289  $item->moveItemUp();
290  $page->stripHierIDs();
291  $page->stripPCIDs();
292 
293  $expected = <<<EOT
294 <PageObject><PageContent><List><ListItem><PageContent><Paragraph Language="en">Two</Paragraph></PageContent></ListItem><ListItem><PageContent><Paragraph Language="en">One</Paragraph></PageContent></ListItem><ListItem/></List></PageContent></PageObject>
295 EOT;
296 
297  $this->assertXmlEquals(
298  $expected,
299  $page->getXMLFromDom()
300  );
301  }
302 }
getContentDomNode(string $a_hier_id, string $a_pc_id="")
getPCIdForHierId(string $hier_id)
getItemForHierId(ilPageObject $page, string $hier_id)
Definition: PCListTest.php:202
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
testNumberingType()
Definition: PCListTest.php:95
testNewItemAfter()
Definition: PCListTest.php:213
testNewItemBefore()
Definition: PCListTest.php:231
testMoveItemDown()
Definition: PCListTest.php:267
Class ilPageObject Handles PageObjects of ILIAS Learning Modules (see ILIAS DTD)
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...
testConstruction()
Definition: PCListTest.php:26
assertXmlEquals(string $expected_xml_as_string, string $html_xml_string)