19 declare(strict_types=1);
21 require_once(
'libs/composer/vendor/autoload.php');
30 protected function setUp(): void
34 if (!defined(
'PATH_TO_SCSS')) {
35 if (file_exists(
'ilias.ini.php')) {
36 $ini = parse_ini_file(
'ilias.ini.php',
true);
37 define(
'PATH_TO_SCSS',
$ini[
'tools'][
'lessc'] ??
'');
39 define(
'PATH_TO_SCSS',
'');
43 $this->skin =
new ilSkin(
'skin1',
'skin 1');
45 $this->style1 =
new ilSkinStyle(
'style1',
'Style 1');
46 $this->style1->setCssFile(
'style1css');
47 $this->style1->setImageDirectory(
'style1image');
48 $this->style1->setSoundDirectory(
'style1sound');
49 $this->style1->setFontDirectory(
'style1font');
51 $this->style2 =
new ilSkinStyle(
'style2',
'Style 2');
52 $this->style2->setCssFile(
'style2css');
53 $this->style2->setImageDirectory(
'style2image');
54 $this->style2->setSoundDirectory(
'style2sound');
55 $this->style2->setFontDirectory(
'style2font');
59 $this->skin_directory = $this->system_style_config->getCustomizingSkinPath() . $this->skin->getId();
69 $this->assertTrue(is_dir($this->system_style_config->getCustomizingSkinPath() .
'newSkin'));
71 $this->assertFalse(is_dir($this->system_style_config->getCustomizingSkinPath() .
'newSkin'));
78 $this->assertTrue(is_dir($this->skin_directory));
87 $this->assertTrue(is_dir($this->system_style_config->getCustomizingSkinPath() .
'newSkin2'));
91 $this->assertFalse(is_dir($this->system_style_config->getCustomizingSkinPath() .
'newSkin2'));
96 $new_style =
new ilSkinStyle(
'style1new',
'new Style');
97 $new_style->setCssFile(
'newcss');
98 $new_style->setImageDirectory(
'newimage');
99 $new_style->setSoundDirectory(
'newsound');
100 $new_style->setFontDirectory(
'newfont');
104 $this->assertTrue(is_dir($this->skin_directory.
'/style1/style1image'));
105 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
106 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
107 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
108 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
109 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
110 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
112 $this->assertFalse(is_dir($this->skin_directory .
'/style1new/newimage'));
113 $this->assertFalse(is_dir($this->skin_directory .
'/style1new/newsound'));
114 $this->assertFalse(is_dir($this->skin_directory .
'/style1new/newfont'));
115 $this->assertFalse(is_file($this->skin_directory .
'/style1new/newcss.css'));
116 $this->assertFalse(is_file($this->skin_directory .
'/style1new/newcss.scss'));
117 $this->assertFalse(is_file($this->skin_directory .
'/style1new/010-settings/variables1.scss'));
118 $this->assertFalse(is_file($this->skin_directory .
'/style1new/010-settings/variables2.scss'));
122 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1image'));
123 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
124 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
125 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
126 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
127 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
128 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
130 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/newimage'));
131 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/newsound'));
132 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/newfont'));
133 $this->assertTrue(is_file($this->skin_directory .
'/style1new/newcss.css'));
134 $this->assertTrue(is_file($this->skin_directory .
'/style1new/newcss.scss'));
135 $this->assertTrue(is_file($this->skin_directory .
'/style1new/010-settings/variables1.scss'));
136 $this->assertTrue(is_file($this->skin_directory .
'/style1new/010-settings/variables2.scss'));
143 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1image'));
144 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
145 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
146 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
147 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
148 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
149 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
151 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2image'));
152 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2sound'));
153 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2font'));
154 $this->assertTrue(is_file($this->skin_directory .
'/style2/style2.css'));
155 $this->assertTrue(is_file($this->skin_directory .
'/style2/style2.scss'));
156 $this->assertTrue(is_file($this->skin_directory .
'/style2/010-settings/variables1.scss'));
157 $this->assertTrue(is_file($this->skin_directory .
'/style2/010-settings/variables2.scss'));
161 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1image'));
162 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1sound'));
163 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1font'));
164 $this->assertFalse(is_file($this->skin_directory .
'/style1/style1.css'));
165 $this->assertFalse(is_file($this->skin_directory .
'/style1/style1.scss'));
166 $this->assertFalse(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
167 $this->assertFalse(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
169 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2image'));
170 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2sound'));
171 $this->assertTrue(is_dir($this->skin_directory .
'/style2/style2font'));
172 $this->assertTrue(is_file($this->skin_directory .
'/style2/style2.css'));
173 $this->assertTrue(is_file($this->skin_directory .
'/style2/style2.scss'));
174 $this->assertTrue(is_file($this->skin_directory .
'/style2/010-settings/variables1.scss'));
175 $this->assertTrue(is_file($this->skin_directory .
'/style2/010-settings/variables2.scss'));
183 $old_style = clone $skin->
getStyle($this->style1->getId());
184 $new_style = $skin->
getStyle($this->style1->getId());
186 $new_style->setId(
'style1new');
187 $new_style->setName(
'new Style');
188 $new_style->setCssFile(
'style1new');
189 $new_style->setImageDirectory(
'style1newimage');
190 $new_style->setSoundDirectory(
'style1newsound');
191 $new_style->setFontDirectory(
'style1newfont');
193 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1image'));
194 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
195 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
196 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
197 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
198 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
199 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
203 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1image'));
204 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1sound'));
205 $this->assertFalse(is_dir($this->skin_directory .
'/style1/style1font'));
206 $this->assertFalse(is_file($this->skin_directory .
'/style1/style1.css'));
207 $this->assertFalse(is_file($this->skin_directory .
'/style1/style1.scss'));
208 $this->assertFalse(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
209 $this->assertFalse(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
211 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/style1newimage'));
212 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/style1newsound'));
213 $this->assertTrue(is_dir($this->skin_directory .
'/style1new/style1newfont'));
214 $this->assertTrue(is_file($this->skin_directory .
'/style1new/style1new.css'));
215 $this->assertTrue(is_file($this->skin_directory .
'/style1new/010-settings/variables1.scss'));
216 $this->assertTrue(is_file($this->skin_directory .
'/style1new/010-settings/variables2.scss'));
224 $this->assertTrue(is_dir($this->system_style_config->getCustomizingSkinPath() . $skin->
getId()));
226 $this->assertFalse(is_dir($this->system_style_config->getCustomizingSkinPath() . $skin->
getId()));
233 $new_sub_style =
new ilSkinStyle(
'substyle1new',
'new Style');
234 $new_sub_style->setCssFile(
'subnewcss');
235 $new_sub_style->setImageDirectory(
'subnewimage');
236 $new_sub_style->setSoundDirectory(
'subnewsound');
237 $new_sub_style->setFontDirectory(
'subnewfont');
239 $new_sub_style->setSubstyleOf(
"style1");
241 $this->assertTrue(is_dir($this->skin_directory.
'/style1/style1image'));
242 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
243 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
244 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
245 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
246 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
247 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
249 $this->assertFalse(is_dir($this->skin_directory .
'/substyle1new/subnewimage'));
250 $this->assertFalse(is_dir($this->skin_directory .
'/substyle1new/subnewsound'));
251 $this->assertFalse(is_dir($this->skin_directory .
'/substyle1new/subnewfont'));
252 $this->assertFalse(is_file($this->skin_directory .
'/substyle1new/newcss.css'));
253 $this->assertFalse(is_file($this->skin_directory .
'/substyle1new/newcss.scss'));
254 $this->assertFalse(is_file($this->skin_directory .
'/substyle1new/010-settings/variables1.scss'));
255 $this->assertFalse(is_file($this->skin_directory .
'/substyle1new/010-settings/variables2.scss'));
262 $this->assertTrue(is_dir($this->skin_directory.
'/style1/style1image'));
263 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1sound'));
264 $this->assertTrue(is_dir($this->skin_directory .
'/style1/style1font'));
265 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.css'));
266 $this->assertTrue(is_file($this->skin_directory .
'/style1/style1.scss'));
267 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables1.scss'));
268 $this->assertTrue(is_file($this->skin_directory .
'/style1/010-settings/variables2.scss'));
270 $this->assertTrue(is_dir($this->skin_directory .
'/substyle1new/subnewimage'));
271 $this->assertTrue(is_dir($this->skin_directory .
'/substyle1new/subnewsound'));
272 $this->assertTrue(is_dir($this->skin_directory .
'/substyle1new/subnewfont'));
273 $this->assertTrue(is_file($this->skin_directory .
'/substyle1new/subnewcss.css'));
274 $this->assertTrue(is_file($this->skin_directory .
'/substyle1new/subnewcss.scss'));
275 $this->assertTrue(is_file($this->skin_directory .
'/substyle1new/010-settings/variables1.scss'));
276 $this->assertTrue(is_file($this->skin_directory .
'/substyle1new/010-settings/variables2.scss'));
279 $this->assertEquals(
"subnewcss", $sub_style->getCssFile());
280 $this->assertEquals(
"subnewimage", $sub_style->getImageDirectory());
281 $this->assertEquals(
"subnewsound", $sub_style->getSoundDirectory());
282 $this->assertEquals(
"subnewfont", $sub_style->getFontDirectory());
283 $this->assertEquals(
"style1", $sub_style->getSubstyleOf());
delete()
Deletes the container of a skin completely.
Factory to create Skin classes holds an manages the basic data of a skin as provide by the template o...
addStyle(ilSkinStyle $style)
ilSystemStyleMessageStack $message_stack
deleteStyle(ilSkinStyle $style)
Deletes a style completely.
updateStyle(string $style_id, ilSkinStyle $old_style)
Updates one single style.
ilSkinStyleContainer $container
create(ilSystemStyleMessageStack $message_stack)
Creates a new skin.
testUpdateSkinNoIdChange()
testUpdateSkinWithChangedID()
updateSkin(ilSkin $old_skin=null)
Updates the skin.
ilSkin holds an manages the basic data of a skin as provide by the template of the skin...