diff -u b/core/tests/Drupal/KernelTests/Core/Messenger/LegacyMessengerTest.php b/core/tests/Drupal/KernelTests/Core/Messenger/LegacyMessengerTest.php --- b/core/tests/Drupal/KernelTests/Core/Messenger/LegacyMessengerTest.php +++ b/core/tests/Drupal/KernelTests/Core/Messenger/LegacyMessengerTest.php @@ -17,8 +17,10 @@ * Retrieves the Messenger service from LegacyMessenger. * * @param \Drupal\Core\Messenger\LegacyMessenger $legacy_messenger + * The legacy messenger. * * @return \Drupal\Core\Messenger\MessengerInterface|null + * A messenger implementation. */ protected function getMessengerService(LegacyMessenger $legacy_messenger) { $method = new \ReflectionMethod($legacy_messenger, 'getMessengerService'); @@ -81,7 +83,12 @@ $this->assertContains('Cheetah', $messages[MessengerInterface::TYPE_WARNING]); } - + /** + * @covers ::all + * @covers ::addStatus + * @covers ::addWarning + * @covers ::addError + */ public function testRepeatedMessages() { // Add repeated messages of different types. $messenger = \Drupal::messenger(); reverted: --- b/core/tests/Drupal/KernelTests/Core/Messenger/MessengerKernelTest.php +++ /dev/null @@ -1,155 +0,0 @@ -messenger = \Drupal::service('messenger'); - } - - /** - * @covers ::addStatus - * @covers ::deleteByType - * @covers ::messagesByType - */ - public function testRemoveSingleMessage() { - - // Set two messages. - $this->messenger->addStatus('First message (removed).'); - $this->messenger->addStatus(t('Second message with markup! (not removed).')); - $messages = $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS); - // Remove the first. - unset($messages[0]); - - // Re-add the second. - foreach ($messages as $message) { - $this->messenger->addStatus($message); - } - - // Check we only have the second one. - $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); - $this->assertContains('Second message with markup! (not removed).', $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS)); - - } - - /** - * Tests we don't add duplicates. - * - * @covers ::all - * @covers ::addStatus - * @covers ::addWarning - * @covers ::addError - * @covers ::deleteByType - * @covers ::deleteAll - */ - public function testAddNoDuplicates() { - - $this->messenger->addStatus('Non Duplicated status message'); - $this->messenger->addStatus('Non Duplicated status message'); - - $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); - - $this->messenger->addWarning('Non Duplicated warning message'); - $this->messenger->addWarning('Non Duplicated warning message'); - - $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_WARNING)); - - $this->messenger->addError('Non Duplicated error message'); - $this->messenger->addError('Non Duplicated error message'); - - $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_ERROR)); - - // Check getting all messages. - $messages = $this->messenger->all(); - $this->assertCount(3, $messages); - $this->assertArrayHasKey(MessengerInterface::TYPE_STATUS, $messages); - $this->assertArrayHasKey(MessengerInterface::TYPE_WARNING, $messages); - $this->assertArrayHasKey(MessengerInterface::TYPE_ERROR, $messages); - - // Check deletion. - $this->messenger->deleteAll(); - $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); - $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_WARNING)); - $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_ERROR)); - - } - - /** - * Tests we do add duplicates with repeat flag. - * - * @covers ::addStatus - * @covers ::addWarning - * @covers ::addError - * @covers ::deleteByType - */ - public function testAddWithDuplicates() { - - $this->messenger->addStatus('Duplicated status message', TRUE); - $this->messenger->addStatus('Duplicated status message', TRUE); - - $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS)); - - $this->messenger->addWarning('Duplicated warning message', TRUE); - $this->messenger->addWarning('Duplicated warning message', TRUE); - - $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_WARNING)); - - $this->messenger->addError('Duplicated error message', TRUE); - $this->messenger->addError('Duplicated error message', TRUE); - - $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_ERROR)); - - } - - /** - * Test adding markup. - * - * @covers ::addStatus - * @covers ::deleteByType - * @covers ::messagesByType - */ - public function testAddMarkup() { - - // Add a Markup message. - $this->messenger->addStatus(Markup::create('Markup with markup!')); - // Test duplicate Markup messages. - $this->messenger->addStatus(Markup::create('Markup with markup!')); - - $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); - - // Ensure that multiple Markup messages work. - $this->messenger->addStatus(Markup::create('Markup2 with markup!')); - - $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)); - - } - -} only in patch2: unchanged: --- /dev/null +++ b/core/tests/Drupal/KernelTests/Core/Messenger/MessengerTest.php @@ -0,0 +1,165 @@ +messenger = \Drupal::service('messenger'); + } + + /** + * @covers ::addStatus + * @covers ::deleteByType + * @covers ::messagesByType + */ + public function testRemoveSingleMessage() { + + // Set two messages. + $this->messenger->addStatus('First message (removed).'); + $this->messenger->addStatus(t('Second message with markup! (not removed).')); + $messages = $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS); + // Remove the first. + unset($messages[0]); + + // Re-add the second. + foreach ($messages as $message) { + $this->messenger->addStatus($message); + } + + // Check we only have the second one. + $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); + $this->assertContains('Second message with markup! (not removed).', $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS)); + + } + + /** + * Tests we don't add duplicates. + * + * @covers ::all + * @covers ::addStatus + * @covers ::addWarning + * @covers ::addError + * @covers ::deleteByType + * @covers ::deleteAll + */ + public function testAddNoDuplicates() { + + $this->messenger->addStatus('Non Duplicated status message'); + $this->messenger->addStatus('Non Duplicated status message'); + + $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); + + $this->messenger->addWarning('Non Duplicated warning message'); + $this->messenger->addWarning('Non Duplicated warning message'); + + $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_WARNING)); + + $this->messenger->addError('Non Duplicated error message'); + $this->messenger->addError('Non Duplicated error message'); + + $messages = $this->messenger->messagesByType(MessengerInterface::TYPE_ERROR); + $this->assertCount(1, $messages); + + // Check getting all messages. + $messages = $this->messenger->all(); + $this->assertCount(3, $messages); + $this->assertArrayHasKey(MessengerInterface::TYPE_STATUS, $messages); + $this->assertArrayHasKey(MessengerInterface::TYPE_WARNING, $messages); + $this->assertArrayHasKey(MessengerInterface::TYPE_ERROR, $messages); + + // Check deletion. + $this->messenger->deleteAll(); + $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); + $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_WARNING)); + $this->assertCount(0, $this->messenger->messagesByType(MessengerInterface::TYPE_ERROR)); + + } + + /** + * Tests we do add duplicates with repeat flag. + * + * @covers ::addStatus + * @covers ::addWarning + * @covers ::addError + * @covers ::deleteByType + */ + public function testAddWithDuplicates() { + + $this->messenger->addStatus('Duplicated status message', TRUE); + $this->messenger->addStatus('Duplicated status message', TRUE); + + $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_STATUS)); + + $this->messenger->addWarning('Duplicated warning message', TRUE); + $this->messenger->addWarning('Duplicated warning message', TRUE); + + $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_WARNING)); + + $this->messenger->addError('Duplicated error message', TRUE); + $this->messenger->addError('Duplicated error message', TRUE); + + $this->assertCount(2, $this->messenger->deleteByType(MessengerInterface::TYPE_ERROR)); + + } + + /** + * Test adding markup. + * + * @covers ::addStatus + * @covers ::deleteByType + * @covers ::messagesByType + */ + public function testAddMarkup() { + + // Add a Markup message. + $this->messenger->addStatus(Markup::create('Markup with markup!')); + // Test duplicate Markup messages. + $this->messenger->addStatus(Markup::create('Markup with markup!')); + + $this->assertCount(1, $this->messenger->messagesByType(MessengerInterface::TYPE_STATUS)); + + // Ensure that multiple Markup messages work. + $this->messenger->addStatus(Markup::create('Markup2 with markup!')); + + $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]); + + } + +}