3 namespace Drupal\Tests\system\Functional\DrupalKernel;
5 use Drupal\Tests\BrowserTestBase;
8 * Ensures that the container rebuild works as expected.
12 class ContainerRebuildWebTest extends BrowserTestBase {
17 public static $modules = ['service_provider_test'];
20 * Sets a different deployment identifier.
22 public function testSetContainerRebuildWithDifferentDeploymentIdentifier() {
23 $assert = $this->assertSession();
25 // Ensure the parameter is not set.
26 $this->drupalGet('<front>');
27 $assert->responseHeaderEquals('container_rebuild_indicator', NULL);
29 $this->writeSettings(['settings' => ['deployment_identifier' => (object) ['value' => 'new-identifier', 'required' => TRUE]]]);
31 $this->drupalGet('<front>');
33 $assert->responseHeaderEquals('container_rebuild_indicator', 'new-identifier');
37 * Tests container invalidation.
39 public function testContainerInvalidation() {
40 $assert = $this->assertSession();
42 // Ensure that parameter is not set.
43 $this->drupalGet('<front>');
44 $assert->responseHeaderEquals('container_rebuild_test_parameter', NULL);
46 // Ensure that after setting the parameter, without a container rebuild the
47 // parameter is still not set.
48 $this->writeSettings(['settings' => ['container_rebuild_test_parameter' => (object) ['value' => 'rebuild_me_please', 'required' => TRUE]]]);
50 $this->drupalGet('<front>');
51 $assert->responseHeaderEquals('container_rebuild_test_parameter', NULL);
53 // Ensure that after container invalidation the parameter is set.
54 \Drupal::service('kernel')->invalidateContainer();
55 $this->drupalGet('<front>');
56 $assert->responseHeaderEquals('container_rebuild_test_parameter', 'rebuild_me_please');