paragraphs-8.x-1.11/tests/src/Kernel/ParagraphsAccessTest.php
tests/src/Kernel/ParagraphsAccessTest.php
<?php
namespace Drupal\Tests\paragraphs\Kernel;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Access\AccessResultInterface;
use Drupal\Core\Cache\CacheableMetadata;
use Drupal\Core\Cache\Context\CacheContextsManager;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\KernelTests\KernelTestBase;
use Symfony\Component\HttpFoundation\Request;
/**
* @coversDefaultClass \Drupal\paragraphs\ParagraphAccessControlHandler
* @group paragraphs
*/
class ParagraphsAccessTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'paragraphs',
];
/**
* @covers ::checkCreateAccess
*
* @dataProvider createAccessTestCases
*/
public function testCreateAccess($request_format, AccessResult $expected_result) {
$cache_contexts_manager = $this->prophesize(CacheContextsManager::class);
$cache_contexts_manager->assertValidTokens()->willReturn(TRUE);
$cache_contexts_manager->reveal();
$this->container->set('cache_contexts_manager', $cache_contexts_manager);
$expected_result->addCacheContexts(['request_format']);
$request = new Request();
$request->setRequestFormat($request_format);
$this->container->get('request_stack')->push($request);
$result = $this->container->get('entity_type.manager')->getAccessControlHandler('paragraph')->createAccess(NULL, NULL, [], TRUE);
$this->assertEquals($expected_result, $result);
$this->container->get('request_stack')->pop();
}
/**
* Test cases for ::testCreateAccess.
*/
public static function createAccessTestCases() {
return [
'Allowed HTML request format' => [
'html',
AccessResult::allowed(),
],
'Forbidden other formats' => [
'json',
AccessResult::neutral(),
],
];
}
}
