def test_delete_object_when_locked(self):
     from plone.app.content.browser.contents.delete import DeleteActionView
     lockable = IRefreshableLockable(self.portal.page)
     lockable.lock()
     view = DeleteActionView(self.portal, self.request)
     view()
     self.assertEquals(len(view.errors), 1)
    def test_delete_wrong_object_by_acquisition(self):
        page_id = self.portal.page.id
        f1 = self.portal.invokeFactory('Folder', id="f1", title="folder one")
        # created a nested page with the same id as the one at the site root
        p1 = self.portal[f1].invokeFactory('Document',
                                           id=page_id,
                                           title="page")
        self.assertEquals(p1, page_id)
        request2 = self.make_request()

        # both pages exist before we delete on
        for location in [self.portal, self.portal[f1]]:
            self.assertTrue(p1 in location)

        # instantiate two different views and delete the same object with each
        from plone.app.content.browser.contents.delete import DeleteActionView
        object_uuid = IUUID(self.portal[f1][p1])
        for req in [self.request, request2]:
            req.form = {
                'selection': '["{}"]'.format(object_uuid),
                '_authenticator': createToken(),
                'folder': '/{}/'.format(f1)
            }
            view = DeleteActionView(self.portal, req)
            view()

        # the root page exists, the nested one is gone
        self.assertTrue(p1 in self.portal)
        self.assertFalse(p1 in self.portal[f1])
 def test_delete_object(self):
     from plone.app.content.browser.contents.delete import DeleteActionView
     page_id = self.portal.page.id
     self.assertTrue(page_id in self.portal)
     view = DeleteActionView(self.portal, self.request)
     view()
     self.assertTrue(page_id not in self.portal)