From 99ffe1990adefac03626ec334395be93ac8a38b4 Mon Sep 17 00:00:00 2001
From: Peter Philipp <peter.philipp@cando-image.com>
Date: Sun, 6 Nov 2011 13:21:33 +0100
Subject: [PATCH] Avoid cdata double escaping: http://drupal.org/node/998590

---
 modules/filter/filter.test |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/modules/filter/filter.test b/modules/filter/filter.test
index 67d0833..c973960 100644
--- a/modules/filter/filter.test
+++ b/modules/filter/filter.test
@@ -1637,6 +1637,23 @@ alert("test")
  /* Styling */ body {color:red}
 /*--><!]]>*/
 </style></p>', t('HTML corrector -- CDATA added to a style element.'));
+
+    // Check if doubling cdata escaping is prevented.
+    $cdata_patterns = array(
+    '<!--//--><![CDATA[// ><!-- ' => '<p><script type="text/javascript"><!--//--><![CDATA[// ><!-- alert("test");//--><!]]></script></p>',
+      '// <![CDATA[' => '<p><script type="text/javascript">// <![CDATA[alert("test");// ]]></script></p>',
+      '//<![CDATA[' => '<p><script type="text/javascript">//<![CDATA[alert("test");//]]></script></p>',
+      '<!--/*--><![CDATA[/* ><!--*/' => '<p><style><!--/*--><![CDATA[/* ><!--*/ /* Styling */ body {color:red} /*--><!]]>*/</style></p>',
+      '/*<![CDATA[*/' => '<p><style>/*<![CDATA[*/ /* Styling */ body {color:red} /*]]>*/</style></p>',
+    );
+    foreach ($cdata_patterns as $pattern_name => $pattern_data) {
+      $f = _filter_htmlcorrector($pattern_data);
+      $this->assertEqual(
+        $f,
+        $pattern_data,
+        t('HTML corrector -- Existing @pattern_name kept and not doubled up', array('@pattern_name' => $pattern_name))
+      );
+    }
   }
 
   /**
-- 
1.7.7.msysgit.1

