public function UpdatePathTestBaseTest::testDatabaseLoaded in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/src/Tests/Update/UpdatePathTestBaseTest.php \Drupal\system\Tests\Update\UpdatePathTestBaseTest::testDatabaseLoaded()
Tests that the database was properly loaded.
File
- core/
modules/ system/ src/ Tests/ Update/ UpdatePathTestBaseTest.php, line 38 - Contains \Drupal\system\Tests\Update\UpdatePathTestBaseTest.php.
Class
- UpdatePathTestBaseTest
- Tests the update path base class.
Namespace
Drupal\system\Tests\UpdateCode
public function testDatabaseLoaded() {
foreach ([
'user',
'node',
'system',
'update_test_schema',
] as $module) {
$this
->assertEqual(drupal_get_installed_schema_version($module), 8000, SafeMarkup::format('Module @module schema is 8000', [
'@module' => $module,
]));
}
// Ensure that all {router} entries can be unserialized. If they cannot be
// unserialized a notice will be thrown by PHP.
$result = \Drupal::database()
->query("SELECT name, route from {router}")
->fetchAllKeyed(0, 1);
// For the purpose of fetching the notices and displaying more helpful error
// messages, let's override the error handler temporarily.
set_error_handler(function ($severity, $message, $filename, $lineno) {
throw new \ErrorException($message, 0, $severity, $filename, $lineno);
});
foreach ($result as $route_name => $route) {
try {
unserialize($route);
} catch (\Exception $e) {
$this
->fail(sprintf('Error "%s" while unserializing route %s', $e
->getMessage(), Html::escape($route_name)));
}
}
restore_error_handler();
// Before accessing the site we need to run updates first or the site might
// be broken.
$this
->runUpdates();
$this
->assertEqual(\Drupal::config('system.site')
->get('name'), 'Site-Install');
$this
->drupalGet('<front>');
$this
->assertText('Site-Install');
// Ensure that the database tasks have been run during set up. Neither MySQL
// nor SQLite make changes that are testable.
$database = $this->container
->get('database');
if ($database
->driver() == 'pgsql') {
$this
->assertEqual('on', $database
->query("SHOW standard_conforming_strings")
->fetchField());
$this
->assertEqual('escape', $database
->query("SHOW bytea_output")
->fetchField());
}
}