3 namespace Drupal\system\Tests\DrupalKernel;
5 use Drupal\simpletest\WebTestBase;
8 * Ensures that the container rebuild works as expected.
12 class ContainerRebuildWebTest extends WebTestBase {
17 public static $modules = ['service_provider_test'];
20 * Sets a different deployment identifier.
22 public function testSetContainerRebuildWithDifferentDeploymentIdentifier() {
23 $this->drupalGet('<front>');
24 $this->assertHeader('container_rebuild_indicator', FALSE);
26 $this->writeSettings(['settings' => ['deployment_identifier' => (object) ['value' => 'new-identifier', 'required' => TRUE]]]);
28 $this->drupalGet('<front>');
30 $this->assertHeader('container_rebuild_indicator', 'new-identifier');
34 * Tests container invalidation.
36 public function testContainerInvalidation() {
38 // Ensure that parameter is not set.
39 $this->drupalGet('<front>');
40 $this->assertHeader('container_rebuild_test_parameter', FALSE);
42 // Ensure that after setting the parameter, without a container rebuild the
43 // parameter is still not set.
44 $this->writeSettings(['settings' => ['container_rebuild_test_parameter' => (object) ['value' => 'rebuild_me_please', 'required' => TRUE]]]);
46 $this->drupalGet('<front>');
47 $this->assertHeader('container_rebuild_test_parameter', FALSE);
49 // Ensure that after container invalidation the parameter is set.
50 \Drupal::service('kernel')->invalidateContainer();
51 $this->drupalGet('<front>');
52 $this->assertHeader('container_rebuild_test_parameter', 'rebuild_me_please');