You are here

public function MessageEntityTest::testMessageMethods in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/contact/tests/src/Kernel/MessageEntityTest.php \Drupal\Tests\contact\Kernel\MessageEntityTest::testMessageMethods()

Tests some of the methods.

File

core/modules/contact/tests/src/Kernel/MessageEntityTest.php, line 36

Class

MessageEntityTest
Tests the message entity class.

Namespace

Drupal\Tests\contact\Kernel

Code

public function testMessageMethods() {
  $message_storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('contact_message');
  $message = $message_storage
    ->create([
    'contact_form' => 'feedback',
  ]);

  // Check for empty values first.
  $this
    ->assertEquals('', $message
    ->getMessage());
  $this
    ->assertEquals('', $message
    ->getSenderName());
  $this
    ->assertEquals('', $message
    ->getSenderMail());
  $this
    ->assertFalse($message
    ->copySender());

  // Check for default values.
  $this
    ->assertEquals('feedback', $message
    ->getContactForm()
    ->id());
  $this
    ->assertFalse($message
    ->isPersonal());

  // Set some values and check for them afterwards.
  $message
    ->setMessage('welcome_message');
  $message
    ->setSenderName('sender_name');
  $message
    ->setSenderMail('sender_mail');
  $message
    ->setCopySender(TRUE);
  $this
    ->assertEquals('welcome_message', $message
    ->getMessage());
  $this
    ->assertEquals('sender_name', $message
    ->getSenderName());
  $this
    ->assertEquals('sender_mail', $message
    ->getSenderMail());
  $this
    ->assertTrue($message
    ->copySender());
  $no_access_user = $this
    ->createUser([
    'uid' => 2,
  ]);
  $access_user = $this
    ->createUser([
    'uid' => 3,
  ], [
    'access site-wide contact form',
  ]);
  $admin = $this
    ->createUser([
    'uid' => 4,
  ], [
    'administer contact forms',
  ]);
  $this
    ->assertFalse(\Drupal::entityTypeManager()
    ->getAccessControlHandler('contact_message')
    ->createAccess(NULL, $no_access_user));
  $this
    ->assertTrue(\Drupal::entityTypeManager()
    ->getAccessControlHandler('contact_message')
    ->createAccess(NULL, $access_user));
  $this
    ->assertTrue($message
    ->access('edit', $admin));
  $this
    ->assertFalse($message
    ->access('edit', $access_user));
}