AccessGroupAndTest.php in Drupal 10
File
core/modules/block_content/tests/src/Unit/Access/AccessGroupAndTest.php
View source
<?php
namespace Drupal\Tests\block_content\Unit\Access;
use Drupal\block_content\Access\AccessGroupAnd;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Session\AccountInterface;
use Drupal\Tests\UnitTestCase;
class AccessGroupAndTest extends UnitTestCase {
use AccessibleTestingTrait;
protected function setUp() : void {
parent::setUp();
$this->account = $this
->prophesize(AccountInterface::class)
->reveal();
}
public function testGroups() {
$allowedAccessible = $this
->createAccessibleDouble(AccessResult::allowed());
$forbiddenAccessible = $this
->createAccessibleDouble(AccessResult::forbidden());
$neutralAccessible = $this
->createAccessibleDouble(AccessResult::neutral());
$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());
$andGroupsForbidden = new AccessGroupAnd();
$andGroupsForbidden
->addDependency($andNeutral)
->addDependency($andForbidden);
$this
->assertTrue($andGroupsForbidden
->access('view', $this->account, TRUE)
->isForbidden());
$andGroupsForbidden
->addDependency($allowedAccessible);
$this
->assertTrue($andGroupsForbidden
->access('view', $this->account, TRUE)
->isForbidden());
}
}