Beispiel #1
0
    def test_viewlet_is_present(self):
        """Testa se a viewlet foi registrada corretamente."""
        request = self.request
        context = self.portal

        view = View(context, request)

        manager_name = 'plone.portaltop'

        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)

        # Testa se o viewlet manager existe
        self.assertIsNotNone(manager)

        manager.update()

        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'brasil.gov.portal.acessibilidade'
        ]

        # Testa se o viewlet existe
        self.assertEqual(len(my_viewlet), 1)
Beispiel #2
0
    def test_viewlet_is_present(self):
        """ looking up and updating the manager should list our viewlet
        """
        # we need a context and request
        minisite_subfolder = api.content.create(type='Folder',
                                                id='minisite_subfolder',
                                                title='minisite_subfolder',
                                                container=self.minisite_folder)
        request = self.request
        context = self.minisite_folder

        # viewlet managers also require a view object for adaptation
        view = View(context, request)

        # finally, you need the name of the manager you want to find
        manager_name = 'plone.portaltop'

        # viewlet managers are found by Multi-Adapter lookup
        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)

        # calling update() on a manager causes it to set up its viewlets
        manager.update()

        # now our viewlet should be in the list of viewlets for the manager
        # we can verify this by looking for a viewlet with the name we used
        # to register the viewlet in zcml
        my_viewlet = [
            v for v in manager.viewlets if v.__name__ == 'cpskin.minisitemenu'
        ]
        self.assertEqual(len(my_viewlet), 1)
Beispiel #3
0
    def test_viewlet_menu_contents(self):
        """ looking up and updating the manager should list our viewlet
        """
        non_minisite_subfolder = api.content.create(
            type='Folder',
            id='non_minisite_subfolder',
            title='non_minisite_subfolder',
            container=self.portal)

        minisite_subfolder = api.content.create(type='Folder',
                                                id='minisite_subfolder',
                                                title='minisite_subfolder',
                                                container=self.minisite_folder)

        request = self.request
        context = self.minisite_folder

        view = View(context, request)
        manager_name = 'plone.portaltop'
        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()
        viewlets = [
            v for v in manager.viewlets if v.__name__ == 'cpskin.minisitemenu'
        ]
        ms_viewlet = viewlets[0]
        ids = [item['id'] for item in ms_viewlet.portal_tabs]
        self.assertIn(minisite_subfolder.id, ids)
        self.assertNotIn(non_minisite_subfolder.id, ids)
    def test_viewlet_is_not_installed(self):
        """ looking up and updating the manager should not list our viewlet
            when our browserlayer is not applied, eq. when our product is not
            installed.
        """
        request = self.app.REQUEST
        context = self.portal

        view = View(context, request)

        manager_name = 'plone.htmlhead'
        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)

        self.failUnless(manager)

        manager.update()

        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'collective.cookiecuttr'
        ]

        self.failUnlessEqual(len(my_viewlet), 0)

        # The analytics viewlet should be there and show its normal contents.
        analytics = self.get_analytics_viewlet_contents(context, request, view)
        self.assertEqual(analytics, self.webstats_js)
Beispiel #5
0
    def _iter_enabled_viewlet_managers(self, context, request):
        # We use a generic view to lookup the viewlets.
        view = View(context, request)
        spec = tuple(map(providedBy, (context, request, view)))

        try:
            settings = getUtility(IRegistry).forInterface(IGlobalSettings)
        except (ComponentLookupError, KeyError):
            ignore_list = ()
        else:
            if not root_interface().providedBy(context):
                ignore_list = settings.site_local_managers or ()
            else:
                ignore_list = ()

        for viewlet_manager_iface, viewlet_manager_title in self.all_viewlet_managers(
                context):
            if viewlet_manager_iface in ignore_list:
                continue

            for viewlet_name, factory in self._lookup(
                    spec + (viewlet_manager_iface, ), IViewlet):
                try:
                    if issubclass(factory, DisplayPanelManagerViewlet):
                        yield viewlet_name, viewlet_manager_iface, viewlet_manager_title
                except TypeError:
                    # Issue #9: "Unexpected non-class object while
                    # iterating over viewlet managers"
                    continue
