ViewletsΒΆ

Viewlet integration test:

import unittest2 as unittest

from zope.component import queryMultiAdapter
from zope.viewlet.interfaces import IViewletManager

from Products.Five.browser import BrowserView as View

from jungzeelandia.theme.testing import JUNGZEELANDIA_THEME_INTEGRATION_TESTING


class TestViewletsIntegration(unittest.TestCase):

    layer = JUNGZEELANDIA_THEME_INTEGRATION_TESTING

    def setUp(self):
        self.portal = self.layer['portal']
        self.request = self.layer['request']
        from jungzeelandia.theme.interfaces import IJungzeelandiaTheme
        from zope.interface import alsoProvides
        alsoProvides(self.request, IJungzeelandiaTheme)

    def test_topnav_viewlet_is_present(self):
        view = View(self.portal, self.request)
        manager = queryMultiAdapter(
            (self.portal, self.request, view),
            IViewletManager,
            'plone.portalheader',
            default=None)
        self.failUnless(manager)
        manager.update()
        topnav_viewlet = [
            v for v in manager.viewlets \
            if v.__name__ == 'jungzeelandia.topnav']
        self.failUnlessEqual(len(topnav_viewlet), 1)