class CacheabilityMetadataConfigOverrideIntegrationTest in Drupal 10
Same name and namespace in other branches
- 8 core/modules/config/tests/src/Functional/CacheabilityMetadataConfigOverrideIntegrationTest.php \Drupal\Tests\config\Functional\CacheabilityMetadataConfigOverrideIntegrationTest
- 9 core/modules/config/tests/src/Functional/CacheabilityMetadataConfigOverrideIntegrationTest.php \Drupal\Tests\config\Functional\CacheabilityMetadataConfigOverrideIntegrationTest
Tests if configuration overrides correctly affect cacheability metadata.
@group config
Hierarchy
- class \Drupal\Tests\BrowserTestBase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, FunctionalTestSetupTrait, TestSetupTrait, BlockCreationTrait, ConfigTestTrait, ExtensionListTestTrait, ContentTypeCreationTrait, NodeCreationTrait, RandomGeneratorTrait, TestRequirementsTrait, PhpUnitWarnings, UiHelperTrait, UserCreationTrait, XdebugRequestTrait
- class \Drupal\Tests\config\Functional\CacheabilityMetadataConfigOverrideIntegrationTest uses AssertPageCacheContextsAndTagsTrait
Expanded class hierarchy of CacheabilityMetadataConfigOverrideIntegrationTest
File
- core/
modules/ config/ tests/ src/ Functional/ CacheabilityMetadataConfigOverrideIntegrationTest.php, line 13
Namespace
Drupal\Tests\config\FunctionalView source
class CacheabilityMetadataConfigOverrideIntegrationTest extends BrowserTestBase {
use AssertPageCacheContextsAndTagsTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'block_test',
'config_override_integration_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
// @todo If our block does not contain any content then the cache context
// is not bubbling up and the test fails. Remove this line once the cache
// contexts are properly set. See https://www.drupal.org/node/2529980.
\Drupal::state()
->set('block_test.content', 'Needs to have some content');
$this
->drupalLogin($this
->drupalCreateUser());
}
/**
* Tests if config overrides correctly set cacheability metadata.
*/
public function testConfigOverride() {
// Check the default (disabled) state of the cache context. The block label
// should not be overridden.
$this
->drupalGet('<front>');
$this
->assertSession()
->pageTextNotContains('Overridden block label');
// Both the cache context and tag should be present.
$this
->assertCacheContext('config_override_integration_test');
$this
->assertSession()
->responseHeaderContains('X-Drupal-Cache-Tags', 'config_override_integration_test_tag');
// Flip the state of the cache context. The block label should now be
// overridden.
\Drupal::state()
->set('config_override_integration_test.enabled', TRUE);
$this
->drupalGet('<front>');
$this
->assertSession()
->pageTextContains('Overridden block label');
// Both the cache context and tag should still be present.
$this
->assertCacheContext('config_override_integration_test');
$this
->assertSession()
->responseHeaderContains('X-Drupal-Cache-Tags', 'config_override_integration_test_tag');
}
}