function ReplicaKillSwitchTest::testSystemInitIgnoresSecondaries
Same name in other branches
- 9 core/tests/Drupal/KernelTests/Core/Database/ReplicaKillSwitchTest.php \Drupal\KernelTests\Core\Database\ReplicaKillSwitchTest::testSystemInitIgnoresSecondaries()
- 10 core/tests/Drupal/KernelTests/Core/Database/ReplicaKillSwitchTest.php \Drupal\KernelTests\Core\Database\ReplicaKillSwitchTest::testSystemInitIgnoresSecondaries()
- 11.x core/tests/Drupal/KernelTests/Core/Database/ReplicaKillSwitchTest.php \Drupal\KernelTests\Core\Database\ReplicaKillSwitchTest::testSystemInitIgnoresSecondaries()
Tests database.replica_kill_switch service.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Database/ ReplicaKillSwitchTest.php, line 23
Class
- ReplicaKillSwitchTest
- Tests that ReplicaKillSwitch functions correctly.
Namespace
Drupal\KernelTests\Core\DatabaseCode
public function testSystemInitIgnoresSecondaries() {
// Clone the master credentials to a replica connection.
// Note this will result in two independent connection objects that happen
// to point to the same place.
$connection_info = Database::getConnectionInfo('default');
Database::addConnectionInfo('default', 'replica', $connection_info['default']);
/** @var \Drupal\Core\Database\ReplicaKillSwitch $service */
$service = \Drupal::service('database.replica_kill_switch');
$service->trigger();
$class_loader = (require $this->root . '/autoload.php');
$kernel = new DrupalKernel('testing', $class_loader, FALSE);
$event = new GetResponseEvent($kernel, Request::create('http://example.com'), HttpKernelInterface::MASTER_REQUEST);
$service->checkReplicaServer($event);
$db1 = Database::getConnection('default', 'default');
$db2 = Database::getConnection('replica', 'default');
$this->assertSame($db1, $db2, 'System Init ignores secondaries when requested.');
// Makes sure that session value set right.
$session = \Drupal::service('session');
$this->assertTrue($session->has('ignore_replica_server'));
$expected = \Drupal::time()->getRequestTime() + Settings::get('maximum_replication_lag', 300);
$this->assertEquals($expected, $session->get('ignore_replica_server'));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.