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

source_changes at macosforge.org source_changes at macosforge.org
Thu Oct 27 14:18:48 PDT 2011


Revision: 8232
          http://trac.macosforge.org/projects/calendarserver/changeset/8232
Author:   cdaboo at apple.com
Date:     2011-10-27 14:18:48 -0700 (Thu, 27 Oct 2011)
Log Message:
-----------
Default address book URLs end in trailing /.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/resource.py
    CalendarServer/trunk/twistedcaldav/test/test_resource.py

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2011-10-27 21:18:09 UTC (rev 8231)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2011-10-27 21:18:48 UTC (rev 8232)
@@ -2667,8 +2667,10 @@
                     "Invalid URI",
                 ))
             else:
-                # Canonicalize the URL to __uids__ form
+                # Canonicalize the URL to __uids__ form and always ensure a trailing /
                 adbkURI = (yield adbk.canonicalURL(request))
+                if not adbkURI.endswith("/"):
+                    adbkURI += "/"
                 property = carddavxml.DefaultAddressBookURL(davxml.HRef(adbkURI))
 
         yield super(AddressBookHomeResource, self).writeProperty(property, request)
@@ -2731,6 +2733,10 @@
 
             defaultAddressBookURL = joinURL(self.url(), anAddressBook.name())
 
+        # Always ensure a trailing /
+        if not defaultAddressBookURL.endswith("/"):
+            defaultAddressBookURL += "/"
+
         self.writeDeadProperty(
             carddavxml.DefaultAddressBookURL(
                 davxml.HRef(defaultAddressBookURL)

Modified: CalendarServer/trunk/twistedcaldav/test/test_resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_resource.py	2011-10-27 21:18:09 UTC (rev 8231)
+++ CalendarServer/trunk/twistedcaldav/test/test_resource.py	2011-10-27 21:18:48 UTC (rev 8232)
@@ -247,7 +247,7 @@
         except HTTPError:
             self.fail("carddavxml.DefaultAddressBookURL is not present")
         else:
-            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/addressbook")
+            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/addressbook/")
 
         request._newStoreTransaction.abort()
 
@@ -273,7 +273,7 @@
         newadbk = yield request.locateResource("/addressbooks/users/wsanchez/newadbk")
         yield newadbk.createAddressBookCollection()
         home.writeDeadProperty(carddavxml.DefaultAddressBookURL(
-            davxml.HRef("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk")
+            davxml.HRef("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk/")
         ))
         request._newStoreTransaction.commit()
         
@@ -303,7 +303,7 @@
         except HTTPError:
             self.fail("carddavxml.DefaultAddressBookURL is not present")
         else:
-            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk")
+            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk/")
 
         request._newStoreTransaction.abort()
 
@@ -318,17 +318,17 @@
         home = yield request.locateResource("/addressbooks/users/wsanchez")
 
         # Create a new default adbk
-        newadbk = yield request.locateResource("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk")
+        newadbk = yield request.locateResource("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk/")
         yield newadbk.createAddressBookCollection()
         home.writeDeadProperty(carddavxml.DefaultAddressBookURL(
-            davxml.HRef("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk")
+            davxml.HRef("/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk/")
         ))
         try:
             default = yield home.readProperty(carddavxml.DefaultAddressBookURL, request)
         except HTTPError:
             self.fail("carddavxml.DefaultAddressBookURL is not present")
         else:
-            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk")
+            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/newadbk/")
         
         # Force the new calendar to think it is a virtual share
         newadbk._isVirtualShare = True
@@ -338,6 +338,6 @@
         except HTTPError:
             self.fail("carddavxml.DefaultAddressBookURL is not present")
         else:
-            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/addressbook")
+            self.assertEqual(str(default.children[0]), "/addressbooks/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/addressbook/")
 
         request._newStoreTransaction.abort()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111027/3de96c35/attachment-0001.html>


More information about the calendarserver-changes mailing list