diff 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
line wrap: on
line diff
--- a/markup/tests/output.py
+++ b/markup/tests/output.py
@@ -16,7 +16,9 @@
 import sys
 
 from markup.core import Stream
-from markup.output import DocType, XMLSerializer
+from markup.input import HTML
+from markup.output import DocType, XMLSerializer, XHTMLSerializer, \
+                          HTMLSerializer
 
 
 class XMLSerializerTestCase(unittest.TestCase):
@@ -79,9 +81,33 @@
         self.assertEqual('<?python x = 2?>', output)
 
 
+class XHTMLSerializerTestCase(unittest.TestCase):
+
+    def test_textarea_whitespace(self):
+        content = '\nHey there.  \n\n    I am indented.\n'
+        stream = HTML('<textarea name="foo">%s</textarea>' % content)
+        output = stream.render(XHTMLSerializer)
+        self.assertEqual('<textarea name="foo">%s</textarea>' % content, output)
+
+    def test_xml_space(self):
+        text = '<foo xml:space="preserve"> Do not mess  \n\n with me </foo>'
+        output = HTML(text).render(XHTMLSerializer)
+        self.assertEqual(text, output)
+
+
+class HTMLSerializerTestCase(unittest.TestCase):
+
+    def test_xml_space(self):
+        text = '<foo xml:space="preserve"> Do not mess  \n\n with me </foo>'
+        output = HTML(text).render(HTMLSerializer)
+        self.assertEqual('<foo> Do not mess  \n\n with me </foo>', output)
+
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(XMLSerializerTestCase, 'test'))
+    suite.addTest(unittest.makeSuite(XHTMLSerializerTestCase, 'test'))
+    suite.addTest(unittest.makeSuite(HTMLSerializerTestCase, 'test'))
     suite.addTest(doctest.DocTestSuite(XMLSerializer.__module__))
     return suite
 
Copyright (C) 2012-2017 Edgewall Software