source: products/quintagroup.portlet.static/trunk/quintagroup/portlet/static/tests/test_portlet.py @ 3218

Last change on this file since 3218 was 285, checked in by chervol, 18 years ago

RSS2 for Topics fixed

  • Property svn:eol-style set to native
File size: 3.7 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
10from plone.portlet.static.tests import test_portlet_static as base
11
12from quintagroup.portlet.static import staticstylishportlet
13
14from quintagroup.portlet.static.tests.base import TestCase
15
16
17class TestPortlet(TestCase):
18
19    def afterSetUp(self):
20        self.setRoles(('Manager', ))
21
22    def test_portlet_type_registered(self):
23        portlet = getUtility(IPortletType, name='quintagroup.portlet.static.StaticStylishPortlet')
24        self.assertEquals(portlet.addview, 'quintagroup.portlet.static.StaticStylishPortlet')
25
26    def test_interfaces(self):
27        portlet = staticstylishportlet.Assignment()
28        self.failUnless(IPortletAssignment.providedBy(portlet))
29        self.failUnless(IPortletDataProvider.providedBy(portlet.data))
30
31    def test_invoke_add_view(self):
32        portlet = getUtility(IPortletType, name='quintagroup.portlet.static.StaticStylishPortlet')
33        mapping = self.portal.restrictedTraverse('++contextportlets++plone.leftcolumn')
34        for m in mapping.keys():
35            del mapping[m]
36        addview = mapping.restrictedTraverse('+/' + portlet.addview)
37
38        addview.createAndAdd(data={})
39
40        self.assertEquals(len(mapping), 1)
41        self.failUnless(isinstance(mapping.values()[0], staticstylishportlet.Assignment))
42
43    def test_invoke_edit_view(self):
44        mapping = PortletAssignmentMapping()
45        request = self.folder.REQUEST
46
47        mapping['foo'] = staticstylishportlet.Assignment()
48        editview = getMultiAdapter((mapping['foo'], request), name='edit')
49        self.failUnless(isinstance(editview, staticstylishportlet.EditForm))
50
51    def test_obtain_renderer(self):
52        context = self.folder
53        request = self.folder.REQUEST
54        view = self.folder.restrictedTraverse('@@plone')
55        manager = getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
56
57        assignment = staticstylishportlet.Assignment()
58
59        renderer = getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
60        self.failUnless(isinstance(renderer, staticstylishportlet.Renderer))
61
62
63class TestBaseRenderer(base.TestRenderer):
64    """ Just to be sure base functionality is not broken """
65
66
67class TestRenderer(TestCase):
68
69    def afterSetUp(self):
70        self.setRoles(('Manager', ))
71
72    def renderer(self, context=None, request=None, view=None, manager=None, assignment=None):
73        context = context or self.folder
74        request = request or self.folder.REQUEST
75        view = view or self.folder.restrictedTraverse('@@plone')
76        manager = manager or getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
77
78        assignment = assignment or staticstylishportlet.Assignment()
79        return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
80
81    def test_render(self):
82        r = self.renderer(context=self.portal, assignment=staticstylishportlet.Assignment(styling='paleBackground'))
83        r = r.__of__(self.folder)
84        r.update()
85        output = r.render()
86       
87        self.failUnless('paleBackground' in output, 'Custom styling is not applied')
88
89
90def test_suite():
91    from unittest import TestSuite, makeSuite
92    suite = TestSuite()
93    suite.addTest(makeSuite(TestPortlet))
94    suite.addTest(makeSuite(TestBaseRenderer))
95    suite.addTest(makeSuite(TestRenderer))
96    return suite
Note: See TracBrowser for help on using the repository browser.