/** * @return void */ public function testGetExcludes() { $this->scopeConfigMock->expects($this->once())->method('getValue')->with('dev/js/minify_exclude')->willReturn(" /tiny_mce/ \n" . " /tiny_mce2/ "); $expected = ['/tiny_mce/', '/tiny_mce2/']; $this->assertEquals($expected, $this->minification->getExcludes('js')); /** check cache: */ $this->assertEquals($expected, $this->minification->getExcludes('js')); }
/** * @return string */ public function getMinResolverCode() { $excludes = []; foreach ($this->minification->getExcludes('js') as $expression) { $excludes[] = '!url.match(/' . str_replace('/', '\\/', $expression) . '/)'; } $excludesCode = empty($excludes) ? 'true' : implode('&&', $excludes); $result = <<<code if (!require.s.contexts._.__load) { require.s.contexts._.__load = require.s.contexts._.load; require.s.contexts._.load = function(id, url) { if ({$excludesCode}) { url = url.replace(/(\\.min)?\\.js\$/, '.min.js'); } return require.s.contexts._.__load.apply(require.s.contexts._, [id, url]); } } code; if ($this->minification->isEnabled('js')) { $result = $this->minifyAdapter->minify($result); } return $result; }