public function AccessGroupAndTest::testGroups in Drupal 9
Same name and namespace in other branches
- 8 core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest::testGroups()
@covers \Drupal\block_content\Access\AccessGroupAnd
File
- core/
modules/ block_content/ tests/ src/ Unit/ Access/ AccessGroupAndTest.php, line 30
Class
- AccessGroupAndTest
- Tests accessible groups.
Namespace
Drupal\Tests\block_content\Unit\AccessCode
public function testGroups() {
$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());
}