comparison 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
comparison
equal deleted inserted replaced
84:0a1843b2c096 85:4938c310d904
13 13
14 import doctest 14 import doctest
15 import unittest 15 import unittest
16 import sys 16 import sys
17 17
18 from markup import output 18 from markup.core import Stream
19 from markup.output import DocType, XMLSerializer
20
21
22 class XMLSerializerTestCase(unittest.TestCase):
23
24 def test_doctype_in_stream(self):
25 stream = Stream([(Stream.DOCTYPE, DocType.HTML_STRICT, ('?', -1, -1))])
26 output = stream.render(XMLSerializer)
27 self.assertEqual('<!DOCTYPE html PUBLIC '
28 '"-//W3C//DTD HTML 4.01//EN" '
29 '"http://www.w3.org/TR/html4/strict.dtd">\n',
30 output)
31
32 def test_doctype_in_stream_no_sysid(self):
33 stream = Stream([(Stream.DOCTYPE,
34 ('html', '-//W3C//DTD HTML 4.01//EN', None),
35 ('?', -1, -1))])
36 output = stream.render(XMLSerializer)
37 self.assertEqual('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">\n',
38 output)
39
40 def test_doctype_in_stream_no_pubid(self):
41 stream = Stream([(Stream.DOCTYPE,
42 ('html', None, 'http://www.w3.org/TR/html4/strict.dtd'),
43 ('?', -1, -1))])
44 output = stream.render(XMLSerializer)
45 self.assertEqual('<!DOCTYPE html SYSTEM '
46 '"http://www.w3.org/TR/html4/strict.dtd">\n',
47 output)
48
49 def test_doctype_in_stream_no_pubid_or_sysid(self):
50 stream = Stream([(Stream.DOCTYPE, ('html', None, None),
51 ('?', -1, -1))])
52 output = stream.render(XMLSerializer)
53 self.assertEqual('<!DOCTYPE html>\n', output)
54
55 def test_serializer_doctype(self):
56 stream = Stream([])
57 output = stream.render(XMLSerializer, doctype=DocType.HTML_STRICT)
58 self.assertEqual('<!DOCTYPE html PUBLIC '
59 '"-//W3C//DTD HTML 4.01//EN" '
60 '"http://www.w3.org/TR/html4/strict.dtd">\n',
61 output)
62
63 def test_doctype_one_and_only(self):
64 stream = Stream([(Stream.DOCTYPE, ('html', None, None), ('?', -1, -1))])
65 output = stream.render(XMLSerializer, doctype=DocType.HTML_STRICT)
66 self.assertEqual('<!DOCTYPE html PUBLIC '
67 '"-//W3C//DTD HTML 4.01//EN" '
68 '"http://www.w3.org/TR/html4/strict.dtd">\n',
69 output)
70
19 71
20 def suite(): 72 def suite():
21 suite = unittest.TestSuite() 73 suite = unittest.TestSuite()
22 suite.addTest(doctest.DocTestSuite(output)) 74 suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test'))
75 suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__))
23 return suite 76 return suite
24 77
25 if __name__ == '__main__': 78 if __name__ == '__main__':
26 unittest.main(defaultTest='suite') 79 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software