コード例 #1
0
 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',))
コード例 #2
0
    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')
コード例 #3
0
    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')
コード例 #4
0
 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)
コード例 #5
0
 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')
コード例 #6
0
 def testSpecialPasteAvailableWhenInstalled(self):
     portal = self.layer['portal']
     setRoles(portal, TEST_USER_ID, ('Manager',))
     start_traversing(portal, self.layer['request'])
     portal.restrictedTraverse('@@special-paste')