Security update for permissions_by_term
[yaffs-website] / web / modules / contrib / permissions_by_term / tests / src / Kernel / NodeEntityBundleInfoTest.php
1 <?php
2
3 namespace Drupal\Tests\permissions_by_term\Kernel;
4
5 use Drupal\taxonomy\Entity\Term;
6 use Drupal\user\Entity\Role;
7 use Drupal\user\Entity\User;
8 use Drupal\permissions_by_term\Service\NodeEntityBundleInfo;
9
10 /**
11  * Class AccessStorageTest
12  *
13  * @package Drupal\Tests\permissions_by_term\Kernel
14  * @group permissions_by_term
15  */
16 class NodeEntityBundleInfoTest extends PBTKernelTestBase {
17
18   /**
19    * @var NodeEntityBundleInfo
20    */
21   private $nodeEntityBundleInfo;
22
23   /**
24    * {@inheritdoc}
25    */
26   protected function setUp() {
27     parent::setUp();
28     $this->nodeEntityBundleInfo = $this->container->get('permissions_by_term.node_entity_bundle_info');
29   }
30
31   /**
32    * @return void
33    */
34   public function testGetPermissionsByTids() {
35     $testUser1 = User::create([
36       'uid' => 5,
37       'name' => 'testUser1',
38       'mail' => 'foobar@example.com',
39     ]);
40     $testUser1->save();
41
42     $role = Role::create([
43       'id' => 'first-role',
44       'label' => 'First Role'
45     ]);
46     $role->save();
47
48     $testUser2 = User::create([
49       'uid' => 6,
50       'name' => 'testUser2',
51       'mail' => 'foobar@example.com',
52     ]);
53     $testUser2->save();
54
55     $role = Role::create([
56       'id' => 'second-role',
57       'label' => 'Second Role'
58     ]);
59     $role->save();
60
61     $testUser3 = User::create([
62       'uid' => 7,
63       'name' => 'testUser3',
64       'mail' => 'foobar@example.com',
65     ]);
66     $testUser3->save();
67
68     $role = Role::create([
69       'id' => 'third-role',
70       'label' => 'Third Role'
71     ]);
72     $role->save();
73
74     $firstTerm = Term::create([
75       'name' => 'term2',
76       'vid' => 'test',
77     ]);
78     $firstTerm->save();
79
80     $secondTerm = Term::create([
81       'name' => 'term3',
82       'vid' => 'test',
83     ]);
84     $secondTerm->save();
85
86     $this->accessStorage->addTermPermissionsByUserIds([5, 6, 7], $firstTerm->id());
87     $this->accessStorage->addTermPermissionsByRoleIds(['first-role', 'second-role', 'third-role'], $firstTerm->id());
88     $this->accessStorage->addTermPermissionsByRoleIds(['second-role', 'third-role'], $secondTerm->id());
89
90     $permissions = $this->nodeEntityBundleInfo->getPermissions();
91
92     $expectedPermissions = [
93       'roleLabels' => [1 => ['First Role', 'Second Role', 'Third Role'], 2 => ['Second Role', 'Third Role']],
94       'userDisplayNames' => [1 => ['testUser1', 'testUser2', 'testUser3']]
95     ];
96
97     $this->assertArraySubset($expectedPermissions, $permissions);
98   }
99
100 }