You are here

public function EntityQueryAlterComplexTest::testMemberGroupAccessWithoutPermission in Group 8

Same name and namespace in other branches
  1. 2.0.x tests/src/Kernel/EntityQueryAlterComplexTest.php \Drupal\Tests\group\Kernel\EntityQueryAlterComplexTest::testMemberGroupAccessWithoutPermission()

Tests that grouped nodes are properly hidden for members.

File

tests/src/Kernel/EntityQueryAlterComplexTest.php, line 87

Class

EntityQueryAlterComplexTest
Tests that Group properly checks access for "complex" grouped entities.

Namespace

Drupal\Tests\group\Kernel

Code

public function testMemberGroupAccessWithoutPermission() {
  $node_1 = $this
    ->createNode([
    'type' => 'page',
  ]);
  $node_2 = $this
    ->createNode([
    'type' => 'page',
  ]);
  $group = $this
    ->createGroup([
    'type' => $this->groupTypeA
      ->id(),
  ]);
  $group
    ->addContent($node_1, 'node_as_content:page');
  $group
    ->addMember($this
    ->getCurrentUser());
  $this
    ->assertQueryAccessResult([
    $node_2
      ->id(),
  ], 'Only the ungrouped node shows up.');

  // Extra hardening: Re-confirm result when another group type does grant
  // access but does not contain the node.
  $this->groupTypeB
    ->getMemberRole()
    ->grantPermission('view any node_as_content:page entity')
    ->save();
  $this
    ->createGroup([
    'type' => $this->groupTypeB
      ->id(),
  ])
    ->addMember($this
    ->getCurrentUser());
  $this
    ->assertQueryAccessResult([
    $node_2
      ->id(),
  ], 'Only the ungrouped node shows up.');
}