Exemplo n.º 1
0
 def test_anonymous(self):
     self.portal = self.layer['portal']
     setRoles(self.portal, TEST_USER_ID,['Manager'])
     #self.portal.invokeFactory('Folder', 'f0')
     self.assertEqual(self.view.anonymous(), False)
     logout()
     del self.app.REQUEST.__annotations__
     self.assertEqual(self.view.anonymous(), True)
Exemplo n.º 2
0
 def test_is_locked(self):
     self.assertEqual(self.dview.is_locked(), False)
     ILockable(self.folder.d1).lock()
     logout()
     # The object is not "locked" if it was locked by the
     # current user
     del self.app.REQUEST.__annotations__
     self.assertEqual(self.dview.is_locked(), True)
Exemplo n.º 3
0
 def test_is_locked(self):
     self.assertEqual(self.dview.is_locked(), False)
     ILockable(self.folder.d1).lock()
     logout()
     # The object is not "locked" if it was locked by the
     # current user
     del self.app.REQUEST.__annotations__
     self.assertEqual(self.dview.is_locked(), True)
Exemplo n.º 4
0
 def ploneSite(self, plone_site_id, db=None, connection=None, environ=None):
     from zope.site.hooks import setSite, getSite, setHooks
     setHooks()
     site = getSite()
     with z2.zopeApp(db, connection, environ) as app:
         portal = app[plone_site_id]
         setSite(portal)
         login(portal, TEST_USER_NAME)
         try:
             yield portal
         finally:
             logout()
             if site is not portal:
                 setSite(site)
Exemplo n.º 5
0
    def testDisableColumns(self):
        setRoles(self.portal, TEST_USER_ID,['Manager'])
        self.app = self.layer['app']
        # Now add some portlets to be sure we have columns.  For
        # simplicity we want a portlet that has no add form.  Note
        # that apparently the Calender had no add form until Plone
        # 4.3, but since 4.4 it does, so it is not fit to use here.
        portlet = getUtility(IPortletType, name='portlets.Login')
        mapping_left = self.portal.restrictedTraverse(
            '++contextportlets++plone.leftcolumn')
        mapping_right = self.portal.restrictedTraverse(
            '++contextportlets++plone.rightcolumn')
        for m in mapping_left.keys():
            del mapping_left[m]
        addview_left = mapping_left.restrictedTraverse('+/' + portlet.addview)

        for m in mapping_right.keys():
            del mapping_right[m]
        addview_right = mapping_right.restrictedTraverse(
            '+/' + portlet.addview)

        # This is a NullAddForm - calling it does the work
        addview_left()
        addview_right()

        # Logout, otherwise the login portlet will never show.
        logout()

        # Check that we do not explicitly disable the columns.  This
        # may happen if we change the request in this method or if the
        # addviews return an add-form after all.
        self.assertTrue('disable_plone.leftcolumn' not in self.app.REQUEST)
        self.assertTrue('disable_plone.rightcolumn' not in self.app.REQUEST)

        self.assertEqual(True, self.view.have_portlets('plone.leftcolumn'))
        self.app.REQUEST.set('disable_plone.leftcolumn', 1)
        self.assertEqual(False, self.view.have_portlets('plone.leftcolumn'))

        self.assertEqual(True, self.view.have_portlets('plone.rightcolumn'))
        self.app.REQUEST.set('disable_plone.rightcolumn', 1)
        self.assertEqual(False, self.view.have_portlets('plone.rightcolumn'))
