/**
  * @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'));
 }
예제 #2
0
    /**
     * @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;
    }