Issue #3496259 by spokje: [random test failure] LayoutSectionTest::testLayoutSectionFormatterAccess

(cherry picked from commit 2396ee2b3a)
merge-requests/10915/head
Dave Long 2025-01-03 14:24:41 +00:00
parent e0ef4b5f1a
commit 404d8829a3
No known key found for this signature in database
GPG Key ID: ED52AE211E142771
3 changed files with 9 additions and 16 deletions

View File

@ -6,9 +6,9 @@ use Drupal\Core\Access\AccessResult;
use Drupal\Core\Block\Attribute\Block;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Cache\Cache;
use Drupal\Core\KeyValueStore\KeyValueStoreInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\State\StateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Symfony\Component\DependencyInjection\ContainerInterface;
@ -21,11 +21,6 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
)]
class TestAccessBlock extends BlockBase implements ContainerFactoryPluginInterface {
/**
* The state service.
*/
protected StateInterface $state;
/**
* Tests the test access block.
*
@ -39,13 +34,11 @@ class TestAccessBlock extends BlockBase implements ContainerFactoryPluginInterfa
* The plugin ID for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\State\StateInterface $state
* The state.
* @param \Drupal\Core\KeyValueStore\KeyValueStoreInterface $keyValue
* The key value store.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, StateInterface $state) {
public function __construct(array $configuration, $plugin_id, $plugin_definition, protected KeyValueStoreInterface $keyValue) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->state = $state;
}
/**
@ -56,7 +49,7 @@ class TestAccessBlock extends BlockBase implements ContainerFactoryPluginInterfa
$configuration,
$plugin_id,
$plugin_definition,
$container->get('state')
$container->get('keyvalue')->get('block_test')
);
}
@ -64,7 +57,7 @@ class TestAccessBlock extends BlockBase implements ContainerFactoryPluginInterfa
* {@inheritdoc}
*/
protected function blockAccess(AccountInterface $account) {
return $this->state->get('test_block_access', FALSE) ? AccessResult::allowed()->setCacheMaxAge(0) : AccessResult::forbidden()->setCacheMaxAge(0);
return $this->keyValue->get('access', FALSE) ? AccessResult::allowed()->setCacheMaxAge(0) : AccessResult::forbidden()->setCacheMaxAge(0);
}
/**

View File

@ -576,7 +576,7 @@ class BlockTest extends BlockTestBase {
$this->drupalGet('<front>');
$this->assertSession()->pageTextNotContains('Hello test world');
\Drupal::state()->set('test_block_access', TRUE);
\Drupal::keyValue('block_test')->set('access', TRUE);
$this->drupalGet('<front>');
$this->assertSession()->pageTextContains('Hello test world');
}

View File

@ -197,7 +197,7 @@ class LayoutSectionTest extends BrowserTestBase {
]);
// Restrict access to the block.
$this->container->get('state')->set('test_block_access', FALSE);
$this->container->get('keyvalue')->get('block_test')->set('access', FALSE);
$this->drupalGet($node->toUrl('canonical'));
$this->assertLayoutSection('.layout--onecol', NULL, '', '', 'UNCACHEABLE (poor cacheability)');
@ -205,7 +205,7 @@ class LayoutSectionTest extends BrowserTestBase {
$this->assertSession()->pageTextNotContains('Hello test world');
// Grant access to the block, and ensure it was rendered.
$this->container->get('state')->set('test_block_access', TRUE);
$this->container->get('keyvalue')->get('block_test')->set('access', TRUE);
$this->drupalGet($node->toUrl('canonical'));
$this->assertLayoutSection('.layout--onecol', 'Hello test world', '', '', 'UNCACHEABLE (poor cacheability)');
}