def testGetCurrentFolder(self):
        # If context is a folder, then the folder is returned
        view = Plone(self.folder, self.app.REQUEST)
        self.assertEqual(view.getCurrentFolder(), self.folder)

        # If context is not a folder, then the parent is returned
        # A bit crude ... we need to make sure our memos don't stick in the
        # tests
        self._invalidateRequestMemoizations()
        view = Plone(self.folder.test, self.app.REQUEST)
        self.assertEqual(view.getCurrentFolder(), self.folder)

        # The real container is returned regardless of context
        self._invalidateRequestMemoizations()
        view = Plone(self.folder.test.__of__(self.portal), self.app.REQUEST)
        self.assertEqual(view.getCurrentFolder(), self.folder)

        # A non-structural folder does not count as a folder`
        f = dummy.NonStructuralFolder('ns_folder')
        self.folder._setObject('ns_folder', f)
        self._invalidateRequestMemoizations()
        view = Plone(self.folder.ns_folder, self.app.REQUEST)
        self.assertEqual(view.getCurrentFolder(), self.folder)

        # And even a structural folder that is used as a default page
        # returns its parent
        self.folder.setDefaultPage('ns_folder')
        self._invalidateRequestMemoizations()
        view = Plone(self.folder.ns_folder, self.app.REQUEST)
        self.assertEqual(view.getCurrentFolder(), self.folder)
 def testGetParentObject(self):
     view = Plone(self.folder.test, self.app.REQUEST)
     self.assertEqual(view.getParentObject(), self.folder)
     # Make sure this looks only at containment
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.test.__of__(self.portal), self.app.REQUEST)
     self.assertEqual(view.getParentObject(), self.folder)
 def testIsDefaultPageInFolder(self):
     view = Plone(self.folder.test, self.app.REQUEST)
     self.failIf(view.isDefaultPageInFolder())
     self.failUnless(self.folder.canSelectDefaultPage())
     self.folder.saveDefaultPage('test')
     # re-create the view, because the old value is cached
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.test, self.app.REQUEST)
     self.failUnless(view.isDefaultPageInFolder())
 def testIsDefaultPageInFolder(self):
     view = Plone(self.folder.test, self.app.REQUEST)
     self.assertFalse(view.isDefaultPageInFolder())
     self.assertTrue(self.folder.canSetDefaultPage())
     self.folder.setDefaultPage('test')
     # re-create the view, because the old value is cached
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.test, self.app.REQUEST)
     self.assertTrue(view.isDefaultPageInFolder())
