[CalendarServer-changes] [10014] CalendarServer/trunk/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Fri Nov 9 11:21:09 PST 2012


Revision: 10014
          http://trac.calendarserver.org//changeset/10014
Author:   sagen at apple.com
Date:     2012-11-09 11:21:09 -0800 (Fri, 09 Nov 2012)
Log Message:
-----------
Handle resource/location names with unicode values above 0xFFFF, e.g. emoji

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/test/test_xmlutil.py
    CalendarServer/trunk/twistedcaldav/xmlutil.py

Modified: CalendarServer/trunk/twistedcaldav/test/test_xmlutil.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_xmlutil.py	2012-11-09 03:47:32 UTC (rev 10013)
+++ CalendarServer/trunk/twistedcaldav/test/test_xmlutil.py	2012-11-09 19:21:09 UTC (rev 10014)
@@ -17,7 +17,7 @@
 import twistedcaldav.test.util
 from cStringIO import StringIO
 from twistedcaldav.xmlutil import readXML, writeXML, addSubElement,\
-    changeSubElementText
+    changeSubElementText, createElement, elementToXML, readXMLString
 
 class XMLUtil(twistedcaldav.test.util.TestCase):
     """
@@ -139,3 +139,14 @@
         changeSubElementText(root, "new", "new text")
         self._checkXML(root, XMLUtil.data6)
 
+
+    def test_emoji(self):
+        """
+        Verify we can serialize and parse unicode values above 0xFFFF
+        """
+        name = u"Emoji \U0001F604"
+        elem = createElement("test", text=name)
+        xmlString1 = elementToXML(elem)
+        parsed = readXMLString(xmlString1)[1]
+        xmlString2 = elementToXML(parsed)
+        self.assertEquals(xmlString1, xmlString2)

Modified: CalendarServer/trunk/twistedcaldav/xmlutil.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/xmlutil.py	2012-11-09 03:47:32 UTC (rev 10013)
+++ CalendarServer/trunk/twistedcaldav/xmlutil.py	2012-11-09 19:21:09 UTC (rev 10014)
@@ -56,7 +56,7 @@
     return etree, etree.getroot()
 
 def elementToXML(element):
-    return XML.tostring(element)
+    return XML.tostring(element, "utf-8")
 
 def writeXML(xmlfile, root):
     
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20121109/eabdda7d/attachment.html>


More information about the calendarserver-changes mailing list