google_tag-8.x-1.x-dev/tests/src/Kernel/GoogleTagControllerTest.php
tests/src/Kernel/GoogleTagControllerTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\google_tag\Kernel;
use Drupal\google_tag\GoogleTagController;
use Drupal\Tests\user\Traits\UserCreationTrait;
/**
* @coversDefaultClass \Drupal\google_tag\GoogleTagController
* @group google_tag
*/
final class GoogleTagControllerTest extends GoogleTagTestCase {
use UserCreationTrait;
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
// Burn uid 1.
$this->createUser();
}
/**
* Tests the ::containerListingAccess method.
*
* @param array $permissions
* The permissions.
* @param bool $use_collection
* To enable use_collection.
* @param bool $expected_access
* The expected access.
*
* @dataProvider accessData
*/
public function testContainerListingAccess(array $permissions, bool $use_collection, bool $expected_access): void {
$user = $this->createUser($permissions);
self::assertNotEquals(1, (int) $user->id());
$this->config('google_tag.settings')->set('use_collection', $use_collection)->save();
$sut = $this->container
->get('class_resolver')
->getInstanceFromDefinition(GoogleTagController::class);
self::assertInstanceOf(GoogleTagController::class, $sut);
self::assertEquals($expected_access, $sut->containerListingAccess($user)->isAllowed());
}
/**
* Tests the ::addContainerAccess method.
*
* @param array $permissions
* The permissions.
* @param bool $use_collection
* To enable use_collection.
* @param bool $expected_access
* The expected access.
*
* @dataProvider accessData
*/
public function testAddContainerAccess(array $permissions, bool $use_collection, bool $expected_access): void {
$user = $this->createUser($permissions);
self::assertNotEquals(1, (int) $user->id());
$this->config('google_tag.settings')->set('use_collection', $use_collection)->save();
$sut = $this->container
->get('class_resolver')
->getInstanceFromDefinition(GoogleTagController::class);
self::assertInstanceOf(GoogleTagController::class, $sut);
self::assertEquals($expected_access, $sut->addContainerAccess($user)->isAllowed());
}
/**
* Access data provider.
*/
public static function accessData(): array {
return [
'has permission, no collection' => [
['administer google_tag_container'],
FALSE,
FALSE,
],
'has permission, with collection' => [
['administer google_tag_container'],
TRUE,
TRUE,
],
'without permission, no collection' => [
[],
FALSE,
FALSE,
],
'without permission, with collection' => [
[],
TRUE,
FALSE,
],
];
}
}