Exemple #5
0
 def banner(self, obj):  # noqa: C901
     """ return banner of this object """
     banner = {}
     if getattr(obj, 'banner_image', False):
         banner['banner_image'] = '{0}/@@images/banner_image'.format(
             obj.absolute_url())
         banner['banner_alt'] = getattr(obj, 'banner_alt', None)
     if obj.banner_title:
         banner['banner_title'] = obj.banner_title
     if obj.banner_description:
         crop = Plone(self.context, self.request).cropText
         banner['banner_description'] = crop(obj.banner_description, 400)
     if obj.banner_text:
         banner['banner_text'] = obj.banner_text.output
     if obj.banner_link:
         to_obj = obj.banner_link.to_object
         if to_obj:
             banner['banner_link'] = to_obj.absolute_url()
             banner['banner_linktext'] = to_obj.Title()
     if obj.banner_linktext:
         banner['banner_linktext'] = obj.banner_linktext
     if obj.banner_fontcolor:
         banner['banner_fontcolor'] = obj.banner_fontcolor
     if obj.banner_backgroundcolor:
         banner['banner_backgroundcolor'] = obj.banner_backgroundcolor
     if obj.banner_url:
         banner['banner_url'] = obj.banner_url
     banner['banner_obj'] = obj
     return banner
 def testIsPortalOrPortalDefaultPage(self):
     # an actual folder whould return true
     view = Plone(self.portal, self.app.REQUEST)
     self.assertTrue(view.isPortalOrPortalDefaultPage())
     # But not a document
     self.setRoles(['Manager'])
     self.portal.invokeFactory('Document', 'portal_test',
                               title='Test default page')
     self._invalidateRequestMemoizations()
     view = Plone(self.portal.portal_test, self.app.REQUEST)
     self.assertFalse(view.isPortalOrPortalDefaultPage())
     # Unless we make it the default view
     self.portal.setDefaultPage('portal_test')
     self._invalidateRequestMemoizations()
     view = Plone(self.portal.portal_test, self.app.REQUEST)
     self.assertTrue(view.isPortalOrPortalDefaultPage())
 def testIsFolderOrFolderDefaultPage(self):
     # an actual folder whould return true
     view = Plone(self.folder, self.app.REQUEST)
     self.assertTrue(view.isFolderOrFolderDefaultPage())
     # But not a document
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.test, self.app.REQUEST)
     self.assertFalse(view.isFolderOrFolderDefaultPage())
     # Unless we make it the default view
     self.folder.setDefaultPage('test')
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.test, self.app.REQUEST)
     self.assertTrue(view.isFolderOrFolderDefaultPage())
     # And if we have a non-structural folder it should not be true
     f = dummy.NonStructuralFolder('ns_folder')
     self.folder._setObject('ns_folder', f)
     self._invalidateRequestMemoizations()
     view = Plone(self.folder.ns_folder, self.app.REQUEST)
     self.assertFalse(view.isFolderOrFolderDefaultPage())
 def testCropText(self):
     view = Plone(self.portal, self.app.REQUEST)
     self.assertEqual(view.cropText('Hello world', 7), 'Hello ...')
     self.assertEqual(view.cropText('Hello world', 99), 'Hello world')
     self.assertEqual(view.cropText('Hello world', 10), 'Hello worl...')
     self.assertEqual(view.cropText(u'Hello world', 10), u'Hello worl...')
     self.assertEqual(view.cropText(u'Koko\u0159\xedn', 5), u'Koko\u0159...')
     # Test utf encoded string Kokorin with 'r' and 'i' accented
     # Must return 6 characters, because 5th character is two byte
     text = u'Koko\u0159\xedn'.encode('utf8')
     self.assertEqual(view.cropText(text, 5), 'Koko\xc5\x99...')
 def afterSetUp(self):
     self.folder.invokeFactory('Document', 'test',
                               title='Test default page')
     self.view = Plone(self.portal, self.app.REQUEST)
 def testIsStructuralFolderWithFolder(self):
     f = dummy.Folder('struct_folder')
     self.assertTrue(Plone(f, self.app.REQUEST).isStructuralFolder())
 def testSiteEncoding(self):
     view = Plone(self.portal, self.app.REQUEST)
     self.assertEqual('utf-8', view.site_encoding())
 def afterSetUp(self):
     self.view = Plone(self.portal, self.app.REQUEST)
     self.member = self.portal.portal_membership.getAuthenticatedMember()
     self.props = self.portal.portal_properties.site_properties
 def testNavigationRootUrl(self):
     view = Plone(self.folder, self.app.REQUEST)
     self.assertEqual(view.navigationRootUrl(), self.portal.absolute_url())
 def testNavigationRootPath(self):
     view = Plone(self.folder, self.app.REQUEST)
     self.assertEqual(view.navigationRootPath(),
                      self.portal.portal_url.getPortalPath())
 def testIsStructuralFolderWithNonFolder(self):
     i = dummy.Item()
     self.assertFalse(Plone(i, self.app.REQUEST).isStructuralFolder())
 def testIsStructuralFolderWithNonStructuralFolder(self):
     f = dummy.NonStructuralFolder('ns_folder')
     self.assertFalse(Plone(f, self.app.REQUEST).isStructuralFolder())
 def testIsStructuralFolderWithFolder(self):
     f = dummy.Folder('struct_folder')
     self.failUnless(Plone(f, self.app.REQUEST).isStructuralFolder())