[Erp5-report] r38448 jerome - /erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Sep 17 13:07:36 CEST 2010
Author: jerome
Date: Fri Sep 17 13:07:35 2010
New Revision: 38448
URL: http://svn.erp5.org?rev=38448&view=rev
Log:
Tests html preview of an OOo document with images as extensible content.
Modified:
erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py
Modified: erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py?rev=38448&r1=38447&r2=38448&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] Fri Sep 17 13:07:35 2010
@@ -30,6 +30,9 @@
import unittest
import os
import transaction
+from lxml import etree
+from StringIO import StringIO
+
from AccessControl import Unauthorized
from AccessControl.SecurityManagement import newSecurityManager
from Testing import ZopeTestCase
@@ -561,6 +564,76 @@ class TestERP5WebWithDms(ERP5TypeTestCas
self.assertEquals(response.getHeader('content-type'),
'text/html; charset=utf-8')
+ def test_PreviewOOoDocumentWithEmbeddedImage(self):
+ """Tests html preview of an OOo document with images as extensible content.
+ """
+ portal = self.portal
+ request = portal.REQUEST
+ request['PARENTS'] = [self.app]
+ website = self.setupWebSite()
+ web_section_portal_type = 'Web Section'
+ web_section = website.newContent(portal_type=web_section_portal_type)
+
+ document_reference = 'tiolive-ERP5.Freedom.TioLive'
+ upload_file = makeFileUpload('tiolive-ERP5.Freedom.TioLive-001-en.odp')
+ document = self.portal.document_module.newContent(
+ portal_type='Presentation',
+ reference=document_reference,
+ file=upload_file)
+ transaction.commit()
+ self.tic()
+ credential = 'ERP5TypeTestCase:'
+
+ # first, preview the draft in its physical location (in document module)
+ response = self.publish('%s/asEntireHTML' % document.absolute_url_path(),
+ credential)
+ self.assertEquals(response.getHeader('content-type'), 'text/html')
+ html = response.getBody()
+ self.assertTrue('<img' in html, html)
+
+ # find the img src
+ parser = etree.HTMLParser()
+ tree = etree.parse(StringIO(html), parser)
+ img_list = tree.findall('//img')
+ self.assertEquals(1, len(img_list))
+ src = img_list[0].get('src')
+
+ # and make another query for this img
+ response = self.publish('%s/%s' % ( document.absolute_url_path(), src),
+ credential)
+ self.assertEquals(response.getHeader('content-type'), 'image/png')
+ png = response.getBody()
+ self.assertTrue(png.startswith('\x89PNG'))
+
+ # then publish the document and access it anonymously by reference through
+ # the web site
+ document.publish()
+
+ transaction.commit()
+ self.tic()
+
+ response = self.publish('%s/%s/asEntireHTML' % (
+ website.absolute_url_path(), document_reference))
+ self.assertEquals(response.getHeader('content-type'), 'text/html')
+ html = response.getBody()
+ self.assertTrue('<img' in html, html)
+
+ # find the img src
+ parser = etree.HTMLParser()
+ tree = etree.parse(StringIO(html), parser)
+ img_list = tree.findall('//img')
+ self.assertEquals(1, len(img_list))
+ src = img_list[0].get('src')
+
+ # and make another query for this img
+ response = self.publish('%s/%s/%s' % (
+ website.absolute_url_path(), document_reference, src))
+ self.assertEquals(response.getHeader('content-type'), 'image/png')
+ png = response.getBody()
+ self.assertTrue(png.startswith('\x89PNG'))
+
+
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestERP5WebWithDms))
More information about the Erp5-report
mailing list