Mercurial > genshi > mirror
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') |