Exemplo n.º 6
0
    def testDisableColumns(self):
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        self.app = self.layer['app']
        # Now add some portlets to be sure we have columns.  For
        # simplicity we want a portlet that has no add form.  Note
        # that apparently the Calender had no add form until Plone
        # 4.3, but since 4.4 it does, so it is not fit to use here.
        portlet = getUtility(IPortletType, name='portlets.Login')
        mapping_left = self.portal.restrictedTraverse(
            '++contextportlets++plone.leftcolumn')
        mapping_right = self.portal.restrictedTraverse(
            '++contextportlets++plone.rightcolumn')
        for m in mapping_left.keys():
            del mapping_left[m]
        addview_left = mapping_left.restrictedTraverse('+/' + portlet.addview)

        for m in mapping_right.keys():
            del mapping_right[m]
        addview_right = mapping_right.restrictedTraverse('+/' +
                                                         portlet.addview)

        # This is a NullAddForm - calling it does the work
        addview_left()
        addview_right()

        # Logout, otherwise the login portlet will never show.
        logout()

        # Check that we do not explicitly disable the columns.  This
        # may happen if we change the request in this method or if the
        # addviews return an add-form after all.
        self.assertTrue('disable_plone.leftcolumn' not in self.app.REQUEST)
        self.assertTrue('disable_plone.rightcolumn' not in self.app.REQUEST)

        self.assertEqual(True, self.view.have_portlets('plone.leftcolumn'))
        self.app.REQUEST.set('disable_plone.leftcolumn', 1)
        self.assertEqual(False, self.view.have_portlets('plone.leftcolumn'))

        self.assertEqual(True, self.view.have_portlets('plone.rightcolumn'))
        self.app.REQUEST.set('disable_plone.rightcolumn', 1)
        self.assertEqual(False, self.view.have_portlets('plone.rightcolumn'))
Exemplo n.º 7
0
    def tearDownEnvironment(self, portal):
        """Log out, invalidate standard RAM caches, and unset the local
        component site to clean up after tests.
        """

        # Clear the security manager
        from plone.app.testing import helpers
        helpers.logout()

        # Clear any cached data using plone.memoize's RAM caches
        from plone.memoize.ram import global_cache
        global_cache.invalidateAll()

        from zope.component import queryUtility
        from plone.memoize.ram import IRAMCache
        cache = queryUtility(IRAMCache)
        if cache and getattr(cache, '_cacheId', None):
            cache.invalidateAll()

        # Unset the local component site
        setSite(None)
Exemplo n.º 8
0
    def tearDownEnvironment(self, portal):
        """Log out, invalidate standard RAM caches, and unset the local
        component site to clean up after tests.
        """

        # Clear the security manager
        from plone.app.testing import helpers
        helpers.logout()

        # Clear any cached data using plone.memoize's RAM caches
        from plone.memoize.ram import global_cache
        global_cache.invalidateAll()

        from zope.component import queryUtility
        from plone.memoize.ram import IRAMCache
        cache = queryUtility(IRAMCache)
        if cache is not None:
            cache.invalidateAll()

        # Unset the local component site
        from zope.site.hooks import setSite
        setSite(None)
Exemplo n.º 9
0
    def test_breadcrumbs_for_unpublished_publication(self):
        login(self.layer['app'], SITE_OWNER_NAME)
        wf_tool = getToolByName(self.portal, 'portal_workflow')
        wf_tool.doActionFor(self.pub, 'hide')
        logout()

        breadcrumbs_view = getMultiAdapter(
            (self.test_review, self.portal.REQUEST),
            name='breadcrumbs_view')
        crumbs = breadcrumbs_view.breadcrumbs()
        #FIXME: /plone/rezensionen/zeitschriften provides IBrowserDefault
        # for some reason, so it is skipped in the breadcrumbs. Not
        # so in a regular site.
        urls = [cr['absolute_url'].replace(
            '/rezensionen/', '/rezensionen/zeitschriften/') for cr in crumbs]
        self.assertEqual(len(crumbs), 5)
        self.assertNotIn(self.pub.absolute_url(), urls)
        self.assertNotIn(self.test_volume.absolute_url(), urls)
        self.assertNotIn(self.test_issue.absolute_url(), urls)

        login(self.layer['app'], SITE_OWNER_NAME)
        wf_tool.doActionFor(self.pub, 'show')
        logout()
Exemplo n.º 10
0
 def logout(self):
     logout()
Exemplo n.º 11
0
 def test_get_my_profiles_anonymous(self):
     helpers.logout()
     self.assertEquals(self.hw_view.get_my_profiles(), [])
