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(
'style1');
    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(
'style2');
    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...