Example #1
0
def setup(app, path):
    _policy = PermissiveSecurityPolicy()
    _oldpolicy = setSecurityPolicy(_policy)
    newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))
    site = app.unrestrictedTraverse(path)
    populateFolder(site, 'Folder', 'Document')
    return site
def setup(app, path):
    _policy = PermissiveSecurityPolicy()
    _oldpolicy = setSecurityPolicy(_policy)
    newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))
    site = app.unrestrictedTraverse(path)
    populateFolder(site, 'Folder', 'Document')
    return site
Example #3
0
    def test_recursive(self):
        # Test for recursive calling of manage_after{Add|Clone}
        # and manage_beforeDelete. (bug #905677)
        populateFolder(self.folder, 'SimpleFolder', 'DDocument')
        d = self.folder.folder2.folder22.folder221.doc2211
        uid = UID(d)
        # Called afterAdd once
        self.assertEquals(ADD_COUNTER.get(uid), 2)
        # Never called beforeDelete or afterClone
        self.assertEquals(DELETE_COUNTER.get(uid), 0)
        self.assertEquals(CLONE_COUNTER.get(uid), 0)

        # make sure we have _p_jar
        transaction.savepoint(optimistic=True)

        d_count = self.getCounts(d)

        # Rename the parent folder
        self.folder.folder2.folder22.manage_renameObject('folder221',
                                                         'new_folder221')
        expected = (d_count[0] + 1, d_count[1] + 1, d_count[2] + 0)
        got = self.getCounts(d)
        self.assertEquals(got, expected)

        # Update base count
        d_count = got

        # Rename the root folder
        self.folder.manage_renameObject('folder2', 'new_folder2')

        expected = (d_count[0] + 1, d_count[1] + 1, d_count[2] + 0)
        got = self.getCounts(d)
        self.assertEquals(got, expected)

        # Update base count
        d_count = got

        # Copy the root folder
        cb = self.folder.manage_copyObjects(['new_folder2'])
        self.folder.manage_pasteObjects(cb)

        # Should *not* call manage_afterAdd or manage_afterClone,
        # or to manage_beforeDelete for the source object.
        expected = (d_count[0], d_count[1], d_count[2])
        got = self.getCounts(d)
        self.assertEquals(got, expected)

        new_d = self.folder.copy_of_new_folder2.folder22.new_folder221.doc2211
        got = self.getCounts(new_d)
        # Should have called manage_afterAdd and manage_afterClone for
        # the *new* object.
        self.assertEquals(got, (1, 0, 1))