You are here

public function FieldPermissionsTest::testFieldPermissions in Display Suite 8.4

Same name and namespace in other branches
  1. 8.3 tests/src/Functional/FieldPermissionsTest.php \Drupal\Tests\ds\Functional\FieldPermissionsTest::testFieldPermissions()

Tests field permissions.

File

tests/src/Functional/FieldPermissionsTest.php, line 32

Class

FieldPermissionsTest
Tests for testing field permissions.

Namespace

Drupal\Tests\ds\Functional

Code

public function testFieldPermissions() {
  $fields = [
    'fields[body][region]' => 'right',
    'fields[test_field][region]' => 'left',
  ];
  $this
    ->config('ds_extras.settings')
    ->set('field_permissions', TRUE)
    ->save();
  \Drupal::moduleHandler()
    ->resetImplementations();
  $this
    ->dsSelectLayout();
  $this
    ->dsConfigureUi($fields);

  // Create a node.
  $settings = [
    'type' => 'article',
  ];
  $node = $this
    ->drupalCreateNode($settings);
  $this
    ->drupalGet('node/' . $node
    ->id());
  $this
    ->assertSession()
    ->responseContains('group-right');
  $this
    ->assertSession()
    ->pageTextNotContains('Test field plugin on node ' . $node
    ->id());

  // Give permissions.
  $edit = [
    'authenticated[view node_author on node]' => 1,
    'authenticated[view test_field on node]' => 1,
  ];
  $this
    ->drupalGet('admin/people/permissions');
  $this
    ->submitForm($edit, 'Save permissions');
  $this
    ->drupalGet('node/' . $node
    ->id());
  $this
    ->assertSession()
    ->responseContains('group-left');
  $this
    ->assertSession()
    ->pageTextContains('Test field plugin on node ' . $node
    ->id());
}