From b1128351dac286c361cdfa42ea14510660ad2e9f Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Wed, 22 Jan 2014 20:35:48 +0000
Subject: [PATCH] Issue #2175823 by damiankloip, olli: Remove calls to
 invalidate/deleteTags on bins.

---
 core/includes/menu.inc                                |  5 +++--
 core/includes/schema.inc                              |  3 ++-
 core/lib/Drupal/Core/Cache/CacheCollector.php         |  2 +-
 core/lib/Drupal/Core/Entity/EntityManager.php         |  3 ++-
 core/lib/Drupal/Core/Entity/EntityViewBuilder.php     |  5 +++--
 core/lib/Drupal/Core/Extension/ThemeHandler.php       |  3 ++-
 core/lib/Drupal/Core/Plugin/DefaultPluginManager.php  |  3 ++-
 .../Drupal/Core/Plugin/Discovery/CacheDecorator.php   |  3 ++-
 core/lib/Drupal/Core/Theme/Registry.php               |  3 ++-
 core/modules/field/lib/Drupal/field/FieldInfo.php     |  3 ++-
 core/modules/filter/filter.module                     |  3 ++-
 .../filter/lib/Drupal/filter/Entity/FilterFormat.php  |  5 +++--
 .../Drupal/locale/Tests/LocaleTranslationUiTest.php   |  2 +-
 core/modules/locale/locale.module                     |  3 ++-
 core/modules/node/lib/Drupal/node/Entity/NodeType.php |  7 ++++---
 core/modules/system/system.admin.inc                  |  3 ++-
 .../lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php |  3 ++-
 core/modules/toolbar/toolbar.module                   |  3 ++-
 core/modules/tour/tour.api.php                        |  4 ++--
 core/modules/views/views.api.php                      |  2 +-
 .../Drupal/Tests/Core/Cache/CacheCollectorTest.php    | 11 +++++++++++
 .../Drupal/Tests/Core/Entity/EntityManagerTest.php    |  1 +
 .../Drupal/Tests/Core/Extension/ThemeHandlerTest.php  | 11 +++++++++++
 .../Tests/Core/Plugin/DefaultPluginManagerTest.php    | 11 +++++++++++
 24 files changed, 76 insertions(+), 26 deletions(-)

diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index c41e11e59fa2..d0432dd44d7b 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -7,6 +7,7 @@
 
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\String;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Language\Language;
 use Drupal\Core\Routing\RequestHelper;