Beispiel #6
0
 def _get_viewlet_manager(self, context, request=None, name=None):
     assert name is not None
     if request is None:
         request = self.request
     view = View(context, request)
     manager = getMultiAdapter((context, request, view), IViewletManager,
                               name)
     return manager
Beispiel #7
0
 def get_viewlet_manager(self, context, name='plone.portalfooter'):
     from Products.Five.browser import BrowserView as View
     from zope.component import getMultiAdapter
     from zope.viewlet.interfaces import IViewletManager
     request = self.request
     view = View(context, request)
     manager = getMultiAdapter((context, request, view), IViewletManager,
                               name)
     return manager
    def test_anonymous_viewlet_is_not_present_in_portal(self):
        logout()
        view = View(self.portal, self.request)
        manager = queryMultiAdapter((self.portal, self.request, view),
                                    IViewletManager, 'plone.htmlhead')
        self.assertTrue(manager is not None)

        manager.update()
        viewlet = [v for v in manager.viewlets if v.__name__ == NAME]
        self.assertEqual(len(viewlet), 0)
    def test_manager_viewlet_is_present_in_portal(self):
        setRoles(self.portal, TEST_USER_ID, ['Manager'])
        view = View(self.portal, self.request)
        manager = queryMultiAdapter((self.portal, self.request, view),
                                    IViewletManager, 'plone.htmlhead')
        self.assertTrue(manager is not None)

        manager.update()
        viewlet = [v for v in manager.viewlets if v.__name__ == NAME]
        self.assertEqual(len(viewlet), 1)
Beispiel #10
0
    def _get_viewlets_from_manager(self, manager):
        """Returns all viewlets from a manager."""
        request = self.portal.REQUEST
        view = View(self.portal, request)
        manager = queryMultiAdapter((self.portal, request, view),
                                    IViewletManager,
                                    manager,
                                    default=None)

        self.assertIsNotNone(manager)

        manager.update()

        return manager.viewlets
    def _iter_viewlet_managers(self, context, request):
        # We use a generic view to lookup the viewletmanagers.
        view = View(context, request)
        spec = tuple(map(providedBy, (context, request, view)))

        storage = getUtility(IViewletSettingsStorage)
        skinname = context.getCurrentSkinName()

        for viewlet_name, viewlet_manager_iface, viewlet_manager_title in self._iter_enabled_viewlet_managers(context, request):
            for viewlet_manager_name, factory in self._lookup(spec, viewlet_manager_iface):
                hidden = storage.getHidden(viewlet_manager_name, skinname)

                if viewlet_name not in hidden:
                    yield viewlet_manager_name, viewlet_manager_title
