You are here

public function MessageNotifyTest::testPostSendRenderedField in Message Notify 8

Test populating the rednered output to fields.

File

tests/src/Kernel/MessageNotifyTest.php, line 126

Class

MessageNotifyTest
Test the Message notifier plugins handling.

Namespace

Drupal\Tests\message_notify\Kernel

Code

public function testPostSendRenderedField() {
  $this
    ->attachRenderedFields();

  // Test plain fields.
  $options = [
    'rendered fields' => [
      'foo' => 'rendered_foo',
      'bar' => 'rendered_bar',
    ],
  ];
  $message = Message::create([
    'template' => $this->messageTemplate
      ->id(),
  ]);
  $this->messageNotifier
    ->send($message, $options, 'test');
  $this
    ->assertTrue($message->rendered_foo->value && $message->rendered_bar->value, 'Message is rendered to fields.');

  // Test field with text-processing.
  $options = [
    'rendered fields' => [
      'foo' => 'rendered_baz',
      'bar' => 'rendered_bar',
    ],
  ];
  $message = Message::create([
    'template' => $this->messageTemplate
      ->id(),
  ]);
  $this->messageNotifier
    ->send($message, $options, 'test');
  $this
    ->assertTrue($message->rendered_baz->value && $message->rendered_bar->value, 'Message is rendered to fields with text-processing.');

  // Test missing view mode key in the rendered fields.
  $options = [
    'rendered fields' => [
      'foo' => 'rendered_foo',
    ],
  ];
  $message = Message::create([
    'template' => $this->messageTemplate
      ->id(),
  ]);
  try {
    $this->messageNotifier
      ->send($message, $options, 'test');
    $this
      ->fail('Can save rendered message with missing view mode.');
  } catch (MessageNotifyException $e) {
    $this
      ->pass('Cannot save rendered message with missing view mode.');
  }

  // Test invalid field name.
  $options = [
    'rendered fields' => [
      'foo' => 'wrong_field',
      'bar' => 'rendered_bar',
    ],
  ];
  $message = Message::create([
    'template' => $this->messageTemplate
      ->id(),
  ]);
  try {
    $this->messageNotifier
      ->send($message, $options, 'test');
    $this
      ->fail('Can save rendered message to non-existing field.');
  } catch (MessageNotifyException $e) {
    $this
      ->pass('Cannot save rendered message to non-existing field.');
  }
}