class EnvironmentCleanerService
Uses containerized services to perform post-test cleanup.
Hierarchy
- class \Drupal\Core\Test\EnvironmentCleaner implements \Drupal\Core\Test\EnvironmentCleanerInterface
- class \Drupal\simpletest\EnvironmentCleanerService extends \Drupal\Core\Test\EnvironmentCleaner
Expanded class hierarchy of EnvironmentCleanerService
1 string reference to 'EnvironmentCleanerService'
- simpletest.services.yml in core/
modules/ simpletest/ simpletest.services.yml - core/modules/simpletest/simpletest.services.yml
1 service uses EnvironmentCleanerService
- environment_cleaner in core/
modules/ simpletest/ simpletest.services.yml - Drupal\simpletest\EnvironmentCleanerService
File
-
core/
modules/ simpletest/ src/ EnvironmentCleanerService.php, line 16
Namespace
Drupal\simpletestView source
class EnvironmentCleanerService extends EnvironmentCleaner {
/**
* Messenger service.
*
* @var \Drupal\Core\Messenger\MessengerInterface
*/
protected $messenger;
/**
* The translation service.
*
* @var \Drupal\Core\StringTranslation\TranslationInterface
*/
protected $translation;
/**
* The config factory.
*
* @var \Drupal\Core\Config\ConfigFactory
*/
protected $configFactory;
/**
* Default cache.
*
* @var \Drupal\Core\Cache\CacheBackendInterface
*/
protected $cacheDefault;
/**
* Construct an environment cleaner.
*
* @param string $root
* The path to the root of the Drupal installation.
* @param \Drupal\Core\Database\Connection $test_database
* Connection to the database against which tests were run.
* @param \Drupal\Core\Database\Connection $results_database
* Connection to the database where test results were stored. This could be
* the same as $test_database, or it could be different.
* @param \Drupal\Core\StringTranslation\TranslationInterface|null $translation
* (optional) The translation service. If none is supplied, this class will
* attempt to discover one using \Drupal.
*/
public function __construct($root, Connection $test_database, Connection $results_database, MessengerInterface $messenger, TranslationInterface $translation, ConfigFactory $config, CacheBackendInterface $cache_default, FileSystem $file_system) {
$this->root = $root;
$this->testDatabase = $test_database;
$this->resultsDatabase = $results_database;
$this->messenger = $messenger;
$this->translation = $translation;
$this->configFactory = $config;
$this->cacheDefault = $cache_default;
$this->fileSystem = $file_system;
}
/**
* {@inheritdoc}
*/
public function cleanEnvironment($clear_results = TRUE, $clear_temp_directories = TRUE, $clear_database = TRUE) {
$results_removed = 0;
$clear_results = $this->configFactory
->get('simpletest.settings')
->get('clear_results');
if ($clear_database) {
$this->cleanDatabase();
}
if ($clear_temp_directories) {
$this->cleanTemporaryDirectories();
}
if ($clear_results) {
$results_removed = $this->cleanResultsTable();
}
$this->cacheDefault
->delete('simpletest');
$this->cacheDefault
->delete('simpletest_phpunit');
if ($clear_results) {
$this->messenger
->addMessage($this->translation
->formatPlural($results_removed, 'Removed 1 test result.', 'Removed @count test results.'));
}
else {
$this->messenger
->addMessage($this->translation
->translate('Clear results is disabled and the test results table will not be cleared.'), 'warning');
}
}
/**
* {@inheritdoc}
*/
public function cleanDatabase() {
$tables_removed = $this->doCleanDatabase();
if ($tables_removed > 0) {
$this->messenger
->addMessage($this->translation
->formatPlural($tables_removed, 'Removed 1 leftover table.', 'Removed @count leftover tables.'));
}
else {
$this->messenger
->addMessage($this->translation
->translate('No leftover tables to remove.'));
}
}
/**
* {@inheritdoc}
*/
public function cleanTemporaryDirectories() {
$directories_removed = $this->doCleanTemporaryDirectories();
if ($directories_removed > 0) {
$this->messenger
->addMessage($this->translation
->formatPlural($directories_removed, 'Removed 1 temporary directory.', 'Removed @count temporary directories.'));
}
else {
$this->messenger
->addMessage($this->translation
->translate('No temporary directories to remove.'));
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
EnvironmentCleaner::$fileSystem | protected | property | The file system service. | |
EnvironmentCleaner::$output | protected | property | Console output. | |
EnvironmentCleaner::$resultsDatabase | protected | property | Connection to the database where test results are stored. | |
EnvironmentCleaner::$root | protected | property | Path to Drupal root directory. | |
EnvironmentCleaner::$testDatabase | protected | property | Connection to the database being used for tests. | |
EnvironmentCleaner::cleanResultsTable | public | function | Clears test result tables from the results database. | Overrides EnvironmentCleanerInterface::cleanResultsTable |
EnvironmentCleaner::doCleanDatabase | protected | function | Performs the fixture database cleanup. | |
EnvironmentCleaner::doCleanTemporaryDirectories | protected | function | Performs the cleanup of temporary test directories. | |
EnvironmentCleanerService::$cacheDefault | protected | property | Default cache. | |
EnvironmentCleanerService::$configFactory | protected | property | The config factory. | |
EnvironmentCleanerService::$messenger | protected | property | Messenger service. | |
EnvironmentCleanerService::$translation | protected | property | The translation service. | |
EnvironmentCleanerService::cleanDatabase | public | function | Remove database entries left over in the fixture database. | Overrides EnvironmentCleaner::cleanDatabase |
EnvironmentCleanerService::cleanEnvironment | public | function | Removes all test-related database tables and directories. | Overrides EnvironmentCleaner::cleanEnvironment |
EnvironmentCleanerService::cleanTemporaryDirectories | public | function | Finds all leftover fixture site directories and removes them. | Overrides EnvironmentCleaner::cleanTemporaryDirectories |
EnvironmentCleanerService::__construct | public | function | Construct an environment cleaner. | Overrides EnvironmentCleaner::__construct |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.