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.')); } } }