Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
FileListTest.php
Go to the documentation of this file.
1 <?php
8 
9 class FileListTest extends \PHPUnit\Framework\TestCase
10 {
14  private $_model;
15 
19  private $_baseFile;
20 
24  private $_themeFile;
25 
29  protected $collator;
30 
31  protected function setUp()
32  {
33  $this->_baseFile = $this->_createViewFile('fixture.xml', 'Fixture_TestModule');
34  $this->_themeFile = $this->_createViewFile('fixture.xml', 'Fixture_TestModule', 'area/theme/path');
35  $this->collator = $this->createPartialMock(\Magento\Framework\View\File\FileList\Collator::class, ['collate']);
36  $this->_model = new \Magento\Framework\View\File\FileList($this->collator);
37  $this->_model->add([$this->_baseFile, $this->_themeFile]);
38  }
39 
48  protected function _createViewFile($filename, $module, $themeFullPath = null)
49  {
50  $theme = null;
51  if ($themeFullPath !== null) {
52  $theme = $this->getMockForAbstractClass(\Magento\Framework\View\Design\ThemeInterface::class);
53  $theme->expects($this->any())->method('getFullPath')->will($this->returnValue($themeFullPath));
54  }
55  return new \Magento\Framework\View\File($filename, $module, $theme);
56  }
57 
58  public function testGetAll()
59  {
60  $this->assertSame([$this->_baseFile, $this->_themeFile], $this->_model->getAll());
61  }
62 
63  public function testAddBaseFile()
64  {
65  $file = $this->_createViewFile('new.xml', 'Fixture_TestModule');
66  $this->_model->add([$file]);
67  $this->assertSame([$this->_baseFile, $this->_themeFile, $file], $this->_model->getAll());
68  }
69 
70  public function testAddThemeFile()
71  {
72  $file = $this->_createViewFile('new.xml', 'Fixture_TestModule', 'area/theme/path');
73  $this->_model->add([$file]);
74  $this->assertSame([$this->_baseFile, $this->_themeFile, $file], $this->_model->getAll());
75  }
76 
81  public function testAddBaseFileException()
82  {
83  $file = $this->_createViewFile('test/fixture.xml', 'Fixture_TestModule');
84  $this->_model->add([$file]);
85  }
86 
91  public function testAddThemeFileException()
92  {
93  $file = $this->_createViewFile('test/fixture.xml', 'Fixture_TestModule', 'area/theme/path');
94  $this->_model->add([$file]);
95  }
96 
97  public function testReplace()
98  {
99  $files = ['1'];
100  $result = ['3'];
101  $this->collator
102  ->expects($this->once())
103  ->method('collate')
104  ->with(
105  $this->equalTo($files),
106  $this->equalTo(
107  [
108  $this->_baseFile->getFileIdentifier() => $this->_baseFile,
109  $this->_themeFile->getFileIdentifier() => $this->_themeFile,
110  ]
111  )
112  )
113  ->will($this->returnValue($result));
114  $this->assertNull($this->_model->replace($files));
115  $this->assertSame($result, $this->_model->getAll());
116  }
117 }
_createViewFile($filename, $module, $themeFullPath=null)
$theme
foreach($appDirs as $dir) $files