comparison markup/tests/output.py @ 85:db8f2958c670

Improve handling of DOCTYPE declarations.
author cmlenz
date Sun, 16 Jul 2006 11:07:34 +0000
parents 822089ae65ce
children d4c7617900e3
comparison
equal deleted inserted replaced
84:894576e2b813 85:db8f2958c670
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