diff --git a/lib/Config/Renderer.php b/lib/Config/Renderer.php index 85fe173d75..ba6651e03d 100644 --- a/lib/Config/Renderer.php +++ b/lib/Config/Renderer.php @@ -121,4 +121,16 @@ class Renderer { json_decode(file_get_contents($manifest_file), true) : false; } + + function getJsAsset($asset) { + return (!empty($this->assets_manifest_js[$asset])) ? + $this->assets_manifest_js[$asset] : + $asset; + } + + function getCssAsset($asset) { + return (!empty($this->assets_manifest_css[$asset])) ? + $this->assets_manifest_css[$asset] : + $asset; + } } \ No newline at end of file diff --git a/lib/Config/Widget.php b/lib/Config/Widget.php index 52223ba861..20b7e9fbc8 100644 --- a/lib/Config/Widget.php +++ b/lib/Config/Widget.php @@ -87,17 +87,22 @@ class Widget { } function setupDependencies() { - wp_enqueue_style('mailpoet_public', Env::$assets_url.'/css/public.css'); + wp_enqueue_style( + 'mailpoet_public', + Env::$assets_url . '/css/' . $this->renderer->getCssAsset('public.css') + ); - wp_enqueue_script('mailpoet_vendor', - Env::$assets_url.'/js/vendor.js', + wp_enqueue_script( + 'mailpoet_vendor', + Env::$assets_url . '/js/' . $this->renderer->getJsAsset('vendor.js'), array(), Env::$version, true ); - wp_enqueue_script('mailpoet_public', - Env::$assets_url.'/js/public.js', + wp_enqueue_script( + 'mailpoet_public', + Env::$assets_url . '/js/' . $this->renderer->getJsAsset('public.js'), array(), Env::$version, true @@ -110,15 +115,17 @@ class Widget { } function setupAdminWidgetPageDependencies() { - wp_enqueue_script('mailpoet_vendor', - Env::$assets_url.'/js/vendor.js', + wp_enqueue_script( + 'mailpoet_vendor', + Env::$assets_url . '/js/' . $this->renderer->getJsAsset('vendor.js'), array(), Env::$version, true ); - wp_enqueue_script('mailpoet_admin', - Env::$assets_url.'/js/mailpoet.js', + wp_enqueue_script( + 'mailpoet_admin', + Env::$assets_url . '/js/' . $this->renderer->getJsAsset('mailpoet.js'), array(), Env::$version, true diff --git a/tests/unit/Config/RendererTest.php b/tests/unit/Config/RendererTest.php index 7ea27a0535..8f2e48e445 100644 --- a/tests/unit/Config/RendererTest.php +++ b/tests/unit/Config/RendererTest.php @@ -23,8 +23,8 @@ class RendererTest extends MailPoetTest { 'script2.js' => 'script2.hash.js' ); $assets_manifest_css = array( - 'style1.js' => 'style1.hash.js', - 'style2.js' => 'style2.hash.js' + 'style1.css' => 'style1.hash.css', + 'style2.css' => 'style2.hash.css' ); file_put_contents(Env::$temp_path . '/js.json', json_encode($assets_manifest_js)); file_put_contents(Env::$temp_path . '/css.json', json_encode($assets_manifest_css)); @@ -37,6 +37,28 @@ class RendererTest extends MailPoetTest { expect($this->renderer->getAssetManifest(Env::$temp_path . '/js.json'))->false(); } + function testItCanGetCssAsset() { + $assets_manifest_css = array( + 'style1.css' => 'style1.hash.css', + 'style2.css' => 'style2.hash.css' + ); + $renderer = $this->renderer; + $renderer->assets_manifest_css = $assets_manifest_css; + expect($renderer->getCssAsset('style1.css'))->equals('style1.hash.css'); + expect($renderer->getCssAsset('style2.css'))->equals('style2.hash.css'); + } + + function testItCanGetJsAsset() { + $assets_manifest_js = array( + 'script1.js' => 'script1.hash.js', + 'script2.js' => 'script2.hash.js' + ); + $renderer = $this->renderer; + $renderer->assets_manifest_js = $assets_manifest_js; + expect($renderer->getJsAsset('script1.js'))->equals('script1.hash.js'); + expect($renderer->getJsAsset('script2.js'))->equals('script2.hash.js'); + } + function testItWillNotEnableCacheWhenWpDebugIsOn() { $result = $this->renderer->detectCache(); expect($result)->equals(false);