class AccessGroupAndTest
Same name in other branches
- 9 core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest
- 8.9.x core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest
- 10 core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php \Drupal\Tests\block_content\Unit\Access\AccessGroupAndTest
Tests accessible groups.
@group Access
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait
- class \Drupal\Tests\Core\Access\AccessGroupAndTest extends \Drupal\Tests\UnitTestCase uses \Drupal\Tests\Core\Access\AccessibleTestingTrait
Expanded class hierarchy of AccessGroupAndTest
File
-
core/
tests/ Drupal/ Tests/ Core/ Access/ AccessGroupAndTest.php, line 17
Namespace
Drupal\Tests\Core\AccessView source
class AccessGroupAndTest extends UnitTestCase {
use AccessibleTestingTrait;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->account = $this->prophesize(AccountInterface::class)
->reveal();
}
/**
* @covers \Drupal\Core\Access\AccessGroupAnd
*/
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.