From 2c4ace9da28079065f42709c9047950c2edce41f Mon Sep 17 00:00:00 2001
From: Lauri Eskola <lauri.eskola@acquia.com>
Date: Thu, 19 Dec 2019 17:43:57 +0200
Subject: [PATCH] Issue #3100066 by oknate, Wim Leers, alisonjo315: "Convert
 line breaks into HTML" filter should exclude <drupal-media> tag

---
 core/modules/filter/filter.module                         | 2 +-
 core/modules/filter/tests/src/Kernel/FilterKernelTest.php | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index c781f8a200a7..fe5615f22a2d 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -701,7 +701,7 @@ function _filter_autop($text) {
   // to avoid messing up code. We look for matched pairs and allow basic
   // nesting. For example:
   // "processed <pre> ignored <script> ignored </script> ignored </pre> processed"
-  $chunks = preg_split('@(<!--.*?-->|</?(?:pre|script|style|object|iframe|!--)[^>]*>)@i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
+  $chunks = preg_split('@(<!--.*?-->|</?(?:pre|script|style|object|iframe|drupal-media|!--)[^>]*>)@i', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
   // Note: PHP ensures the array consists of alternating delimiters and literals
   // and begins and ends with a literal (inserting NULL as required).
   $ignore = FALSE;
diff --git a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
index f9aeeb9523fb..735521caeb8b 100644
--- a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
@@ -376,6 +376,10 @@ public function testLineBreakFilter() {
       "<iframe>aaa</iframe>\n\n" => [
         "<p><iframe>aaa</iframe></p>" => FALSE,
       ],
+      // Bug 3097338, paragraphs were appearing around drupalmedia tags.
+      '<drupal-media data-caption=" " data-entity-type="media" data-entity-uuid="dbb16f97-cd11-4357-acde-cd09e19e312b"></drupal-media>' => [
+        '<p><drupal-media data-caption=" " data-entity-type="media" data-entity-uuid="dbb16f97-cd11-4357-acde-cd09e19e312b"></drupal-media></p>' => FALSE,
+      ],
     ];
     $this->assertFilteredString($filter, $tests);
 
-- 
GitLab