function MessengerTest::testAddMarkup

Same name in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php \Drupal\KernelTests\Core\Messenger\MessengerTest::testAddMarkup()
  2. 8.9.x core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php \Drupal\KernelTests\Core\Messenger\MessengerTest::testAddMarkup()
  3. 10 core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php \Drupal\KernelTests\Core\Messenger\MessengerTest::testAddMarkup()

Tests adding markup.

@covers ::addStatus @covers ::deleteByType @covers ::messagesByType

File

core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php, line 135

Class

MessengerTest
@group Messenger @coversDefaultClass \Drupal\Core\Messenger\Messenger

Namespace

Drupal\KernelTests\Core\Messenger

Code

public function testAddMarkup() : void {
    // Add a Markup message.
    $this->messenger
        ->addStatus(Markup::create('Markup with <em>markup!</em>'));
    // Test duplicate Markup messages.
    $this->messenger
        ->addStatus(Markup::create('Markup with <em>markup!</em>'));
    $this->assertCount(1, $this->messenger
        ->messagesByType(MessengerInterface::TYPE_STATUS));
    // Ensure that multiple Markup messages work.
    $this->messenger
        ->addStatus(Markup::create('Markup2 with <em>markup!</em>'));
    $this->assertCount(2, $this->messenger
        ->deleteByType(MessengerInterface::TYPE_STATUS));
    // Test mixing of types.
    $this->messenger
        ->addStatus(Markup::create('Non duplicate Markup / string.'));
    $this->messenger
        ->addStatus('Non duplicate Markup / string.');
    $this->messenger
        ->addStatus(Markup::create('Duplicate Markup / string.'), TRUE);
    $this->messenger
        ->addStatus('Duplicate Markup / string.', TRUE);
    $this->assertCount(3, $this->messenger
        ->deleteByType(MessengerInterface::TYPE_STATUS));
    $this->messenger
        ->deleteAll();
    // Check translatable string is converted to Markup.
    $this->messenger
        ->addStatus(new TranslatableMarkup('Translatable message'));
    $messages = $this->messenger
        ->deleteByType(MessengerInterface::TYPE_STATUS);
    $this->assertInstanceOf(Markup::class, $messages[0]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.