Ejemplo n.º 1
0
    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'))
Ejemplo n.º 2
0
    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'))
Ejemplo n.º 3
0
    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'))
Ejemplo n.º 4
0
    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'))