From: siebo <svn...@pl...> - 2005-11-28 00:15:11
|
Author: siebo Date: Mon Nov 28 00:14:26 2005 New Revision: 8492 Added: CMFPlone/branches/goldegg-phase-1/tests/testRecentView.py Modified: CMFPlone/branches/goldegg-phase-1/browser/portlets/favorites.py CMFPlone/branches/goldegg-phase-1/tests/testNewsPortletView.py Log: # # Test the RecentPortlet View # import os, sys if __name__ == '__main__': execfile(os.path.join(sys.path[0], 'framework.py')) from Testing import ZopeTestCase from Products.CMFPlone.tests import PloneTestCase from Products.CMFPlone.browser.interfaces import IRecentPortlet from Products.CMFPlone.browser.portlets.recent import RecentPortlet class TestRecentPortletView(PloneTestCase.PloneTestCase): def afterSetUp(self): self.url = self.portal.portal_url #self.recent = self.portal.recent self.workflow = self.portal.portal_workflow def testImplementsIRecentPortlet(self): """RecentPortlet must implement IRecentPortlet""" self.failUnless(IRecentPortlet.implementedBy(RecentPortlet)) def testRecentResults(self): """RecentPortlet.results() must return recently updated content""" self.portal.portal_catalog.manage_catalogClear() self.setRoles(['Manager']) self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') self.workflow.doActionFor(self.folder.testpage, 'publish') view = RecentPortlet(self.portal, self.app.REQUEST) result = view.results() self.failUnlessEqual(len(result), 1) self.failUnlessEqual(result[0].getId, 'testpage') def testNoRecent(self): """RecentPortlet.results() must return no content when no recent items""" # clear out the catalog to guarantee no results self.portal.portal_catalog.manage_catalogClear() view = RecentPortlet(self.portal, self.app.REQUEST) result = view.results() return result self.failUnlessEqual(len(result), 0) def testRecentResultsPrivate(self): """RecentPortlet.results() must return private items""" self.portal.portal_catalog.manage_catalogClear() self.setRoles(['Manager']) self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') self.workflow.doActionFor(self.folder.testpage, 'hide') view = RecentPortlet(self.portal, self.app.REQUEST) result = view.results() self.failUnlessEqual(len(result), 1) self.failUnlessEqual(result[0].getId, 'testpage') def testRecentResultsPublicDraft(self): """RecentPortlet.results() must return public draft items""" self.portal.portal_catalog.manage_catalogClear() self.setRoles(['Manager']) self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') view = RecentPortlet(self.portal, self.app.REQUEST) result = view.results() self.failUnlessEqual(len(result), 1) self.failUnlessEqual(result[0].getId, 'testpage') def test_suite(): from unittest import TestSuite, makeSuite suite = TestSuite() suite.addTest(makeSuite(TestRecentPortletView)) return suite if __name__ == '__main__': framework() Modified: CMFPlone/branches/goldegg-phase-1/browser/portlets/favorites.py ============================================================================== --- CMFPlone/branches/goldegg-phase-1/browser/portlets/favorites.py (original) +++ CMFPlone/branches/goldegg-phase-1/browser/portlets/favorites.py Mon Nov 28 00:14:26 2005 @@ -1,14 +1,27 @@ +from zope.component import getView +from zope.interface import implements +from Products.CMFPlone import utils from Products.CMFPlone.browser.interfaces import IFavoritesPortlet -from zope.interface import implements -from zope.component import getView -from Products.Five import BrowserView - class FavoritesPortlet(BrowserView): implements(IFavoritesPortlet) - def __init__(self, context, request): - self.context = context - self.request = request - + def favorites(self): + context = utils.context(self) + g = getView(context, 'plone', self.request) + folder = getattr(portal_membership.getHomeFolder(), 'Favorites', None) + limit = 10 + over_limit = len(favorites)>limit + if folder is not None + return self.folder.getFolderContents({'portal_type': 'Favorite'})[:limit] + + def all_favorites_link(self): + context = utils.context(self) + g = getView(context, 'plone', self.request) + portal = g.portal() + folder = getattr(portal_membership.getHomeFolder(), 'Favorites', None) + + if folder is not None + folder_url = folder.absolute_url() + return '%s/folder_listing' % folder_url \ No newline at end of file Modified: CMFPlone/branches/goldegg-phase-1/tests/testNewsPortletView.py ============================================================================== --- CMFPlone/branches/goldegg-phase-1/tests/testNewsPortletView.py (original) +++ CMFPlone/branches/goldegg-phase-1/tests/testNewsPortletView.py Mon Nov 28 00:14:26 2005 @@ -16,7 +16,7 @@ def afterSetUp(self): self.url = self.portal.portal_url - self.news = self.portal.news + #self.news = self.portal.news self.workflow = self.portal.portal_workflow def testImplementsINewsPortlet(self): Added: CMFPlone/branches/goldegg-phase-1/tests/testRecentView.py ============================================================================== --- (empty file) +++ CMFPlone/branches/goldegg-phase-1/tests/testRecentView.py Mon Nov 28 00:14:26 2005 @@ -0,0 +1,75 @@ +# +# Test the RecentPortlet View +# + +import os, sys +if __name__ == '__main__': + execfile(os.path.join(sys.path[0], 'framework.py')) + +from Testing import ZopeTestCase +from Products.CMFPlone.tests import PloneTestCase + +from Products.CMFPlone.browser.interfaces import IRecentPortlet +from Products.CMFPlone.browser.portlets.recent import RecentPortlet + +class TestRecentPortletView(PloneTestCase.PloneTestCase): + + def afterSetUp(self): + self.url = self.portal.portal_url + #self.recent = self.portal.recent + self.workflow = self.portal.portal_workflow + + def testImplementsIRecentPortlet(self): + """RecentPortlet must implement IRecentPortlet""" + self.failUnless(IRecentPortlet.implementedBy(RecentPortlet)) + + def testRecentResults(self): + """RecentPortlet.results() must return recently updated content""" + self.portal.portal_catalog.manage_catalogClear() + self.setRoles(['Manager']) + self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') + self.workflow.doActionFor(self.folder.testpage, 'publish') + view = RecentPortlet(self.portal, self.app.REQUEST) + result = view.results() + self.failUnlessEqual(len(result), 1) + self.failUnlessEqual(result[0].getId, 'testpage') + + def testNoRecent(self): + """RecentPortlet.results() must return no content when no recent items""" + # clear out the catalog to guarantee no results + self.portal.portal_catalog.manage_catalogClear() + view = RecentPortlet(self.portal, self.app.REQUEST) + result = view.results() + return result + self.failUnlessEqual(len(result), 0) + + def testRecentResultsPrivate(self): + """RecentPortlet.results() must return private items""" + self.portal.portal_catalog.manage_catalogClear() + self.setRoles(['Manager']) + self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') + self.workflow.doActionFor(self.folder.testpage, 'hide') + view = RecentPortlet(self.portal, self.app.REQUEST) + result = view.results() + self.failUnlessEqual(len(result), 1) + self.failUnlessEqual(result[0].getId, 'testpage') + + def testRecentResultsPublicDraft(self): + """RecentPortlet.results() must return public draft items""" + self.portal.portal_catalog.manage_catalogClear() + self.setRoles(['Manager']) + self.folder.invokeFactory('Document', id='testpage', text='data', title='Foo') + view = RecentPortlet(self.portal, self.app.REQUEST) + result = view.results() + self.failUnlessEqual(len(result), 1) + self.failUnlessEqual(result[0].getId, 'testpage') + +def test_suite(): + from unittest import TestSuite, makeSuite + suite = TestSuite() + suite.addTest(makeSuite(TestRecentPortletView)) + return suite + +if __name__ == '__main__': + framework() + |