#13358: HTMLParser now calls handle_data only once for each CDATA.
diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py
index b84e7dc..5dfe466 100644
--- a/Lib/test/test_htmlparser.py
+++ b/Lib/test/test_htmlparser.py
@@ -286,6 +286,27 @@
                                     ("data", content),
                                     ("endtag", element_lower)])
 
+    def test_cdata_with_closing_tags(self):
+        # see issue #13358
+        # make sure that HTMLParser calls handle_data only once for each CDATA.
+        # The normal event collector normalizes the events in get_events,
+        # so we override it to return the original list of events.
+        class Collector(EventCollector):
+            def get_events(self):
+                return self.events
+
+        content = """<!-- not a comment --> &not-an-entity-ref;
+                  <a href="" /> </p><p> &amp; <span></span></style>
+                  '</script' + '>' </html> </head> </scripter>!"""
+        for element in [' script', 'script ', ' script ',
+                        '\nscript', 'script\n', '\nscript\n']:
+            s = u'<script>{content}</{element}>'.format(element=element,
+                                                        content=content)
+            self._run_check(s, [("starttag", "script", []),
+                                ("data", content),
+                                ("endtag", "script")],
+                            collector=Collector)
+
     def test_malformatted_charref(self):
         self._run_check("<p>&#bad;</p>", [
             ("starttag", "p", []),