def test_availability(self):
        """an empty portlet may exist, but it's not displayed."""
        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(), )
        self.assertFalse(renderer.available)

        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(
                content_uid=self.doc.UID(), ), )
        self.assertTrue(renderer.available)
    def test_portlet_text(self):
        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(
                content_uid=self.doc.UID(),
                show_text=True,
            ), )

        self.assertEqual(
            renderer.text,
            self.doc.text,
        )

        self.doc.text = RichTextValue(
            '<p>lorem ipsum dolor ...</p>',
            mimeType='text/html',
            outputMimeType='text/x-html-safe',
        )
        self.doc.reindexObject()

        renderer = self.renderer(assignment=renderer.data)

        self.assertEqual(
            renderer.text,
            self.doc.text.output,
        )
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.portal.REQUEST

        mapping['foo'] = existing_content_portlet.Assignment(
            content_uid=self.doc.UID(), )
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.assertTrue(
            isinstance(
                editview,
                existing_content_portlet.EditForm,
            ), )
    def test_portlet_description(self):
        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(
                content_uid=self.doc.UID(),
                show_description=True,
            ), )
        self.assertEqual(
            renderer.description,
            self.doc.description,
        )
        self.doc.description = 'a description'
        self.doc.reindexObject()

        renderer = self.renderer(assignment=renderer.data)

        self.assertEqual(
            renderer.description,
            self.doc.description,
        )
    def testRenderer(self):
        context = self.portal
        request = self.portal.REQUEST
        view = self.portal.restrictedTraverse('@@plone')
        manager = getUtility(
            IPortletManager,
            name='plone.leftcolumn',
            context=self.portal,
        )
        assignment = existing_content_portlet.Assignment(
            content_uid=self.doc.UID(), )

        renderer = getMultiAdapter(
            (context, request, view, manager, assignment),
            IPortletRenderer,
        )
        self.assertTrue(
            isinstance(
                renderer,
                existing_content_portlet.Renderer,
            ), )
    def test_portlet_rendering(self):
        self.doc.description = 'a description'
        self.doc.text = RichTextValue(
            '<p>lorem ipsum dolor ...</p>',
            mimeType='text/html',
            outputMimeType='text/x-html-safe',
        )
        self.doc.reindexObject()

        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(
                content_uid=self.doc.UID(),
                show_title=True,
                show_description=True,
                show_text=True,
            ), )

        renderer_output = renderer.render()
        self.assertIn(self.doc.title, renderer_output)
        self.assertIn(self.doc.description, renderer_output)
        self.assertIn(self.doc.text.output, renderer_output)
    def test_portlet_title(self):
        renderer = self.renderer(
            assignment=existing_content_portlet.Assignment(
                content_uid=self.doc.UID(),
                show_title=True,
            ), )

        self.assertEqual(
            renderer.title,
            self.doc.title,
        )

        self.doc.title = 'a changed title'
        self.doc.reindexObject()

        renderer = self.renderer(assignment=renderer.data)

        self.assertEqual(
            renderer.title,
            self.doc.title,
        )
    def renderer(
        self,
        context=None,
        request=None,
        view=None,
        manager=None,
        assignment=None,
    ):
        context = self.portal
        request = request or self.portal.REQUEST
        view = view or self.portal.restrictedTraverse('@@plone')
        manager = manager or getUtility(
            IPortletManager,
            name='plone.leftcolumn',
            context=self.portal,
        )
        assignment = assignment or existing_content_portlet.Assignment(
            content_uid=self.doc.UID(), )

        return getMultiAdapter(
            (context, request, view, manager, assignment),
            IPortletRenderer,
        )
 def testInterfaces(self):
     portlet = existing_content_portlet.Assignment()
     self.assertTrue(IPortletAssignment.providedBy(portlet))
     self.assertTrue(IPortletDataProvider.providedBy(portlet.data))