def testSpecialPasteNotAvailableWhenNotInstalled(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) start_traversing(portal, self.layer['request']) self.assertRaises(AttributeError, portal.restrictedTraverse, ('@@special-paste',))
def testRenamedFolderCopyPaste(self): # Test copying a folder with items to the same location, so # that the copied folder gets a different name. portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) make_folder_structure(portal) wf_tool = getToolByName(portal, 'portal_workflow') main_objects = [ portal['private-folder'], ] paths = ['/'.join(obj.getPhysicalPath()) for obj in main_objects] request = self.layer['request'] request.set('paths', paths) portal.folder_copy() target = portal # Sanity check for the cookie with info about the copied objects: self.assertTrue(target.cb_dataValid()) start_traversing(portal, self.layer['request']) target.restrictedTraverse('@@special-paste')() def get_state(obj): return wf_tool.getInfoFor(obj, 'review_state') self.assertEqual(get_state( target['copy_of_private-folder']), 'private') self.assertEqual(get_state( target['copy_of_private-folder']['private-doc']), 'private') self.assertEqual(get_state( target['copy_of_private-folder']['published-doc']), 'published') self.assertEqual(get_state( target['copy_of_private-folder']['published-sub-folder']), 'published') self.assertEqual(get_state( target['copy_of_private-folder']['published-sub-folder']['pending-doc']), 'pending')
def testFolderCopyPaste(self): # Test copying multiple items, nested, with various review # states. portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) make_folder_structure(portal) wf_tool = getToolByName(portal, 'portal_workflow') main_objects = [ portal['private-doc'], portal['published-doc'], portal['private-folder'], portal['published-folder'], ] paths = ['/'.join(obj.getPhysicalPath()) for obj in main_objects] request = self.layer['request'] request.set('paths', paths) portal.folder_copy() target = portal['target-folder'] # Sanity check for the cookie with info about the copied objects: self.assertTrue(target.cb_dataValid()) start_traversing(portal, self.layer['request']) target.restrictedTraverse('@@special-paste')() self.assertEqual(len(target.contentIds()), len(main_objects)) def get_state(obj): return wf_tool.getInfoFor(obj, 'review_state') self.assertEqual(get_state( target['private-doc']), 'private') self.assertEqual(get_state( target['published-doc']), 'published') self.assertEqual(get_state( target['private-folder']), 'private') self.assertEqual(get_state( target['private-folder']['private-doc']), 'private') self.assertEqual(get_state( target['private-folder']['published-doc']), 'published') self.assertEqual(get_state( target['private-folder']['published-sub-folder']), 'published') self.assertEqual(get_state( target['private-folder']['published-sub-folder']['pending-doc']), 'pending') self.assertEqual(get_state( target['published-folder']), 'published') self.assertEqual(get_state( target['published-folder']['private-doc']), 'private') self.assertEqual(get_state( target['published-folder']['published-doc']), 'published') self.assertEqual(get_state( target['published-folder']['private-sub-folder']), 'private') self.assertEqual(get_state( target['published-folder']['private-sub-folder']['pending-doc']), 'pending')
def testUninstallsCleanly(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) qi = getToolByName(portal, 'portal_quickinstaller') qi.uninstallProducts(['zest.specialpaste']) start_traversing(portal, self.layer['request']) self.assertRaises(AttributeError, portal.restrictedTraverse, ('@@special-paste',)) action_tool = getToolByName(portal, 'portal_actions') folder_buttons = [action.getId() for action in action_tool.folder_buttons.listActions()] self.assertFalse('specialpaste' in folder_buttons) object_buttons = [action.getId() for action in action_tool.object_buttons.listActions()] self.assertFalse('specialpaste' in object_buttons)
def testCopyPastePrivate(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) wf_tool = getToolByName(portal, 'portal_workflow') doc = self._makeOne() self.assertEqual(wf_tool.getInfoFor(doc, 'review_state'), 'private') # Call the skin scripts that would be used when copy-pasting # in a browser. start_traversing(portal, self.layer['request']) portal['doc'].restrictedTraverse('object_copy')() portal.restrictedTraverse('@@special-paste')() new_id = 'copy_of_doc' new_doc = portal[new_id] self.assertEqual(wf_tool.getInfoFor(new_doc, 'review_state'), 'private')
def testSpecialPasteAvailableWhenInstalled(self): portal = self.layer['portal'] setRoles(portal, TEST_USER_ID, ('Manager',)) start_traversing(portal, self.layer['request']) portal.restrictedTraverse('@@special-paste')