Beispiel #1
0
class CTSMValidateTestCase(ptc.PloneTestCase):
    """
    Testing the validation process.
    """

    def afterSetUp(self):
        self.sm = ContentTypeScopeManager()
        self.file_mapping = {'File': ['document_view']}
        self.folder_mapping = {'Folder': ['folder_contents', '+/addFile']}
        file_id = self.sm.addMapping(self.file_mapping)
        folder_id = self.sm.addMapping(self.folder_mapping)
        self.sm.setMappingNameToId('file', file_id)
        self.sm.setMappingNameToId('folder', folder_id)
        self.folder_add = self.folder.restrictedTraverse('+')

        self.all_ids = set([file_id, folder_id])

    def test_0100_request_to_access(self):
        rkey = 'request_key'
        akey = 'access_key'
        self.assertTrue(self.sm.requestScope(rkey, 
            'http://nohost/plone/scope/file,http://nohost/plone/scope/folder'))

        self.sm.setAccessScope(akey, self.sm.getScope(rkey))
        self.assertEqual(self.sm.getAccessScope(akey), self.all_ids)
        # Should there be something to automatically revoke it?
        # Probably?

        request = base.TestRequest()

        self.assertFalse(self.sm.validate(request, '', akey, self.folder,
            self.portal, 'document_view', object()))
        self.assertTrue(self.sm.validate(request, '', akey, self.folder,
            self.portal, 'folder_contents', object()))

        self.assertFalse(self.sm.validate(request, '', akey, self.folder_add,
            self.portal, 'addFolder', object()))
        self.assertTrue(self.sm.validate(request, '', akey, self.folder_add,
            self.portal, 'addFile', object()))