You are here

public function SimplenewsTestSubscriptionOutput::testSubscriptionVisiblity in Simplenews 3.x

Same name and namespace in other branches
  1. 8.2 tests/src/Functional/SimplenewsTestSubscriptionOutput.php \Drupal\Tests\simplenews\Functional\SimplenewsTestSubscriptionOutput::testSubscriptionVisiblity()

Test subscription output visibility for different users.

File

tests/src/Functional/SimplenewsTestSubscriptionOutput.php, line 15

Class

SimplenewsTestSubscriptionOutput
Test subscription output on user profile page.

Namespace

Drupal\Tests\simplenews\Functional

Code

public function testSubscriptionVisiblity() {

  // Enable the extra field.
  \Drupal::service('entity_display.repository')
    ->getViewDisplay('user', 'user')
    ->setComponent('simplenews', [
    'label' => 'hidden',
    'type' => 'simplenews',
  ])
    ->save();

  // Create admin user.
  $admin_user = $this
    ->drupalCreateUser([
    'administer users',
  ]);

  // Create user that can view user profiles.
  $user = $this
    ->drupalCreateUser([
    'access user profiles',
    'subscribe to newsletters',
    'access content',
  ]);
  $this
    ->drupalLogin($admin_user);

  // Tests extra fields for admin user.
  $this
    ->drupalGet('user/' . $admin_user
    ->id());
  $this
    ->assertLink('Manage subscriptions');
  $this
    ->drupalLogout();

  // Tests extra fields for user.
  $this
    ->drupalLogin($user);
  $this
    ->drupalGet('user/' . $admin_user
    ->id());
  $this
    ->assertNoLink('Manage subscriptions');
  $this
    ->drupalGet('user/' . $user
    ->id());
  $this
    ->assertLink('Manage subscriptions');
  $this
    ->drupalLogout();

  // Tests extra fields for anonymous users.
  $this
    ->drupalGet('user/' . $admin_user
    ->id());
  $this
    ->assertNoLink('Manage subscriptions');
  $this
    ->drupalGet('user/' . $user
    ->id());
  $this
    ->assertNoLink('Manage subscriptions');
}