@@ -480,7 +481,7 @@ function menu_get_item($path = NULL, $router_item = NULL) {
     if (\Drupal::state()->get('menu_rebuild_needed') || !\Drupal::state()->get('menu.masks')) {
       menu_router_rebuild();
       \Drupal::service('router.builder')->rebuild();
-      \Drupal::cache()->deleteTags(array('local_task' => 1));
+      Cache::deleteTags(array('local_task' => 1));
     }
     $original_map = arg(NULL, $path);
 
@@ -2480,7 +2481,7 @@ function menu_get_active_title() {
  * Clears the cached cached data for a single named menu.
  */
 function menu_cache_clear($menu_name = 'tools') {
-  cache('menu')->deleteTags(array('menu' => $menu_name));
+  Cache::deleteTags(array('menu' => $menu_name));
   // Also clear the menu system static caches.
   menu_reset_static_cache();
 }
diff --git a/core/includes/schema.inc b/core/includes/schema.inc
index d0fd30b702dc..83ce4838f8e3 100644
--- a/core/includes/schema.inc
+++ b/core/includes/schema.inc
@@ -5,6 +5,7 @@
  * Schema API handling functions.
  */
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Database\Database;
 use Drupal\Core\Utility\SchemaCache;
@@ -94,7 +95,7 @@ function drupal_get_complete_schema($rebuild = FALSE) {
       drupal_alter('schema', $schema);
 
       if ($rebuild) {
-        cache()->deleteTags(array('schema' => TRUE));
+        Cache::deleteTags(array('schema' => TRUE));
       }
       // If the schema is empty, avoid saving it: some database engines require
       // the schema to perform queries, and this could lead to infinite loops.
diff --git a/core/lib/Drupal/Core/Cache/CacheCollector.php b/core/lib/Drupal/Core/Cache/CacheCollector.php
index 21d54878ff33..aa1fff22e165 100644
--- a/core/lib/Drupal/Core/Cache/CacheCollector.php
+++ b/core/lib/Drupal/Core/Cache/CacheCollector.php
@@ -268,7 +268,7 @@ public function reset() {
   public function clear() {
     $this->reset();
     if ($this->tags) {
-      $this->cache->deleteTags($this->tags);
+      Cache::deleteTags($this->tags);
     }
     else {
       $this->cache->delete($this->cid);
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index db65b3d68d94..6221633ec46f 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -13,6 +13,7 @@
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\String;
 use Drupal\Core\Field\FieldDefinition;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\LanguageManager;
@@ -395,7 +396,7 @@ public function getFieldDefinitionsByConstraints($entity_type, array $constraint
   public function clearCachedFieldDefinitions() {
     unset($this->entityFieldInfo);
     unset($this->fieldDefinitions);
-    $this->cache->deleteTags(array('entity_field_info' => TRUE));
+    Cache::deleteTags(array('entity_field_info' => TRUE));
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
index 81e6c387f4f3..fb19c4eae80e 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Entity;
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\Language;
@@ -261,10 +262,10 @@ public function resetCache(array $entities = NULL) {
         $tags[$this->entityType][$id] = $id;
         $tags[$this->entityType . '_view_' . $entity->bundle()] = TRUE;
       }
-      \Drupal::cache($this->cacheBin)->deleteTags($tags);
+      Cache::deleteTags($tags);
     }
     else {
-      \Drupal::cache($this->cacheBin)->deleteTags(array($this->entityType . '_view' => TRUE));
+      Cache::deleteTags(array($this->entityType . '_view' => TRUE));
     }
   }
 
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index fbd42c59b486..c25dcd962752 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Extension;
 
 use Drupal\Component\Utility\String;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Config\ConfigFactory;
 use Drupal\Core\Config\ConfigInstallerInterface;
@@ -465,7 +466,7 @@ protected function resetSystem() {
 
     // @todo It feels wrong to have the requirement to clear the local tasks
     //   cache here.
-    $this->cacheBackend->deleteTags(array('local_task' => 1));
+    Cache::deleteTags(array('local_task' => 1));
     $this->themeRegistryRebuild();
   }
 
diff --git a/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php b/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
index 712c5eec4b6c..32647355bb88 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Plugin;
 
 use Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Plugin\Discovery\ContainerDerivativeDiscoveryDecorator;
 use Drupal\Component\Plugin\PluginManagerBase;
 use Drupal\Component\Plugin\PluginManagerInterface;
@@ -184,7 +185,7 @@ public function clearCachedDefinitions() {
     if ($this->cacheBackend) {
       if ($this->cacheTags) {
         // Use the cache tags to clear the cache.
-        $this->cacheBackend->deleteTags($this->cacheTags);
+        Cache::deleteTags($this->cacheTags);
       }
       elseif ($this->languageManager) {
         $cache_keys = array();
diff --git a/core/lib/Drupal/Core/Plugin/Discovery/CacheDecorator.php b/core/lib/Drupal/Core/Plugin/Discovery/CacheDecorator.php
index 15235f987e48..f5d9a8446689 100644
--- a/core/lib/Drupal/Core/Plugin/Discovery/CacheDecorator.php
+++ b/core/lib/Drupal/Core/Plugin/Discovery/CacheDecorator.php
@@ -9,6 +9,7 @@
 
 use Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface;
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 
 /**
@@ -157,7 +158,7 @@ protected function setCachedDefinitions($definitions) {
   public function clearCachedDefinitions() {
     // If there are any cache tags, clear cache based on those.
     if (!empty($this->cacheTags)) {
-      $this->cache($this->cacheBin)->deleteTags($this->cacheTags);
+      Cache::deleteTags($this->cacheTags);
     }
     // Otherwise, just delete the specified cache key.
     else if (isset($this->cacheKey)) {
diff --git a/core/lib/Drupal/Core/Theme/Registry.php b/core/lib/Drupal/Core/Theme/Registry.php
index 3c5ada7ac036..cbe6643928d9 100644
--- a/core/lib/Drupal/Core/Theme/Registry.php
+++ b/core/lib/Drupal/Core/Theme/Registry.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Theme;
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\DestructableInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
@@ -550,7 +551,7 @@ public function reset() {
     $this->runtimeRegistry = NULL;
 
     $this->registry = NULL;
-    $this->cache->invalidateTags(array('theme_registry' => TRUE));
+    Cache::invalidateTags(array('theme_registry' => TRUE));
     return $this;
   }
 
diff --git a/core/modules/field/lib/Drupal/field/FieldInfo.php b/core/modules/field/lib/Drupal/field/FieldInfo.php
index 4df7ab894903..e458c0f80438 100644
--- a/core/modules/field/lib/Drupal/field/FieldInfo.php
+++ b/core/modules/field/lib/Drupal/field/FieldInfo.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\field;
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Config\ConfigFactory;
 use Drupal\Core\Field\FieldTypePluginManager;
@@ -160,7 +161,7 @@ public function flush() {
 
     $this->bundleExtraFields = array();
 
-    $this->cacheBackend->deleteTags(array('field_info' => TRUE));
+    Cache::deleteTags(array('field_info' => TRUE));
   }
 
   /**
diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index f206e621d3f5..ecd4e58fc8e4 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -6,6 +6,7 @@
  */
 
 use Drupal\Component\Utility\String;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Language\Language;
 use Drupal\Core\Session\AccountInterface;
@@ -229,7 +230,7 @@ function filter_formats(AccountInterface $account = NULL) {
  * @see filter_formats()
  */
 function filter_formats_reset() {
-  cache()->deleteTags(array('filter_formats' => TRUE));
+  Cache::deleteTags(array('filter_formats' => TRUE));
   drupal_static_reset('filter_formats');
 }
 
diff --git a/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php b/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php
index 715820b53bee..fa0d2cc67091 100644
--- a/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php
+++ b/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\filter\Entity;
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\EntityStorageControllerInterface;
 use Drupal\filter\FilterFormatInterface;
@@ -183,7 +184,7 @@ public function disable() {
 
     // Clear the filter cache whenever a text format is disabled.
     filter_formats_reset();
-    cache('filter')->deleteTags(array('filter_format' => $this->format));
+    Cache::deleteTags(array('filter_format' => $this->format));
 
     return $this;
   }
@@ -220,7 +221,7 @@ public function postSave(EntityStorageControllerInterface $storage_controller, $
 
     if ($update) {
       // Clear the filter cache whenever a text format is updated.
-      cache('filter')->deleteTags(array('filter_format' => $this->id()));
+      Cache::deleteTags(array('filter_format' => $this->id()));
     }
     else {
       // Default configuration of modules and installation profiles is allowed
diff --git a/core/modules/locale/lib/Drupal/locale/Tests/LocaleTranslationUiTest.php b/core/modules/locale/lib/Drupal/locale/Tests/LocaleTranslationUiTest.php
index 91e4c8146cda..c3fc74e094b4 100644
--- a/core/modules/locale/lib/Drupal/locale/Tests/LocaleTranslationUiTest.php
+++ b/core/modules/locale/lib/Drupal/locale/Tests/LocaleTranslationUiTest.php
@@ -141,7 +141,7 @@ function testStringTranslation() {
     $this->assertRaw($translation_to_en, 'English translation properly saved.');
 
     // Reset the tag cache on the tester side in order to pick up the call to
-    // cache()->deleteTags() on the tested side.
+    // Cache::deleteTags() on the tested side.
     drupal_static_reset('Drupal\Core\Cache\CacheBackendInterface::tagCache');
 
     $this->assertTrue($name != $translation && t($name, array(), array('langcode' => $langcode)) == $translation, 't() works for non-English.');
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 3c5dfedb4816..7a7574abacee 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -10,6 +10,7 @@
  * object files are supported.
  */
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Language\Language;
 use Drupal\Component\Utility\Crypt;
 
@@ -1122,7 +1123,7 @@ function _locale_refresh_translations($langcodes, $lids = array()) {
     }
   }
   // Clear locale cache.
-  cache()->deleteTags(array('locale' => TRUE));
+  Cache::deleteTags(array('locale' => TRUE));
 }
 
 /**
diff --git a/core/modules/node/lib/Drupal/node/Entity/NodeType.php b/core/modules/node/lib/Drupal/node/Entity/NodeType.php
index cec3461e004c..99c5267c5573 100644
--- a/core/modules/node/lib/Drupal/node/Entity/NodeType.php
+++ b/core/modules/node/lib/Drupal/node/Entity/NodeType.php
@@ -8,6 +8,7 @@
 namespace Drupal\node\Entity;
 
 use Drupal\Component\Utility\NestedArray;
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\Entity\ConfigEntityBase;
 use Drupal\Core\Entity\EntityStorageControllerInterface;
 use Drupal\node\NodeTypeInterface;
@@ -164,7 +165,7 @@ public function postSave(EntityStorageControllerInterface $storage_controller, $
 
     if (!$update) {
       // Clear the node type cache, so the new type appears.
-      \Drupal::cache()->deleteTags(array('node_types' => TRUE));
+      Cache::deleteTags(array('node_types' => TRUE));
 
       entity_invoke_bundle_hook('create', 'node', $this->id());
 
@@ -177,7 +178,7 @@ public function postSave(EntityStorageControllerInterface $storage_controller, $
     }
     elseif ($this->getOriginalId() != $this->id()) {
       // Clear the node type cache to reflect the rename.
-      \Drupal::cache()->deleteTags(array('node_types' => TRUE));
+      Cache::deleteTags(array('node_types' => TRUE));
 
       $update_count = node_type_update_nodes($this->getOriginalId(), $this->id());
       if ($update_count) {
@@ -193,7 +194,7 @@ public function postSave(EntityStorageControllerInterface $storage_controller, $
     }
     else {
       // Invalidate the cache tag of the updated node type only.
-      cache()->invalidateTags(array('node_type' => $this->id()));
+      Cache::invalidateTags(array('node_type' => $this->id()));
     }
   }
 
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 697f8c7381c0..bd794be187ec 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -5,6 +5,7 @@
  * Admin page callbacks for the system module.
  */
 
+use Drupal\Core\Cache\Cache;
 use Symfony\Component\HttpFoundation\RedirectResponse;
 use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
 
@@ -37,7 +38,7 @@ function system_theme_default() {
       // enabled.
       \Drupal::service('router.builder')->rebuild();
       menu_router_rebuild();
-      \Drupal::cache('cache')->deleteTags(array('local_task' => 1));
+      Cache::deleteTags(array('local_task' => TRUE));
 
       // The status message depends on whether an admin theme is currently in use:
       // a value of 0 means the admin theme is set to be the default theme.
diff --git a/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php b/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
index 8ccec8ec7900..b3f08ccda3e9 100644
--- a/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
+++ b/core/modules/toolbar/lib/Drupal/toolbar/Tests/ToolbarAdminMenuTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\toolbar\Tests;
 
+use Drupal\Core\Cache\Cache;
 use Drupal\simpletest\WebTestBase;
 
 /**
@@ -284,7 +285,7 @@ function testCacheClearByCacheTag() {
 
     // Log in admin_user and clear the caches for this user using a tag.
     $this->drupalLogin($this->admin_user);
-    $toolbarCache->deleteTags(array('user' => array($admin_user_id)));
+    Cache::deleteTags(array('user' => array($admin_user_id)));
 
     // Assert that no toolbar cache exists for admin_user against the
     // language "en".
diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module
index 096c4894634e..86ef5ee5d885 100644
--- a/core/modules/toolbar/toolbar.module
+++ b/core/modules/toolbar/toolbar.module
@@ -5,6 +5,7 @@
  * Administration toolbar for quick access to top level administration items.
  */
 
+use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Language\Language;
 use Drupal\Core\Template\Attribute;
@@ -652,7 +653,7 @@ function _toolbar_clear_user_cache($uid = NULL) {
     // Clear by the 'user' tag in order to delete all caches, in any language,
     // associated with this user.
     if (isset($uid)) {
-      $cache->deleteTags(array('user' => array($uid)));
+      Cache::deleteTags(array('user' => array($uid)));
     } else {
       $cache->deleteAll();
     }
diff --git a/core/modules/tour/tour.api.php b/core/modules/tour/tour.api.php
index db0312f3b9e5..6537cc7c19ac 100644
--- a/core/modules/tour/tour.api.php
+++ b/core/modules/tour/tour.api.php
@@ -73,7 +73,7 @@ function hook_tour_presave($entity) {
  */
 function hook_tour_insert($entity) {
   \Drupal::service('plugin.manager.tour.tip')->clearCachedDefinitions();
-  cache('cache_tour')->deleteTags(array('tour_items'));
+  \Drupal\Core\Cache\Cache::deleteTags(array('tour_items'));
 }
 
 /**
@@ -84,5 +84,5 @@ function hook_tour_insert($entity) {
  */
 function hook_tour_update($entity) {
   \Drupal::service('plugin.manager.tour.tip')->clearCachedDefinitions();
-  cache('cache_tour')->deleteTags(array('tour_items'));
+  \Drupal\Core\Cache\Cache::deleteTags(array('tour_items'));
 }
diff --git a/core/modules/views/views.api.php b/core/modules/views/views.api.php
index 52816e2c42f0..4ba2a3c01b55 100644
--- a/core/modules/views/views.api.php
+++ b/core/modules/views/views.api.php
@@ -627,7 +627,7 @@ function hook_views_ui_display_top_links_alter(array &$links, ViewExecutable $vi
  * @see views_invalidate_cache()
  */
 function hook_views_invalidate_cache() {
-  cache('mymodule')->invalidateTags(array('views' => TRUE));
+  \Drupal\Core\Cache\Cache::invalidateTags(array('views' => TRUE));
 }
 
 /**
diff --git a/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php b/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
index 702c7c7dd187..7885679d9905 100644
--- a/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
+++ b/core/tests/Drupal/Tests/Core/Cache/CacheCollectorTest.php
@@ -63,6 +63,17 @@ protected function setUp() {
     $this->lock = $this->getMock('Drupal\Core\Lock\LockBackendInterface');
     $this->cid = $this->randomName();
     $this->collector = new CacheCollectorHelper($this->cid, $this->cache, $this->lock);
+
+    $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+    $container->expects($this->any())
+      ->method('getParameter')
+      ->with('cache_bins')
+      ->will($this->returnValue(array('cache.test' => 'test')));
+    $container->expects($this->any())
+      ->method('get')
+      ->with('cache.test')
+      ->will($this->returnValue($this->cache));
+    \Drupal::setContainer($container);
   }
 
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
index 8762ff287de5..81dc34daadea 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityManagerTest.php
@@ -124,6 +124,7 @@ protected function setUp() {
 
     $this->container = new ContainerBuilder();
     $this->container->set('cache.cache', $this->cache);
+    $this->container->setParameter('cache_bins', array('cache.cache' => 'cache'));
     $this->container->set('module_handler', $this->moduleHandler);
     $this->container->set('form_builder', $this->formBuilder);
     \Drupal::setContainer($this->container);
diff --git a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
index 717cee57194a..25901c18abd4 100644
--- a/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
+++ b/core/tests/Drupal/Tests/Core/Extension/ThemeHandlerTest.php
@@ -105,6 +105,17 @@ protected function setUp() {
       ->disableOriginalConstructor()
       ->getMock();
     $this->themeHandler = new TestThemeHandler($this->configFactory, $this->moduleHandler, $this->cacheBackend, $this->infoParser, $this->configInstaller, $this->routeBuilder, $this->systemListingInfo);
+
+    $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+    $container->expects($this->any())
+      ->method('getParameter')
+      ->with('cache_bins')
+      ->will($this->returnValue(array('cache.test' => 'test')));
+    $container->expects($this->any())
+      ->method('get')
+      ->with('cache.test')
+      ->will($this->returnValue($this->cacheBackend));
+    \Drupal::setContainer($container);
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
index ec84708fa882..e0b9b939845f 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultPluginManagerTest.php
@@ -172,6 +172,17 @@ public function testCacheClearWithTags() {
       ->expects($this->never())
       ->method('deleteMultiple');
 
+    $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+    $container->expects($this->any())
+      ->method('getParameter')
+      ->with('cache_bins')
+      ->will($this->returnValue(array('cache.test' => 'test')));
+    $container->expects($this->any())
+      ->method('get')
+      ->with('cache.test')
+      ->will($this->returnValue($cache_backend));
+    \Drupal::setContainer($container);
+
     $language = new Language(array('id' => 'en'));
     $language_manager = $this->getMock('Drupal\Core\Language\LanguageManagerInterface');
     $language_manager->expects($this->once())
-- 
GitLab