Mercurial > genshi > mirror
diff markup/tests/output.py @ 85:4938c310d904 trunk
Improve handling of DOCTYPE declarations.
author | cmlenz |
---|---|
date | Sun, 16 Jul 2006 11:07:34 +0000 |
parents | 59eb24184e9c |
children | 80386d62814f |
line wrap: on
line diff
--- a/markup/tests/output.py +++ b/markup/tests/output.py @@ -15,11 +15,64 @@ import unittest import sys -from markup import output +from markup.core import Stream +from markup.output import DocType, XMLSerializer + + +class XMLSerializerTestCase(unittest.TestCase): + + def test_doctype_in_stream(self): + stream = Stream([(Stream.DOCTYPE, DocType.HTML_STRICT, ('?', -1, -1))]) + output = stream.render(XMLSerializer) + self.assertEqual('<!DOCTYPE html PUBLIC ' + '"-//W3C//DTD HTML 4.01//EN" ' + '"http://www.w3.org/TR/html4/strict.dtd">\n', + output) + + def test_doctype_in_stream_no_sysid(self): + stream = Stream([(Stream.DOCTYPE, + ('html', '-//W3C//DTD HTML 4.01//EN', None), + ('?', -1, -1))]) + output = stream.render(XMLSerializer) + self.assertEqual('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">\n', + output) + + def test_doctype_in_stream_no_pubid(self): + stream = Stream([(Stream.DOCTYPE, + ('html', None, 'http://www.w3.org/TR/html4/strict.dtd'), + ('?', -1, -1))]) + output = stream.render(XMLSerializer) + self.assertEqual('<!DOCTYPE html SYSTEM ' + '"http://www.w3.org/TR/html4/strict.dtd">\n', + output) + + def test_doctype_in_stream_no_pubid_or_sysid(self): + stream = Stream([(Stream.DOCTYPE, ('html', None, None), + ('?', -1, -1))]) + output = stream.render(XMLSerializer) + self.assertEqual('<!DOCTYPE html>\n', output) + + def test_serializer_doctype(self): + stream = Stream([]) + output = stream.render(XMLSerializer, doctype=DocType.HTML_STRICT) + self.assertEqual('<!DOCTYPE html PUBLIC ' + '"-//W3C//DTD HTML 4.01//EN" ' + '"http://www.w3.org/TR/html4/strict.dtd">\n', + output) + + def test_doctype_one_and_only(self): + stream = Stream([(Stream.DOCTYPE, ('html', None, None), ('?', -1, -1))]) + output = stream.render(XMLSerializer, doctype=DocType.HTML_STRICT) + self.assertEqual('<!DOCTYPE html PUBLIC ' + '"-//W3C//DTD HTML 4.01//EN" ' + '"http://www.w3.org/TR/html4/strict.dtd">\n', + output) + def suite(): suite = unittest.TestSuite() - suite.addTest(doctest.DocTestSuite(output)) + suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test')) + suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__)) return suite if __name__ == '__main__':