diff -r 5c45d0ca984f Lib/test/test_html.py --- a/Lib/test/test_html.py Mon Apr 22 20:20:54 2013 +0300 +++ b/Lib/test/test_html.py Mon Apr 22 20:19:08 2013 +0100 @@ -5,6 +5,7 @@ import html import unittest from test.support import run_unittest +from html.parser import HTMLParser class HtmlTests(unittest.TestCase): @@ -16,6 +17,31 @@ html.escape('\'\'', False), '\'<script>"&foo;"</script>\'') + def test_parser_feed_incomplete_xml_entity_at_end(self): + p = HTMLParser() + p.feed('a&b') + p.close() + self.assertEqual((1,3), p.getpos()) + + def test_parser_feed_incomplete_xml_entity_space_at_end(self): + p = HTMLParser() + p.feed('a&b ') + p.close() + self.assertEqual((1,4), p.getpos()) + + def test_parser_feed_incomplete_xml_entity_multiple_chunks(self): + p = HTMLParser() + p.feed('a&b') + p.feed(';') + p.close() + self.assertEqual((1,4), p.getpos()) + + def test_parser_feed_illegal_space_after_ampersand(self): + p = HTMLParser() + p.feed('a & b') + p.close() + self.assertEqual((1,5), p.getpos()) + def test_main(): run_unittest(HtmlTests)