def setUp(self):
     """Custom shared utility setup for tests."""
     self.portal = self.layer['portal']
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     login(self.portal, TEST_USER_NAME)
     self.file = api.content.create(
         type='File',
         title='file',
         container=self.portal,
         file=self.get_attachment(u'file.pdf', type='file'),
     )
     self.csv = api.content.create(
         type='File',
         title='csv file',
         container=self.portal,
         file=self.get_attachment(u'file_csv.csv', type='file'),
     )
     self.image = api.content.create(
         type='Image',
         title='image',
         container=self.portal,
         image=self.get_attachment(u'image.jpg', type='image'),
     )
     self.document = api.content.create(type='Document',
                                        title='A page',
                                        container=self.portal)
     self.file_provider = ILinkEnhancerProvider(self.file, None)
     self.csv_provider = ILinkEnhancerProvider(self.csv, None)
     self.img_provider = ILinkEnhancerProvider(self.image, None)
 def enhance_node_infos(self, node):
     """
     Add additional infos, if the node needs them
     """
     text = node.text
     obj = self.get_obj_from_link(node)
     if not obj:
         # the url is broken!
         return
     enhancer_provider = ILinkEnhancerProvider(obj, None)
     if not enhancer_provider:
         # there isn't an adapter registered for this content-type
         return
     link_details = enhancer_provider.get_link_details()
     if not link_details:
         return
     additional_infos = [
         x
         for x in (link_details.get("extension"), link_details.get("size"))
         if x
     ]
     if node.getchildren():
         child = node.getchildren()[-1]
         if child.tail:
             child_postfix_text = child.tail
         else:
             child_postfix_text = ""
         additional_infos = " ({0})".format(", ".join(additional_infos))
         child_postfix_text = child_postfix_text + additional_infos
         child.tail = child_postfix_text
     elif additional_infos and text:
         additional_infos = " ({0})".format(", ".join(additional_infos))
         text = text + additional_infos
     if link_details.get("icon_url"):
         icon_tag = etree.Element("img")
         icon_tag.set("src", link_details.get("icon_url"))
         icon_tag.set("class", "attachmentLinkIcon")
         node.insert(0, icon_tag)
     if text:
         # move text after the image
         icon_tag.tail = text
         node.text = ""
     else:
         icon_tag.tail = " "
         node_children = node.getchildren()
         if node_children and not node_children[-1].tail:
             node_children[-1].tail = " ({0})".format(
                 ", ".join(additional_infos))
     if link_details.get("url_suffix"):
         self.update_href(node, link_details)
    def enhance_node_infos(self, node):
        """
        Add additional infos, if the node needs them
        """
        text = node.text
        obj = self.get_obj_from_link(node)
        if not obj:
            # the url is broken!
            return
        enhancer_provider = ILinkEnhancerProvider(obj, None)
        if not enhancer_provider:
            # there isn't an adapter registered for this content-type
            return
        link_details = enhancer_provider.get_link_details()
        if not link_details:
            return
        icon_tag = ''
        additional_infos = ''
        if link_details.get("icon_url"):
            icon_tag = etree.Element("img")
            icon_tag.set("src", link_details.get("icon_url"))
            icon_tag.set("class", "attachmentLinkIcon")
            icon_tag.set("alt", link_details.get("extension") or "")
            additional_infos = link_details.get("size") + ")"
            icon_tag.tail = additional_infos

        if node.getchildren():
            child = node.getchildren()[-1]
            if child.tail:
                child.tail = child.tail + ' ('
            else:
                child.append(icon_tag)
                child.tail = ' ('
        elif additional_infos and text:
            node.text = node.text + ' ('
        node.append(icon_tag)
        if link_details.get("url_suffix"):
            self.update_href(node, link_details)