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())
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())