Exemplo n.º 12
0
    def test__one_folder(self):
        """Add folder under portal."""
        from Products.ATContentTypes.interfaces.folder import IATFolder
        base = IAdapter(self.portal)

        folder1 = self.portal[self.portal.invokeFactory('Folder', 'folder1')]
        folder1.reindexObject()

        query = {}

        self.assertEqual(len(base.get_brains(**query)), 1)
        self.assertEqual(len(base.get_objects(**query)), 1)
        self.assertEqual(len(base.get_content_listing(**query)), 1)
        self.assertEqual(base.get_brain(**query).id, 'folder1')
        self.assertEqual(base.get_object(**query).id, 'folder1')

        self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1)
        self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1')
        self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1')

        query = {'path': '/'.join(folder1.getPhysicalPath())}

        self.assertEqual(len(base.get_brains(**query)), 1)
        self.assertEqual(len(base.get_objects(**query)), 1)
        self.assertEqual(len(base.get_content_listing(**query)), 1)
        self.assertEqual(base.get_brain(**query).id, 'folder1')
        self.assertEqual(base.get_object(**query).id, 'folder1')

        self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1)
        self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1')
        self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1')

        query['depth'] = 0
        self.assertEqual(len(base.get_brains(**query)), 1)
        self.assertEqual(len(base.get_objects(**query)), 1)
        self.assertEqual(len(base.get_content_listing(**query)), 1)
        self.assertEqual(base.get_brain(**query).id, 'folder1')
        self.assertEqual(base.get_object(**query).id, 'folder1')

        self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 1)
        self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 1)
        self.assertEqual(base.get_brain(interfaces=IATFolder, **query).id, 'folder1')
        self.assertEqual(base.get_object(interfaces=IATFolder, **query).id, 'folder1')

        query['depth'] = 1
        self.assertEqual(len(base.get_brains(**query)), 0)
        self.assertEqual(len(base.get_objects(**query)), 0)
        self.assertEqual(len(base.get_content_listing(**query)), 0)
        self.assertIsNone(base.get_brain(**query))
        self.assertIsNone(base.get_object(**query))

        self.assertEqual(len(base.get_brains(interfaces=IATFolder, **query)), 0)
        self.assertEqual(len(base.get_objects(interfaces=IATFolder, **query)), 0)
        self.assertEqual(len(base.get_content_listing(interfaces=IATFolder, **query)), 0)
        self.assertIsNone(base.get_brain(interfaces=IATFolder, **query))
        self.assertIsNone(base.get_object(interfaces=IATFolder, **query))

        query['depth'] = 0
        self.assertEqual(len(base.get_brains(**query)), 1)
        self.assertEqual(len(base.get_objects(**query)), 1)
        self.assertEqual(len(base.get_content_listing(**query)), 1)
        self.assertEqual(base.get_brain(**query).id, 'folder1')
        self.assertEqual(base.get_object(**query).id, 'folder1')

        setRoles(self.portal, TEST_USER_ID, ['Member'])

        from plone.app.testing.helpers import logout
        logout()

        base = IAdapter(self.portal)
        self.assertEqual(len(base.get_brains(**query)), 0)

        query['unrestricted'] = True
        self.assertEqual(len(base.get_brains(**query)), 1)
Exemplo n.º 13
0
 def test_is_editable(self):
     self.assertEqual(self.dview.is_editable(), True)
     logout()
     del self.app.REQUEST.__annotations__
     self.assertEqual(self.dview.is_editable(), False)
Exemplo n.º 14
0
 def logout(self):
     helpers.logout()
Exemplo n.º 15
0
 def logout(self):
     logout()
Exemplo n.º 16
0
 def test_get_my_profiles_anonymous(self):
     helpers.logout()
     self.assertEquals(self.hw_view.get_my_profiles(),
                       [])
Exemplo n.º 17
0
 def test_is_editable(self):
     self.assertEqual(self.dview.is_editable(), True)
     logout()
     del self.app.REQUEST.__annotations__
     self.assertEqual(self.dview.is_editable(), False)