function AccessGroupAndTest::testGroups

Same name and namespace in other branches
  1. 9 core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest::testGroups()
  2. 8.9.x core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest::testGroups()
  3. 11.x core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest::testGroups()
  4. 11.x core/tests/Drupal/Tests/Core/Access/AccessGroupAndTest.php \Drupal\Tests\Core\Access\AccessGroupAndTest::testGroups()

@covers \Drupal\block_content\Access\AccessGroupAnd

File

core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php, line 32

Class

AccessGroupAndTest
Tests accessible groups.

Namespace

Drupal\Tests\block_content\Unit\Access

Code

public function testGroups() : void {
  $allowedAccessible = $this->createAccessibleDouble(AccessResult::allowed());
  $forbiddenAccessible = $this->createAccessibleDouble(AccessResult::forbidden());
  $neutralAccessible = $this->createAccessibleDouble(AccessResult::neutral());
  // Ensure that groups with no dependencies return a neutral access result.
  $this->assertTrue((new AccessGroupAnd())->access('view', $this->account, TRUE)
    ->isNeutral());
  $andNeutral = new AccessGroupAnd();
  $andNeutral->addDependency($allowedAccessible)
    ->addDependency($neutralAccessible);
  $this->assertTrue($andNeutral->access('view', $this->account, TRUE)
    ->isNeutral());
  $andForbidden = $andNeutral;
  $andForbidden->addDependency($forbiddenAccessible);
  $this->assertTrue($andForbidden->access('view', $this->account, TRUE)
    ->isForbidden());
  // Ensure that groups added to other groups works.
  $andGroupsForbidden = new AccessGroupAnd();
  $andGroupsForbidden->addDependency($andNeutral)
    ->addDependency($andForbidden);
  $this->assertTrue($andGroupsForbidden->access('view', $this->account, TRUE)
    ->isForbidden());
  // Ensure you can add a non-group accessible object.
  $andGroupsForbidden->addDependency($allowedAccessible);
  $this->assertTrue($andGroupsForbidden->access('view', $this->account, TRUE)
    ->isForbidden());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.