Beispiel #12
0
 def test_leadimage_viewlet_does_not_show_up_for_newsitems(self):
     from zope.interface import alsoProvides
     from plone.app.contenttypes.behaviors.leadimage import ILeadImage
     alsoProvides(self.request, ILeadImage)
     view = View(self.portal, self.request)
     manager = queryMultiAdapter((self.portal, self.request, view),
                                 IViewletManager,
                                 'plone.abovecontenttitle',
                                 default=None)
     self.assertTrue(manager)
     manager.update()
     leadimage_viewlet = [
         v for v in manager.viewlets if v.__name__ == 'contentleadimage'
     ]
     self.assertEqual(len(leadimage_viewlet), 0)
    def test_viewlet_cookiecuttr_enabled(self):
        """ looking up and updating the manager should list our viewlet

        It is enabled so it should be filled.
        """
        # our viewlet is registered for a browser layer.  Browser layers
        # are applied to the request during traversal in the publisher.  We
        # need to do the same thing manually here
        request = self.app.REQUEST
        context = self.portal
        alsoProvides(request, ICookieCuttr)

        view = View(context, request)

        # finally, you need the name of the manager you want to find
        manager_name = 'plone.htmlhead'

        # viewlet managers are found by Multi-Adapter lookup
        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)

        self.failUnless(manager)

        # calling update() on a manager causes it to set up its viewlets
        manager.update()

        # now our viewlet should be in the list of viewlets for the manager
        # we can verify this by looking for a viewlet with the name we used
        # to register the viewlet in zcml
        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'collective.cookiecuttr'
        ]

        self.failUnlessEqual(len(my_viewlet), 1)

        my_viewlet[0].settings.cookiecuttr_enabled = True

        self.failUnlessEqual(
            my_viewlet[0].render(),
            u'\n<script type="text/javascript">\n\n    (function($) {\n        $(document).ready(function () {\n            if($.cookieCuttr) {\n                $.cookieCuttr({cookieAnalytics: false,\n                               cookiePolicyLink: " ",\n                               cookieMessage: "We use cookies. <a href=\'{{cookiePolicyLink}}\' title=\'read about our cookies\'>Read everything</a>",\n                               cookieAcceptButtonText: "Accept cookies"\n                               });\n                }\n        })\n    })(jQuery);\n</script>\n\n'
        )

        # The analytics viewlet should be there and show nothing.
        analytics = self.get_analytics_viewlet_contents(context, request, view)
        self.assertEqual(analytics, '')
Beispiel #14
0
    def _find_viewlet(self, context, manager_name, viewlet_name, layer=None):
        request = self.portal.REQUEST
        if layer:
            alsoProvides(request, layer)

        view = View(context, request)
        manager = queryMultiAdapter(
            (context, request, view),
            IViewletManager,
            manager_name,
            default=None
        )
        self.failUnless(manager)

        manager.update()
        viewlets = manager.viewlets
        viewlet = [v for v in viewlets if v.__name__ == viewlet_name]
        return viewlet
    def test_viewlet_cookiecuttr_disabled(self):
        """ looking up and updating the manager should list our viewlet

        But when disabled it should be empty.
        """
        # our viewlet is registered for a browser layer.  Browser layers
        # are applied to the request during traversal in the publisher.  We
        # need to do the same thing manually here
        request = self.app.REQUEST
        context = self.portal
        alsoProvides(request, ICookieCuttr)

        view = View(context, request)

        # finally, you need the name of the manager you want to find
        manager_name = 'plone.htmlhead'

        # viewlet managers are found by Multi-Adapter lookup
        manager = queryMultiAdapter((context, request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)

        self.failUnless(manager)

        # calling update() on a manager causes it to set up its viewlets
        manager.update()

        # now our viewlet should be in the list of viewlets for the manager
        # we can verify this by looking for a viewlet with the name we used
        # to register the viewlet in zcml
        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'collective.cookiecuttr'
        ]

        self.failUnlessEqual(len(my_viewlet), 1)
        self.failUnlessEqual(my_viewlet[0].render(), '')

        # The analytics viewlet should be there and show its normal contents.
        analytics = self.get_analytics_viewlet_contents(context, request, view)
        self.assertEqual(analytics, self.webstats_js)
Beispiel #16
0
 def _get_viewlet(self):
     request = self.portal.REQUEST
     context = self.portal.questions
     view = View(context, request)
     viewlet = QuestionsListViewlet(context, request, view, None)
     return viewlet
 def get_viewlet_manager(self, context, name="plone.portalfooter"):
     request = self.request
     view = View(context, request)
     manager = getMultiAdapter((context, request, view), IViewletManager,
                               name)
     return manager
 def get_viewlet_manager(self, context, name='plone.abovecontent'):
     request = self.request
     view = View(context, request)
     manager = getMultiAdapter((context, request, view), IViewletManager,
                               name)
     return manager