X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fsystem%2Ftests%2Fsrc%2FFunctional%2FModule%2FModuleTestBase.php;h=6cc726326dc3bb98bb679afdf7a9a8cb1549a3bf;hb=1c1cb0980bfa6caf0c24cce671b6bb541dc87583;hp=abdbe03916c63139fbd350d6ccab2e584caed2fc;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php b/web/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php index abdbe0391..6cc726326 100644 --- a/web/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php +++ b/web/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php @@ -56,8 +56,9 @@ abstract class ModuleTestBase extends BrowserTestBase { public function assertModuleTablesExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = TRUE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (!db_table_exists($table)) { + if (!$schema->tableExists($table)) { $tables_exist = FALSE; } } @@ -73,8 +74,9 @@ abstract class ModuleTestBase extends BrowserTestBase { public function assertModuleTablesDoNotExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = FALSE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (db_table_exists($table)) { + if ($schema->tableExists($table)) { $tables_exist = TRUE; } } @@ -109,16 +111,18 @@ abstract class ModuleTestBase extends BrowserTestBase { } $this->assertTrue($all_names); + $module_config_dependencies = \Drupal::service('config.manager')->findConfigEntityDependents('module', [$module]); // Look up each default configuration object name in the active // configuration, and if it exists, remove it from the stack. - // Only default config that belongs to $module is guaranteed to exist; any - // other default config depends on whether other modules are enabled. Thus, - // list all default config once more, but filtered by $module. - $names = $module_file_storage->listAll($module . '.'); + $names = $module_file_storage->listAll(); foreach ($names as $key => $name) { if ($this->config($name)->get()) { unset($names[$key]); } + // All configuration in a module's config/install directory should depend + // on the module as it must be removed on uninstall or the module will not + // be re-installable. + $this->assertTrue(strpos($name, $module . '.') === 0 || isset($module_config_dependencies[$name]), "Configuration $name provided by $module in its config/install directory does not depend on it."); } // Verify that all configuration has been installed (which means that $names // is empty).