diff --git a/core/lib/Drupal/Core/Asset/AssetResolver.php b/core/lib/Drupal/Core/Asset/AssetResolver.php index 87fd626..72fb51b 100644 --- a/core/lib/Drupal/Core/Asset/AssetResolver.php +++ b/core/lib/Drupal/Core/Asset/AssetResolver.php @@ -217,7 +217,7 @@ public function getJsAssets(AttachedAssetsInterface $assets, $optimize) { // Add the theme name to the cache key since themes may implement // hook_library_info_alter(). $libraries_to_load = $this->getLibrariesToLoad($assets); - $cid = 'js:' . $theme_info->getName() . ':' . Crypt::hashBase64(serialize($libraries_to_load)) . (int) (count($assets->getSettings()) > 0) . (int) $optimize; + $cid = 'js:' . $theme_info->getName() . ':' . $this->languageManager->getCurrentLanguage()->getId() . ':' . Crypt::hashBase64(serialize($libraries_to_load)) . (int) (count($assets->getSettings()) > 0) . (int) $optimize; if ($cached = $this->cache->get($cid)) { list($js_assets_header, $js_assets_footer, $settings, $settings_in_header) = $cached->data; diff --git a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php index 80856ad..6126099 100644 --- a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php @@ -92,7 +92,20 @@ protected function setUp() { $this->themeManager->expects($this->any()) ->method('getActiveTheme') ->willReturn($active_theme); + + $this->languageManager = $this->getMock('\Drupal\Core\Language\LanguageManagerInterface'); + $english = $this->getMock('\Drupal\Core\Language\LanguageInterface'); + $english->expects($this->any()) + ->method('getId') + ->willReturn('en'); + $japanese = $this->getMock('\Drupal\Core\Language\LanguageInterface'); + $japanese->expects($this->any()) + ->method('getId') + ->willReturn('jp'); $this->languageManager = $this->getMock('\Drupal\Core\Language\LanguageManagerInterface'); + $this->languageManager->expects($this->any()) + ->method('getCurrentLanguage') + ->will($this->onConsecutiveCalls($english, $english, $japanese, $japanese)); $this->cache = new TestMemoryBackend('llama'); $this->assetResolver = new AssetResolver($this->libraryDiscovery, $this->libraryDependencyResolver, $this->moduleHandler, $this->themeManager, $this->languageManager, $this->cache); @@ -116,6 +129,10 @@ public function testGetJsAssets(AttachedAssetsInterface $assets_a, AttachedAsset $this->assetResolver->getJsAssets($assets_a, FALSE); $this->assetResolver->getJsAssets($assets_b, FALSE); $this->assertCount($expected_cache_item_count, $this->cache->getAllCids()); + + $this->assetResolver->getJsAssets($assets_a, FALSE); + $this->assetResolver->getJsAssets($assets_b, FALSE); + $this->assertCount($expected_cache_item_count * 2, $this->cache->getAllCids()); } public function providerAttachedAssets() {