comparison markup/tests/output.py @ 123:10279d2eeec9 trunk

Fix for #18: whitespace in space-sensitive elements such as `<pre>` and `<textarea>` is now preserved.
author cmlenz
date Thu, 03 Aug 2006 14:49:22 +0000
parents 71f3db26eecb
children 520a5b7dd6d2
comparison
equal deleted inserted replaced
122:6c5c6f67d3e8 123:10279d2eeec9
14 import doctest 14 import doctest
15 import unittest 15 import unittest
16 import sys 16 import sys
17 17
18 from markup.core import Stream 18 from markup.core import Stream
19 from markup.output import DocType, XMLSerializer 19 from markup.input import HTML
20 from markup.output import DocType, XMLSerializer, XHTMLSerializer, \
21 HTMLSerializer
20 22
21 23
22 class XMLSerializerTestCase(unittest.TestCase): 24 class XMLSerializerTestCase(unittest.TestCase):
23 25
24 def test_doctype_in_stream(self): 26 def test_doctype_in_stream(self):
77 stream = Stream([(Stream.PI, ('python', 'x = 2'), ('?', -1, -1))]) 79 stream = Stream([(Stream.PI, ('python', 'x = 2'), ('?', -1, -1))])
78 output = stream.render(XMLSerializer) 80 output = stream.render(XMLSerializer)
79 self.assertEqual('<?python x = 2?>', output) 81 self.assertEqual('<?python x = 2?>', output)
80 82
81 83
84 class XHTMLSerializerTestCase(unittest.TestCase):
85
86 def test_textarea_whitespace(self):
87 content = '\nHey there. \n\n I am indented.\n'
88 stream = HTML('<textarea name="foo">%s</textarea>' % content)
89 output = stream.render(XHTMLSerializer)
90 self.assertEqual('<textarea name="foo">%s</textarea>' % content, output)
91
92 def test_xml_space(self):
93 text = '<foo xml:space="preserve"> Do not mess \n\n with me </foo>'
94 output = HTML(text).render(XHTMLSerializer)
95 self.assertEqual(text, output)
96
97
98 class HTMLSerializerTestCase(unittest.TestCase):
99
100 def test_xml_space(self):
101 text = '<foo xml:space="preserve"> Do not mess \n\n with me </foo>'
102 output = HTML(text).render(HTMLSerializer)
103 self.assertEqual('<foo> Do not mess \n\n with me </foo>', output)
104
105
82 def suite(): 106 def suite():
83 suite = unittest.TestSuite() 107 suite = unittest.TestSuite()
84 suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test')) 108 suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test'))
109 suite.addTest(unittest.makeSuite(XHTMLSerializerTestCase, 'test'))
110 suite.addTest(unittest.makeSuite(HTMLSerializerTestCase, 'test'))
85 suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__)) 111 suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__))
86 return suite 112 return suite
87 113
88 if __name__ == '__main__': 114 if __name__ == '__main__':
89 unittest.main(defaultTest='suite') 115 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software