def test_export_reference(self):
        """Test export of mutiple references in one document.
        """
        with Transaction():
            factory = self.root.folder.manage_addProduct['Silva']
            factory.manage_addMockupVersionedContent('other', 'Other')

            with self.layer.open_fixture('content-listing.png') as image:
                factory.manage_addImage('image', 'Image', image)

            version = self.root.folder.example.get_editable()
            save_editor_text(
                version.body, HTML_REFERENCE,
                content=version,
                image_content=self.root.folder.image,
                image_name=u'document image',
                link_content=self.root.folder.other,
                link_name=u'document link')

        exporter = self.assertExportEqual(
            self.root.folder,
            'test_export_reference.silvaxml')
        self.assertEqual(       # This is the mockup content
            exporter.getZexpPaths(),
            [(('', 'root', 'folder', 'other'), '1.zexp')])
        self.assertEqual(
            exporter.getAssetPaths(),
            [(('', 'root', 'folder', 'image'), '1')])
        self.assertEqual(
            exporter.getProblems(),
            [])
    def test_export_reference_broken(self):
        """Test export of broken and missing references.
        """
        with Transaction():
            version = self.root.folder.example.get_editable()
            save_editor_text(
                version.body, HTML_REFERENCE,
                content=version,
                image_content=None,
                image_name=u'document image',
                link_content=None,
                link_name=u'document link')

        exporter = self.assertExportEqual(
            self.root.folder,
            'test_export_reference_broken.silvaxml')
        self.assertEqual(
            exporter.getZexpPaths(),
            [])
        self.assertEqual(
            exporter.getAssetPaths(),
            [])
        self.assertEqual(
            exporter.getProblems(),
            [(u'Text contains a broken reference in the export.', version),
             (u'Text contains a broken reference in the export.', version)])
    def test_export_reference_external_force(self):
        """Test export of references that have targets not in the
        export tree, with the option external_references set to True.
        """
        with Transaction():
            factory = self.root.manage_addProduct['Silva']
            factory.manage_addMockupVersionedContent('other', 'Other')

            with self.layer.open_fixture('content-listing.png') as image:
                factory.manage_addImage('image', 'Image', image)

            version = self.root.folder.example.get_editable()
            save_editor_text(
                version.body, HTML_REFERENCE,
                content=version,
                image_content=self.root.image,
                image_name=u'document image',
                link_content=self.root.other,
                link_name=u'document link')

        exporter = self.assertExportEqual(
            self.root.folder,
            'test_export_reference_external.silvaxml',
            options={'external_references': True})
        self.assertEqual(
            exporter.getZexpPaths(),
            [])
        self.assertEqual(
            exporter.getAssetPaths(),
            [])
        self.assertEqual(
            exporter.getProblems(),
            [(u'Text contains a reference pointing outside of the export (../other).', version),
             (u'Text contains a reference pointing outside of the export (../image).', version)])
Example #4
0
    def test_view(self):
        """Test document public view.
        """
        version = self.root.document.get_editable()
        save_editor_text(version.body, """
<p>This is a simple piece of text.</p>
""")
        IPublicationWorkflow(self.root.document).publish()
        with self.layer.get_browser(public_settings) as browser:
            self.assertEqual(browser.open('/root/document'), 200)
            # Title should be an h1.
            self.assertEqual(browser.inspect.title, ['Test Document'])
    def test_export_multiple_root(self):
        """Test export of an HTML tag that have multiple root elements.
        """
        with Transaction():
            version = self.root.folder.example.get_editable()
            save_editor_text(version.body, HTML_MULTIPLE)

        exporter = self.assertExportEqual(
            self.root.folder,
            'test_export_multiple.silvaxml')
        self.assertEqual(exporter.getZexpPaths(), [])
        self.assertEqual(exporter.getAssetPaths(), [])
        self.assertEqual(exporter.getProblems(), [])
    def test_catalog(self):
        """Test that the content of the document is in the catalog.
        """
        with Transaction():
            factory = self.root.manage_addProduct['silva.app.document']
            factory.manage_addDocument('document', 'Test Document')

        version = self.root.document.get_editable()
        save_editor_text(version.body, HTML_CATALOG, content=version)

        # Test appear in the title.
        self.assertItemsEqual(
            search(fulltext='Test'),
            ['/root/document/0'])

        # Catalog appear in the body text.
        self.assertItemsEqual(
            search(fulltext='catalog'),
            ['/root/document/0'])
    def test_export_reference_external(self):
        """Test export of references that have targets not in the
        export tree. This should fail.
        """
        with Transaction():
            factory = self.root.manage_addProduct['Silva']
            factory.manage_addMockupVersionedContent('other', 'Other')

            with self.layer.open_fixture('content-listing.png') as image:
                factory.manage_addImage('image', 'Image', image)

            version = self.root.folder.example.get_editable()
            save_editor_text(
                version.body, HTML_REFERENCE,
                content=version,
                image_content=self.root.image,
                image_name=u'document image',
                link_content=self.root.other,
                link_name=u'document link')

        self.assertExportFail(self.root.folder)