drupal-8.test-config-init.php
File
-
core/
modules/ system/ tests/ fixtures/ update/ drupal-8.test-config-init.php
View source
<?php
// @codingStandardsIgnoreFile
use Drupal\Core\Database\Database;
$connection = Database::getConnection();
// Manually configure the test mail collector implementation to prevent
// tests from sending out emails and collect them in state instead.
// While this should be enforced via settings.php prior to installation,
// some tests expect to be able to test mail system implementations.
$config = $connection->select('config')
->fields('config', [
'data',
])
->condition('collection', '')
->condition('name', 'system.mail')
->execute()
->fetchField();
$config = unserialize($config);
$config['interface']['default'] = 'test_mail_collector';
$connection->update('config')
->fields([
'data' => serialize($config),
'collection' => '',
'name' => 'system.mail',
])
->condition('collection', '')
->condition('name', 'system.mail')
->execute();
// By default, verbosely display all errors and disable all production
// environment optimizations for all tests to avoid needless overhead and
// ensure a sane default experience for test authors.
// @see https://www.drupal.org/node/2259167
$config = $connection->select('config')
->fields('config', [
'data',
])
->condition('collection', '')
->condition('name', 'system.logging')
->execute()
->fetchField();
$config = unserialize($config);
$config['error_level'] = 'verbose';
$connection->update('config')
->fields([
'data' => serialize($config),
'collection' => '',
'name' => 'system.logging',
])
->condition('collection', '')
->condition('name', 'system.logging')
->execute();
$config = $connection->select('config')
->fields('config', [
'data',
])
->condition('collection', '')
->condition('name', 'system.performance')
->execute()
->fetchField();
$config = unserialize($config);
$config['css']['preprocess'] = FALSE;
$config['js']['preprocess'] = FALSE;
$connection->update('config')
->fields([
'data' => serialize($config),
'collection' => '',
'name' => 'system.performance',
])
->condition('collection', '')
->condition('name', 'system.performance')
->execute();
// Set an explicit time zone to not rely on the system one, which may vary
// from setup to setup. The Australia/Sydney time zone is chosen so all
// tests are run using an edge case scenario (UTC10 and DST). This choice
// is made to prevent time zone related regressions and reduce the
// fragility of the testing system in general.
$config = $connection->select('config')
->fields('config', [
'data',
])
->condition('collection', '')
->condition('name', 'system.date')
->execute()
->fetchField();
$config = unserialize($config);
$config['timezone']['default'] = 'Australia/Sydney';
$connection->update('config')
->fields([
'data' => serialize($config),
'collection' => '',
'name' => 'system.date',
])
->condition('collection', '')
->condition('name', 'system.date')
->execute();
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.