diff -u b/core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php b/core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php --- b/core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php +++ b/core/modules/contextual/tests/src/FunctionalJavascript/ContextualLinksTest.php @@ -3,6 +3,8 @@ namespace Drupal\Tests\contextual\FunctionalJavascript; use Drupal\FunctionalJavascriptTests\JavascriptTestBase; +use Drupal\user\Entity\Role; +use Drupal\user\RoleInterface; /** * Tests the UI for correct contextual links. @@ -24,19 +26,34 @@ $this->placeBlock('system_branding_block', ['id' => 'branding']); - $this->drupalLogin($this->drupalCreateUser([ - 'access contextual links' - ])); } /** * Tests the visibility of contextual links. */ - public function testContextualLinksVisibility() { + public function testContextualLinksVisibilityAccessGained() { + $this->drupalLogin($this->drupalCreateUser([ + 'access contextual links' + ])); + $this->drupalGet('user'); + $this->assertSession()->elementNotExists('css', '.contextual button'); // Ensure visibility remains correct after cached paged load. $this->drupalGet('user'); $this->assertSession()->elementNotExists('css', '.contextual button'); + + // Grant Permissions + $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), [ + 'access contextual links', + 'administer blocks', + ]); + + $this->drupalGet('user'); + $this->assertSession()->elementExists('css', '.contextual button'); + + // Ensure visibility remains correct after cached paged load. + $this->drupalGet('user'); + $this->assertSession()->elementExists('css', '.contextual button'); } }