You are here

public function RemoveHttpHeadersTest::testRemoveSomeHeaders in Remove HTTP headers 8

Ensure default HTTP headers and meta are removed when configured.

@covers ::handle

File

tests/src/Functional/RemoveHttpHeadersTest.php, line 110

Class

RemoveHttpHeadersTest
Functional tests for Remove HTTP Headers module.

Namespace

Drupal\Tests\remove_http_headers\Functional

Code

public function testRemoveSomeHeaders() : void {
  $headersToRemove = [
    'X-Generator',
    'X-Drupal-Cache-Tags',
    'X-Drupal-Dynamic-Cache',
  ];
  $form['headers_to_remove'] = implode("\n", $headersToRemove);
  $this
    ->submitModuleSettingsForm($form);

  // Verify config form reflects the change.
  $this
    ->assertSession()
    ->fieldValueEquals('headers_to_remove', implode("\n", $headersToRemove));

  // Verify saved configuration reflects the change.
  $config = $this->configFactory
    ->get('remove_http_headers.settings')
    ->get('headers_to_remove');
  $this
    ->assertEquals($headersToRemove, $config, 'The configuration option was properly saved.');
  foreach ($headersToRemove as $header) {
    $this
      ->assertEmpty($this
      ->getSession()
      ->getResponseHeader($header), $this
      ->t('HTTP header @header is not present in response.', [
      '@header' => $header,
    ])
      ->render());
  }

  // X-Generator is set, so meta name=Generator should not be present.
  $this
    ->assertSession()
    ->responseNotContains(static::GENERATOR_METATAG_MARKUP);
}