Ejemplo n.º 1
0
 /**
  * @test
  * @return void
  */
 public function testLoadData()
 {
     $relativeDir = 'dir';
     $fileContent = 'content file';
     $media = ['preview_image' => 'preview.jpg'];
     $themeTitle = 'Theme title';
     $themeConfigs = ['frontend/theme/code'];
     $themeConfig = $this->getMockBuilder('Magento\\Framework\\Config\\Theme')->disableOriginalConstructor()->getMock();
     $theme = $this->getMockBuilder('Magento\\Theme\\Model\\Theme')->disableOriginalConstructor()->getMock();
     $parentTheme = ['parentThemeCode'];
     $parentThemePath = 'frontend/parent/theme';
     $this->directory->expects($this->once())->method('search')->with($relativeDir)->willReturn($themeConfigs);
     $this->directory->expects($this->any())->method('isExist')->with($themeConfigs[0])->willReturn(true);
     $this->directory->expects($this->any())->method('readFile')->with($themeConfigs[0])->willReturn($fileContent);
     $this->directory->expects($this->any())->method('getRelativePath')->with($themeConfigs[0])->willReturn($themeConfigs[0]);
     $this->directory->expects($this->any())->method('getAbsolutePath')->willReturnMap([[$themeConfigs[0], $themeConfigs[0]], [null, '']]);
     $this->themeConfigFactory->expects($this->once())->method('create')->with(['configContent' => $fileContent])->willReturn($themeConfig);
     $this->directory->expects($this->at(1))->method('getAbsolutePath')->willReturn('');
     $this->entityFactory->expects($this->any())->method('create')->with('Magento\\Theme\\Model\\Theme')->willReturn($theme);
     $themeConfig->expects($this->once())->method('getMedia')->willReturn($media);
     $themeConfig->expects($this->once())->method('getParentTheme')->willReturn($parentTheme);
     $themeConfig->expects($this->once())->method('getThemeTitle')->willReturn($themeTitle);
     $theme->expects($this->once())->method('addData')->with(['parent_id' => null, 'type' => ThemeInterface::TYPE_PHYSICAL, 'area' => 'frontend', 'theme_path' => 'theme', 'code' => 'theme', 'theme_title' => $themeTitle, 'preview_image' => $media['preview_image'], 'parent_theme_path' => $parentTheme[0]])->willReturnSelf();
     $theme->expects($this->once())->method('getData')->with('parent_theme_path')->willReturn($parentThemePath);
     $theme->expects($this->once())->method('getArea')->willReturn('frontend');
     $this->model->addTargetPattern($relativeDir);
     $this->assertInstanceOf(get_class($this->model), $this->model->loadData());
 }
Ejemplo n.º 2
0
 /**
  * Theme registration
  *
  * @param string $pathPattern
  * @return $this
  */
 public function register($pathPattern = '')
 {
     if (empty($pathPattern)) {
         $this->_themeCollection->addDefaultPattern('*');
     } else {
         $this->_themeCollection->addTargetPattern($pathPattern);
     }
     foreach ($this->_themeCollection as $theme) {
         $this->_registerThemeRecursively($theme);
     }
     $this->checkPhysicalThemes()->checkAllowedThemeRelations();
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Load from configuration
  *
  * @dataProvider expectedThemeDataFromConfiguration
  */
 public function testLoadFromConfiguration($themePath, $expectedData)
 {
     $theme = $this->_model->addTargetPattern($themePath)->getFirstItem();
     $this->assertEquals($expectedData, $theme->getData());
 }