diff genshi/tests/input.py @ 500:0742f421caba experimental-inline

Merged revisions 487-603 via svnmerge from http://svn.edgewall.org/repos/genshi/trunk
author cmlenz
date Fri, 01 Jun 2007 17:21:47 +0000
parents 55cf81951686
children 1837f39efd6f
line wrap: on
line diff
--- a/genshi/tests/input.py
+++ b/genshi/tests/input.py
@@ -71,7 +71,7 @@
         <div>\xf6</div>
         """.encode('iso-8859-1')
         events = list(XMLParser(StringIO(text)))
-        kind, data, pos = events[1]
+        kind, data, pos = events[2]
         self.assertEqual(Stream.TEXT, kind)
         self.assertEqual(u'\xf6', data)
 
@@ -181,6 +181,33 @@
         self.assertEqual(u'php', target)
         self.assertEqual(u'echo "Foobar"', data)
 
+    def test_xmldecl(self):
+        text = '<?xml version="1.0" ?><root />'
+        events = list(XMLParser(StringIO(text)))
+        kind, (version, encoding, standalone), pos = events[0]
+        self.assertEqual(Stream.XML_DECL, kind)
+        self.assertEqual(u'1.0', version)
+        self.assertEqual(None, encoding)
+        self.assertEqual(-1, standalone)
+
+    def test_xmldecl_encoding(self):
+        text = '<?xml version="1.0" encoding="utf-8" ?><root />'
+        events = list(XMLParser(StringIO(text)))
+        kind, (version, encoding, standalone), pos = events[0]
+        self.assertEqual(Stream.XML_DECL, kind)
+        self.assertEqual(u'1.0', version)
+        self.assertEqual(u'utf-8', encoding)
+        self.assertEqual(-1, standalone)
+
+    def test_xmldecl_standalone(self):
+        text = '<?xml version="1.0" standalone="yes" ?><root />'
+        events = list(XMLParser(StringIO(text)))
+        kind, (version, encoding, standalone), pos = events[0]
+        self.assertEqual(Stream.XML_DECL, kind)
+        self.assertEqual(u'1.0', version)
+        self.assertEqual(None, encoding)
+        self.assertEqual(1, standalone)
+
     def test_processing_instruction_trailing_qmark(self):
         text = '<?php echo "Foobar" ??>'
         events = list(HTMLParser(StringIO(text)))
@@ -222,6 +249,14 @@
         self.assertEqual((Stream.END, 'b'), events[3][:2])
         self.assertEqual((Stream.END, 'span'), events[4][:2])
 
+    def test_hex_charref(self):
+        text = '<span>&#x27;</span>'
+        events = list(HTMLParser(StringIO(text)))
+        self.assertEqual(3, len(events))
+        self.assertEqual((Stream.START, ('span', ())), events[0][:2])
+        self.assertEqual((Stream.TEXT, "'"), events[1][:2])
+        self.assertEqual((Stream.END, 'span'), events[2][:2])
+
 
 def suite():
     suite = unittest.TestSuite()
Copyright (C) 2012-2017 Edgewall Software