ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilSkinTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21require_once('vendor/composer/vendor/autoload.php');
22
24{
25 protected ilSkin $skin;
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('style1');
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('style2');
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}
ilSkin $skin
Definition: ilSkinTest.php:25
testRemoveStyles()
Definition: ilSkinTest.php:145
testRemoveTestTwice()
Definition: ilSkinTest.php:156
testUpdateParentOfStyle()
Definition: ilSkinTest.php:124
testSkinNameAndId()
Definition: ilSkinTest.php:56
testAddSubstyle()
Definition: ilSkinTest.php:86
testGetSubStyles()
Definition: ilSkinTest.php:94
ilSkinStyle $style2
Definition: ilSkinTest.php:27
ilSkinStyle $substyle2
Definition: ilSkinTest.php:29
ilSkinStyle $style1
Definition: ilSkinTest.php:26
testGetAllSubStyles()
Definition: ilSkinTest.php:103
ilSkinStyle $substyle1
Definition: ilSkinTest.php:28
ilSkin holds an manages the basic data of a skin as provide by the template of the skin.
Class for advanced editing exception handling in ILIAS.