/** * Add asset to the bundle * * @param LocalInterface $asset * @return bool */ public function addAsset(LocalInterface $asset) { if (!$this->isValidAsset($asset)) { return false; } $this->bundle->addAsset($asset); return true; }
/** * @return void * @covers \Magento\Framework\View\Asset\Bundle::getAssetKey * @covers \Magento\Framework\View\Asset\Bundle::save */ public function testMinSuffix() { $this->minificationMock->expects($this->any())->method('addMinifiedSign')->withConsecutive(['onefile.js'], ['onefile.js'], ['/js/bundle/bundle0.js'])->willReturnOnConsecutiveCalls('onefile.min.js', 'onefile.min.js', '/js/bundle/bundle0.min.js'); $contextMock = $this->getMockBuilder('Magento\\Framework\\View\\Asset\\File\\FallbackContext')->disableOriginalConstructor()->getMock(); $contextMock->expects($this->any())->method('getAreaCode')->willReturn('area'); $contextMock->expects($this->any())->method('getThemePath')->willReturn('theme-path'); $contextMock->expects($this->any())->method('getLocale')->willReturn('locale'); $assetMock = $this->getMockBuilder('Magento\\Framework\\View\\Asset\\LocalInterface')->setMethods(['getContentType', 'getContext'])->getMockForAbstractClass(); $assetMock->expects($this->any())->method('getContext')->willReturn($contextMock); $assetMock->expects($this->any())->method('getContentType')->willReturn('js'); $assetMock->expects($this->any())->method('getFilePath')->willReturn('onefile.js'); $writeMock = $this->getMockBuilder('Magento\\Framework\\Filesystem\\Directory\\WriteInterface')->getMockForAbstractClass(); $writeMock->expects($this->once())->method('writeFile')->with('/js/bundle/bundle0.min.js', $this->stringContains('onefile.min.js')); $this->filesystemMock->expects($this->any())->method('getDirectoryWrite')->willReturn($writeMock); $this->bundle->addAsset($assetMock); $this->bundle->flush(); }