19 declare(strict_types=1);
21 require_once(
'libs/composer/vendor/autoload.php');
31 protected function setUp(): void
35 $this->skin =
new ilSkin(
'skin1',
'skin 1');
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');
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');
49 $this->substyle1 =
new ilSkinStyle(
'substyle1',
'Substyle 1');
50 $this->substyle1->setSubstyleOf($this->style1->getId());
52 $this->substyle2 =
new ilSkinStyle(
'substyle2',
'Substyle 2');
53 $this->substyle2->setSubstyleOf($this->style2->getId());
58 $this->assertEquals(
'skin1', $this->skin->getId());
59 $this->assertEquals(
'skin 1', $this->skin->getName());
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());
79 $this->skin->addStyle($this->style1);
80 $this->skin->addStyle($this->style2);
82 $this->assertNotEquals($this->style1, $this->skin->getStyle(
'style2'));
83 $this->assertEquals($this->style2, $this->skin->getStyle(
'style2'));
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);
96 $this->skin->addStyle($this->substyle1);
97 $this->skin->addStyle($this->substyle2);
99 $this->assertNotEquals($this->substyle1, $this->skin->getStyle(
'substyle2'));
100 $this->assertEquals($this->substyle2, $this->skin->getStyle(
'substyle2'));
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);
112 $this->skin->getSubstylesOfStyle(
'style1')
116 $this->skin->getSubstylesOfStyle(
'style2')
118 $this->substyle2->setSubstyleOf($this->style1->getId());
121 ], $this->skin->getSubstylesOfStyle(
'style1'));
126 $this->skin->addStyle($this->style1);
127 $this->skin->addStyle($this->style2);
128 $this->skin->addStyle($this->substyle1);
129 $this->skin->addStyle($this->substyle2);
131 $this->skin->getSubstylesOfStyle(
'style1'),
135 $this->skin->getSubstylesOfStyle(
'style2'),
138 $this->skin->updateParentStyleOfSubstyles($this->style2->getId(), $this->style1->getId());
140 $this->skin->getSubstylesOfStyle(
'style1'),
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);
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);
166 $this->skin->removeStyle(
'style2');
175 $this->skin->addStyle($this->style1);
176 $this->skin->addStyle($this->style2);
178 file_get_contents($this->system_style_config->getCustomizingSkinPath() .
'skin1/template.xml'),
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');
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')
192 unlink($this->system_style_config->getCustomizingSkinPath() .
'skin1/template-copy.xml');
testUpdateParentOfStyle()
ilSkin holds an manages the basic data of a skin as provide by the template of the skin...