source: products/quintagroup.portlet.pfg/trunk/quintagroup/portlet/pfg/tests/test_portlet.py @ 2816

Last change on this file since 2816 was 2816, checked in by fenix, 14 years ago
  • added tests;
  • fixed bugs;
  • Property svn:eol-style set to native
File size: 3.8 KB
Line 
1from zope.component import getUtility, getMultiAdapter
2
3from plone.portlets.interfaces import IPortletType
4from plone.portlets.interfaces import IPortletManager
5from plone.portlets.interfaces import IPortletAssignment
6from plone.portlets.interfaces import IPortletDataProvider
7from plone.portlets.interfaces import IPortletRenderer
8
9from plone.app.portlets.storage import PortletAssignmentMapping
10
11from quintagroup.portlet.pfg import pfg
12
13from quintagroup.portlet.pfg.tests.base import TestCase
14
15
16from Products.CMFCore.utils import getToolByName
17
18class TestPFGPortlet(TestCase):
19
20    def afterSetUp(self):
21        self.setRoles(('Manager',))
22        self.portal.invokeFactory('FormFolder', 'test_form')
23
24    def testPortletTypeRegistered(self):
25        portlet = getUtility(IPortletType, name='quintagroup.portlet.pfg.PFGPortlet')
26        self.assertEquals(portlet.addview, 'quintagroup.portlet.pfg.PFGPortlet')
27
28    def testInterfaces(self):
29        portlet = pfg.Assignment(target_form=u"/test_form")
30        self.failUnless(IPortletAssignment.providedBy(portlet))
31        self.failUnless(IPortletDataProvider.providedBy(portlet.data))
32
33    def testInvokeAddview(self):
34        portlet = getUtility(IPortletType, name='quintagroup.portlet.pfg.PFGPortlet')
35        mapping = self.portal.restrictedTraverse('++contextportlets++plone.leftcolumn')
36        for m in mapping.keys():
37            del mapping[m]
38        addview = mapping.restrictedTraverse('+/' + portlet.addview)
39
40        addview.createAndAdd(data={'target_form' : u"/test_form"})
41
42        self.assertEquals(len(mapping), 1)
43        self.failUnless(isinstance(mapping.values()[0], pfg.Assignment))
44
45    def testInvokeEditView(self):
46        mapping = PortletAssignmentMapping()
47        request = self.folder.REQUEST
48
49        mapping['foo'] = pfg.Assignment(target_form=u"/test_form")
50        editview = getMultiAdapter((mapping['foo'], request), name='edit')
51        self.failUnless(isinstance(editview, pfg.EditForm))
52
53    def testRenderer(self):
54        context = self.folder
55        request = self.folder.REQUEST
56        view = self.folder.restrictedTraverse('@@plone')
57        manager = getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
58        assignment = pfg.Assignment(target_form=u"/test_form")
59
60        renderer = getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
61        self.failUnless(isinstance(renderer, pfg.Renderer))
62
63class TestPFGPortletRenderer(TestCase):
64
65    def afterSetUp(self):
66        self.loginAsPortalOwner()
67        self.setRoles(('Manager',))
68        self.portal.invokeFactory('FormFolder', 'test_form')
69
70    def renderer(self, context=None, request=None, view=None, manager=None, assignment=None):
71        context = context or self.folder
72        request = request or self.folder.REQUEST
73        view = view or self.folder.restrictedTraverse('@@plone')
74        manager = manager or getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
75        assignment = assignment or pfg.Assignment(target_form="/test_form")
76
77        return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
78
79
80    def test_portletStyle(self):
81        renderer = self.renderer(context=self.portal,
82                                 request=self.portal.REQUEST,
83                                 assignment=pfg.Assignment(target_form="/test_form"))
84        renderer = renderer.__of__(self.portal)
85        renderer.update()
86
87        self.failUnless('Your E-Mail Address' in renderer.render())
88        self.failUnless('Subject' in renderer.render())
89        self.failUnless('Comments' in renderer.render())
90
91def test_suite():
92    from unittest import TestSuite, makeSuite
93    suite = TestSuite()
94    suite.addTest(makeSuite(TestPFGPortlet))
95    suite.addTest(makeSuite(TestPFGPortletRenderer))
96    return suite
Note: See TracBrowser for help on using the repository browser.