Issue #2553661 by claudiu.cristea, geertvd, dawehner, Xano, neclimdul: KernelTestBase fails to set up FileCache
parent
4f435412f9
commit
0f8b5b1b4f
|
@ -153,4 +153,13 @@ class FileCache implements FileCacheInterface {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 @@ use Drupal\KernelTests\KernelTestBase;
|
|||
*/
|
||||
class ModuleHandlerTest extends KernelTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['system'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@ -48,7 +54,7 @@ class ModuleHandlerTest extends KernelTestBase {
|
|||
* 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 @@ abstract class KernelTestBase extends \PHPUnit_Framework_TestCase implements Ser
|
|||
parent::setUp();
|
||||
|
||||
$this->root = static::getDrupalRoot();
|
||||
$this->initFileCache();
|
||||
$this->bootEnvironment();
|
||||
$this->bootKernel();
|
||||
}
|
||||
|
@ -487,6 +491,32 @@ abstract class KernelTestBase extends \PHPUnit_Framework_TestCase implements Ser
|
|||
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 @@ abstract class KernelTestBase extends \PHPUnit_Framework_TestCase implements Ser
|
|||
}
|
||||
}
|
||||
|
||||
// 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 @@ class KernelTestBaseTest extends KernelTestBase {
|
|||
$this->assertEquals('on', $database->query("SHOW standard_conforming_strings")->fetchField());
|
||||
$this->assertEquals('escape', $database->query("SHOW bytea_output")->fetchField());
|
||||
}
|
||||
|
||||
$this->assertNotNull(FileCacheFactory::getPrefix());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue