def test_owner(self, browser): event = create(Builder('event')) self.propfind(browser, event, 'DAV:', 'owner') self.assertEquals('HTTP/1.1 200 OK', propfind.status_for_property('owner')) url = '%s/caldav-principal/test_user_1_' % self.layer['portal'].portal_url() self.assertEquals( ''.join(('<owner>', '<href>%s</href>' % url, '</owner>')), propfind.property_xml('owner'))
def test_current_user_principal(self, browser): # http://tools.ietf.org/html/rfc5397#section-3 req_body = propfind.make_propfind_request_body({ 'DAV:': ['current-user-principal']}) browser.login().webdav('PROPFIND', data=req_body) self.assertEquals('HTTP/1.1 200 OK', propfind.status_for_property('current-user-principal')) url = '%s/caldav-principal/test_user_1_' % self.layer['portal'].portal_url() self.assertEquals( ''.join(('<current-user-principal xmlns:n="DAV:">', '<href xmlns:n="DAV:">%s</href>' % url, '</current-user-principal>')), propfind.property_xml('current-user-principal'))
def test_propfind_calendar_home_set_unsupported(self, browser): # http://tools.ietf.org/html/rfc4791#section-6.2.1 # "calendar-home-set" is recommended but optional. # We do not have a per-user container for events (yet). req_body = propfind.make_propfind_request_body({ 'urn:ietf:params:xml:ns:caldav': ['calendar-home-set']}) browser.login().webdav('PROPFIND', data=req_body) self.assertEquals('HTTP/1.1 200 OK', propfind.status_for_property('calendar-home-set')) self.assertEquals( ''.join(('<calendar-home-set xmlns:n="urn:ietf:params:xml:ns:caldav">', '<href xmlns:n="DAV:">/plone/caldav-calendars/test_user_1_</href>', '</calendar-home-set>')), propfind.property_xml('calendar-home-set'))
def test_principal_URL(self, browser): # http://tools.ietf.org/html/rfc3744#section-4.2 # This protected property contains the URL that MUST be used to identify # this principal in an ACL request. req_body = propfind.make_propfind_request_body({ 'DAV:': ['principal-URL']}) browser.login().webdav('PROPFIND', data=req_body) self.assertEquals('HTTP/1.1 200 OK', propfind.status_for_property('principal-URL')) url = '%s/caldav-principal/test_user_1_' % self.layer['portal'].portal_url() self.assertEquals( ''.join(('<principal-url xmlns:n="DAV:">', '<href xmlns:n="DAV:">%s</href>' % url, '</principal-url>')), propfind.property_xml('principal-URL'))
def test_calendar_user_address_set(self, browser): # http://tools.ietf.org/html/rfc6638#section-2.4.1 mtool = getToolByName(self.layer['portal'], 'portal_membership') member = mtool.getMemberById(TEST_USER_ID) member.setMemberProperties({'email': '*****@*****.**'}) transaction.commit() req_body = propfind.make_propfind_request_body({ 'urn:ietf:params:xml:ns:caldav': ['calendar-user-address-set']}) browser.login().webdav('PROPFIND', view='caldav-principal/test_user_1_', data=req_body) self.assertEquals('HTTP/1.1 200 OK', propfind.status_for_property('calendar-user-address-set')) self.assertEquals( ''.join(('<calendar-user-address-set>', '<href>mailto:[email protected]</href>', '<href>userid:test_user_1_</href>', '<href>/plone/caldav-principal/test_user_1_</href>', '<href>%s/caldav-principal/test_user_1_</href>' % ( self.layer['portal'].portal_url()), '</calendar-user-address-set>')), propfind.property_xml('calendar-user-address-set'))