fileSource = $this->createMock(\Magento\Framework\RequireJs\Config\File\Collector\Aggregated::class); $this->design = $this->getMockForAbstractClass(\Magento\Framework\View\DesignInterface::class); $readFactory = $this->createMock(\Magento\Framework\Filesystem\File\ReadFactory::class); $this->fileReader = $this->createMock(\Magento\Framework\Filesystem\File\Read::class); $readFactory->expects($this->any()) ->method('create') ->will($this->returnValue($this->fileReader)); $repo = $this->createMock(\Magento\Framework\View\Asset\Repository::class); $this->context = $this->getMockBuilder(\Magento\Framework\View\Asset\ContextInterface::class) ->setMethods( [ 'getConfigPath', 'getPath', 'getBaseUrl', 'getAreaCode', 'getThemePath', 'getLocale' ] ) ->getMock(); $repo->expects($this->once())->method('getStaticViewFileContext')->will($this->returnValue($this->context)); $this->minificationMock = $this->getMockBuilder(\Magento\Framework\View\Asset\Minification::class) ->disableOriginalConstructor() ->getMock(); $this->minifyAdapterMock = $this->getMockBuilder(\Magento\Framework\Code\Minifier\AdapterInterface::class) ->getMockForAbstractClass(); $this->repositoryMapMock = $this->getMockBuilder(RepositoryMap::class) ->disableOriginalConstructor() ->getMock(); $this->object = new Config( $this->fileSource, $this->design, $readFactory, $repo, $this->minifyAdapterMock, $this->minificationMock, $this->repositoryMapMock ); } public function testGetConfig() { $this->fileReader->expects($this->any()) ->method('readAll') ->will($this->returnCallback(function ($file) { return $file . ' content'; })); $fileOne = $this->createMock(\Magento\Framework\View\File::class); $fileOne->expects($this->once()) ->method('getFilename') ->will($this->returnValue('some/full/relative/path/file_one.js')); $fileOne->expects($this->once()) ->method('getName') ->will($this->returnValue('file_one.js')); $fileOne->expects($this->once()) ->method('getModule') ->will($this->returnValue('Module_One')); $fileTwo = $this->createMock(\Magento\Framework\View\File::class); $fileTwo->expects($this->once()) ->method('getFilename') ->will($this->returnValue('some/full/relative/path/file_two.js')); $fileTwo->expects($this->once()) ->method('getName') ->will($this->returnValue('file_two.js')); $theme = $this->getMockForAbstractClass(\Magento\Framework\View\Design\ThemeInterface::class); $this->design->expects($this->once()) ->method('getDesignTheme') ->will($this->returnValue($theme)); $this->fileSource->expects($this->once()) ->method('getFiles') ->with($theme, Config::CONFIG_FILE_NAME) ->will($this->returnValue([$fileOne, $fileTwo])); $this->minificationMock ->expects($this->atLeastOnce()) ->method('isEnabled') ->with('js') ->willReturn(true); $expected = <<minifyAdapterMock ->expects($this->once()) ->method('minify') ->with($expected) ->willReturnArgument(0); $actual = $this->object->getConfig(); $this->assertEquals($actual, $expected); } public function testGetMinResolverCode() { $this->minificationMock ->expects($this->once()) ->method('getExcludes') ->with('js') ->willReturn(['\.min\.']); $this->minificationMock ->expects($this->once()) ->method('isEnabled') ->with('js') ->willReturn(true); $this->minifyAdapterMock ->expects($this->once()) ->method('minify') ->willReturnArgument(0); $expected = <<assertEquals($expected, $this->object->getMinResolverCode()); } public function testGetConfigFileRelativePath() { $this->minificationMock ->expects($this->any()) ->method('addMinifiedSign') ->willReturnArgument(0); $this->context->expects($this->once())->method('getConfigPath')->will($this->returnValue('path')); $actual = $this->object->getConfigFileRelativePath(); $this->assertSame('path/requirejs-config.js', $actual); } public function testGetMixinsFileRelativePath() { $this->minificationMock ->expects($this->any()) ->method('addMinifiedSign') ->willReturnArgument(0); $this->context->expects($this->once())->method('getPath')->will($this->returnValue('path')); $actual = $this->object->getMixinsFileRelativePath(); $this->assertSame('path/mage/requirejs/mixins.js', $actual); } public function testGetMinResolverRelativePath() { $this->minificationMock ->expects($this->any()) ->method('addMinifiedSign') ->willReturnArgument(0); $this->context->expects($this->once())->method('getConfigPath')->will($this->returnValue('path')); $actual = $this->object->getMinResolverRelativePath(); $this->assertSame('path/requirejs-min-resolver.js', $actual); } public function testGetBaseConfig() { $this->context->expects($this->once())->method('getPath')->will($this->returnValue('area/theme/locale')); $this->context->expects($this->once()) ->method('getBaseUrl') ->will($this->returnValue('http://base.url/')); $expected = <<object->getBaseConfig(); $this->assertSame($expected, $actual); } }