Commit 0f8b5b1b authored by alexpott's avatar alexpott

Issue #2553661 by claudiu.cristea, geertvd, dawehner, Xano, neclimdul:...

Issue #2553661 by claudiu.cristea, geertvd, dawehner, Xano, neclimdul: KernelTestBase fails to set up FileCache
parent 4f435412
......@@ -153,4 +153,13 @@ public function delete($filepath) {
}
}
/**
* Resets the static cache.
*
* @todo Replace this once https://www.drupal.org/node/2260187 is in.
*/
public static function reset() {
static::$cached = [];
}
}
......@@ -7,6 +7,7 @@
namespace Drupal\Tests\system\Kernel\Extension;
use Drupal\Component\FileCache\FileCacheFactory;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use \Drupal\Core\Extension\ModuleUninstallValidatorException;
use Drupal\KernelTests\KernelTestBase;
......@@ -18,6 +19,11 @@
*/
class ModuleHandlerTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
public static $modules = ['system'];
/**
* {@inheritdoc}
*/
......@@ -48,7 +54,7 @@ public function register(ContainerBuilder $container) {
* The basic functionality of retrieving enabled modules.
*/
function testModuleList() {
$module_list = array();
$module_list = ['system'];
$this->assertModuleList($module_list, 'Initial');
......
......@@ -7,6 +7,9 @@
namespace Drupal\KernelTests;
use Drupal\Component\FileCache\ApcuFileCacheBackend;
use Drupal\Component\FileCache\FileCache;
use Drupal\Component\FileCache\FileCacheFactory;
use Drupal\Component\Utility\Html;
use Drupal\Component\Utility\SafeMarkup;
use Drupal\Core\Config\ConfigImporter;
......@@ -214,6 +217,7 @@ protected function setUp() {
parent::setUp();
$this->root = static::getDrupalRoot();
$this->initFileCache();
$this->bootEnvironment();
$this->bootKernel();
}
......@@ -487,6 +491,32 @@ private function getCompiledContainerBuilder(array $modules) {
return $container;
}
/**
* Initializes the FileCache component.
*
* We can not use the Settings object in a component, that's why we have to do
* it here instead of \Drupal\Component\FileCache\FileCacheFactory.
*/
protected function initFileCache() {
$configuration = Settings::get('file_cache');
// Provide a default configuration, if not set.
if (!isset($configuration['default'])) {
$configuration['default'] = [
'class' => FileCache::class,
'cache_backend_class' => NULL,
'cache_backend_configuration' => [],
];
// @todo Use extension_loaded('apcu') for non-testbot
// https://www.drupal.org/node/2447753.
if (function_exists('apc_fetch')) {
$configuration['default']['cache_backend_class'] = ApcuFileCacheBackend::class;
}
}
FileCacheFactory::setConfiguration($configuration);
FileCacheFactory::setPrefix(Settings::getApcuPrefix('file_cache', $this->root));
}
/**
* Returns Extension objects for $modules to enable.
*
......@@ -633,6 +663,9 @@ protected function tearDown() {
}
}
// Clean FileCache cache.
FileCache::reset();
// Clean up statics, container, and settings.
if (function_exists('drupal_static_reset')) {
drupal_static_reset();
......
......@@ -7,6 +7,7 @@
namespace Drupal\KernelTests;
use Drupal\Component\FileCache\FileCacheFactory;
use Drupal\Core\Database\Database;
use org\bovigo\vfs\vfsStream;
use org\bovigo\vfs\visitor\vfsStreamStructureVisitor;
......@@ -91,6 +92,8 @@ public function testSetUp() {
$this->assertEquals('on', $database->query("SHOW standard_conforming_strings")->fetchField());
$this->assertEquals('escape', $database->query("SHOW bytea_output")->fetchField());
}
$this->assertNotNull(FileCacheFactory::getPrefix());
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment