ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilSkinTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 require_once('libs/composer/vendor/autoload.php');
22 
24 {
25  protected ilSkin $skin;
26  protected ilSkinStyle $style1;
27  protected ilSkinStyle $style2;
30 
31  protected function setUp(): void
32  {
33  parent::setUp();
34 
35  $this->skin = new ilSkin('skin1', 'skin 1');
36 
37  $this->style1 = new ilSkinStyle('style1', 'Style 1');
38  $this->style1->setCssFile('style1css');
39  $this->style1->setImageDirectory('style1image');
40  $this->style1->setSoundDirectory('style1sound');
41  $this->style1->setFontDirectory('style1font');
42 
43  $this->style2 = new ilSkinStyle('style2', 'Style 2');
44  $this->style2->setCssFile('style2css');
45  $this->style2->setImageDirectory('style2image');
46  $this->style2->setSoundDirectory('style2sound');
47  $this->style2->setFontDirectory('style2font');
48 
49  $this->substyle1 = new ilSkinStyle('substyle1', 'Substyle 1');
50  $this->substyle1->setSubstyleOf($this->style1->getId());
51 
52  $this->substyle2 = new ilSkinStyle('substyle2', 'Substyle 2');
53  $this->substyle2->setSubstyleOf($this->style2->getId());
54  }
55 
56  public function testSkinNameAndId(): void
57  {
58  $this->assertEquals('skin1', $this->skin->getId());
59  $this->assertEquals('skin 1', $this->skin->getName());
60  }
61 
62  public function testAddStyle(): void
63  {
64  $this->assertCount(0, $this->skin);
65  $this->assertCount(0, $this->skin->getStyles());
66  $this->skin->addStyle($this->style1);
67  $this->assertCount(1, $this->skin);
68  $this->assertCount(1, $this->skin->getStyles());
69  $this->skin->addStyle($this->style1);
70  $this->assertCount(2, $this->skin);
71  $this->assertCount(2, $this->skin->getStyles());
72  $this->skin->addStyle($this->style2);
73  $this->assertCount(3, $this->skin);
74  $this->assertCount(3, $this->skin->getStyles());
75  }
76 
77  public function testGetStyles(): void
78  {
79  $this->skin->addStyle($this->style1);
80  $this->skin->addStyle($this->style2);
81 
82  $this->assertNotEquals($this->style1, $this->skin->getStyle('style2'));
83  $this->assertEquals($this->style2, $this->skin->getStyle('style2'));
84  }
85 
86  public function testAddSubstyle(): void
87  {
88  $this->skin->addStyle($this->substyle1);
89  $this->assertCount(1, $this->skin->getStyles());
90  $this->skin->addStyle($this->substyle2);
91  $this->assertCount(2, $this->skin);
92  }
93 
94  public function testGetSubStyles(): void
95  {
96  $this->skin->addStyle($this->substyle1);
97  $this->skin->addStyle($this->substyle2);
98 
99  $this->assertNotEquals($this->substyle1, $this->skin->getStyle('substyle2'));
100  $this->assertEquals($this->substyle2, $this->skin->getStyle('substyle2'));
101  }
102 
103  public function testGetAllSubStyles(): void
104  {
105  $this->skin->addStyle($this->style1);
106  $this->skin->addStyle($this->style2);
107  $this->assertEquals([], $this->skin->getSubstylesOfStyle('style1'));
108  $this->skin->addStyle($this->substyle1);
109  $this->skin->addStyle($this->substyle2);
110  $this->assertEquals(
111  [$this->substyle1->getId() => $this->substyle1],
112  $this->skin->getSubstylesOfStyle('style1')
113  );
114  $this->assertEquals(
115  [$this->substyle2->getId() => $this->substyle2],
116  $this->skin->getSubstylesOfStyle('style2')
117  );
118  $this->substyle2->setSubstyleOf($this->style1->getId());
119  $this->assertEquals([$this->substyle1->getId() => $this->substyle1,
120  $this->substyle2->getId() => $this->substyle2
121  ], $this->skin->getSubstylesOfStyle('style1'));
122  }
123 
124  public function testUpdateParentOfStyle(): void
125  {
126  $this->skin->addStyle($this->style1);
127  $this->skin->addStyle($this->style2);
128  $this->skin->addStyle($this->substyle1);
129  $this->skin->addStyle($this->substyle2);
130  $this->assertEquals(
131  $this->skin->getSubstylesOfStyle('style1'),
132  [$this->substyle1->getId() => $this->substyle1]
133  );
134  $this->assertEquals(
135  $this->skin->getSubstylesOfStyle('style2'),
136  [$this->substyle2->getId() => $this->substyle2]
137  );
138  $this->skin->updateParentStyleOfSubstyles($this->style2->getId(), $this->style1->getId());
139  $this->assertEquals(
140  $this->skin->getSubstylesOfStyle('style1'),
141  [$this->substyle1->getId() => $this->substyle1, $this->substyle2->getId() => $this->substyle2]
142  );
143  }
144 
145  public function testRemoveStyles(): void
146  {
147  $this->skin->addStyle($this->style1);
148  $this->skin->addStyle($this->style2);
149  $this->assertCount(2, $this->skin);
150  $this->skin->removeStyle('style1');
151  $this->assertCount(1, $this->skin);
152  $this->skin->removeStyle('style2');
153  $this->assertCount(0, $this->skin);
154  }
155 
156  public function testRemoveTestTwice(): void
157  {
158  $this->skin->addStyle($this->style1);
159  $this->skin->addStyle($this->style2);
160  $this->assertCount(2, $this->skin);
161  $this->skin->removeStyle('style1');
162  $this->assertCount(1, $this->skin);
163  $this->skin->removeStyle('style2');
164  $this->assertCount(0, $this->skin);
165  try {
166  $this->skin->removeStyle('style2');
167  $this->fail();
168  } catch (ilSystemStyleException $e) {
169  $this->assertEquals(ilSystemStyleException::INVALID_ID, $e->getCode());
170  }
171  }
172 
173  public function testAsXML(): void
174  {
175  $this->skin->addStyle($this->style1);
176  $this->skin->addStyle($this->style2);
177  $this->assertEquals(
178  file_get_contents($this->system_style_config->getCustomizingSkinPath() . 'skin1/template.xml'),
179  $this->skin->asXML()
180  );
181  }
182 
183  public function testWriteXML(): void
184  {
185  $this->skin->addStyle($this->style1);
186  $this->skin->addStyle($this->style2);
187  $this->skin->writeToXMLFile($this->system_style_config->getCustomizingSkinPath() . 'skin1/template-copy.xml');
188  $this->assertEquals(
189  file_get_contents($this->system_style_config->getCustomizingSkinPath() . 'skin1/template-copy.xml'),
190  file_get_contents($this->system_style_config->getCustomizingSkinPath() . 'skin1/template.xml')
191  );
192  unlink($this->system_style_config->getCustomizingSkinPath() . 'skin1/template-copy.xml');
193  }
194 }
testSkinNameAndId()
Definition: ilSkinTest.php:56
ilSkinStyle $style2
Definition: ilSkinTest.php:27
ilSkinStyle $substyle2
Definition: ilSkinTest.php:29
testAddSubstyle()
Definition: ilSkinTest.php:86
testUpdateParentOfStyle()
Definition: ilSkinTest.php:124
testRemoveTestTwice()
Definition: ilSkinTest.php:156
ilSkinStyle $substyle1
Definition: ilSkinTest.php:28
ilSkinStyle $style1
Definition: ilSkinTest.php:26
testGetAllSubStyles()
Definition: ilSkinTest.php:103
ilSkin $skin
Definition: ilSkinTest.php:25
testRemoveStyles()
Definition: ilSkinTest.php:145
testGetSubStyles()
Definition: ilSkinTest.php:94
ilSkin holds an manages the basic data of a skin as provide by the template of the skin...