function AccessResultTest::testAndOrCacheabilityPropagation

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAndOrCacheabilityPropagation()
  2. 8.9.x core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAndOrCacheabilityPropagation()
  3. 10 core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAndOrCacheabilityPropagation()

@covers ::andIf @covers ::orIf @covers ::inheritCacheability

@dataProvider andOrCacheabilityPropagationProvider

File

core/tests/Drupal/Tests/Core/Access/AccessResultTest.php, line 855

Class

AccessResultTest
@coversDefaultClass \Drupal\Core\Access\AccessResult @group Access

Namespace

Drupal\Tests\Core\Access

Code

public function testAndOrCacheabilityPropagation(AccessResultInterface $first, $op, AccessResultInterface $second, $implements_cacheable_dependency_interface, $is_cacheable) : void {
    if ($op === 'OR') {
        $result = $first->orIf($second);
    }
    elseif ($op === 'AND') {
        $result = $first->andIf($second);
    }
    else {
        throw new \LogicException('Invalid operator specified');
    }
    if ($implements_cacheable_dependency_interface) {
        $this->assertInstanceOf(CacheableDependencyInterface::class, $result);
        if ($result instanceof CacheableDependencyInterface) {
            $this->assertSame($is_cacheable, $result->getCacheMaxAge() !== 0, 'getCacheMaxAge() matches expectations.');
        }
    }
    else {
        $this->assertNotInstanceOf(CacheableDependencyInterface::class, $result);
    }
}

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