[Erp5-report] r37803 nicolas - /erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Aug 13 16:00:21 CEST 2010
Author: nicolas
Date: Fri Aug 13 16:00:17 2010
New Revision: 37803
URL: http://svn.erp5.org?rev=37803&view=rev
Log:
Test documents rendering behaviour.
A document is always returned in erp5 environment mode,
except if conversion parameters are passed like format, display, ...
or a special method is called like asStrippedHTML, Base_download, ...
All links to an image must be written with a conversion parameter in its url:
http://www.example.com/REFERENCE.TO.IMAGE?format=png
or http://www.example.com/REFERENCE.TO.IMAGE?display=small
An example with a method:
http://www.example.com/REFERENCE.TO.TEXT/asStrippedHTML
or http://www.example.com/REFERENCE.TO.IMAGE/Base_download
path like http://www.example.com/REFERENCE.TO.IMAGE and http://www.example.com/REFERENCE.TO.IMAGE/view
returns the same result and are fully consistent among all document types.
manage_FTPget is overrided to force the download of raw content for WebDav and FTP access.
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=37803&r1=37802&r2=37803&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] Fri Aug 13 16:00:17 2010
@@ -460,6 +460,107 @@ class TestERP5WebWithDms(ERP5TypeTestCas
self.assertEquals(response.getHeader('Cache-Control'),
'max-age=%s' % policy[1].getMaxAgeSecs())
+ def test_07_TestDocumentViewBehaviour(self):
+ """All Documents shared the same downloading behaviour
+ The rules are.
+ a document is allways returned in its web_site envrironment
+ except if conversion parameters are passed like format, display, ...
+
+ All links to an image must be write with a parameter in its url
+ ../REFERENCE.TO.IMAGE?format=png or ../REFERENCE.TO.IMAGE?display=small
+ """
+ portal = self.getPortal()
+ 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)
+
+ web_page_reference = 'NXD-WEB-PAGE'
+ content = '<p>initial text</p>'
+ web_page_module = portal.getDefaultModule(portal_type='Web Page')
+ web_page = web_page_module.newContent(portal_type='Web Page',
+ reference=web_page_reference,
+ text_content=content)
+ web_page.publish()
+
+ document_reference = 'NXD-Presentation'
+ document_module = portal.getDefaultModule(portal_type='Presentation')
+ upload_file = makeFileUpload('P-DMS-Presentation.3.Pages-001-en.odp')
+ document = document_module.newContent(portal_type='Presentation',
+ reference=document_reference,
+ file=upload_file)
+ document.publish()
+
+ image_reference = 'NXD-IMAGE'
+ image_module = portal.getDefaultModule(portal_type='Image')
+ upload_file = makeFileUpload('tiolive-ERP5.Freedom.TioLive.Logo-001-en.png')
+ image = image_module.newContent(portal_type='Image',
+ file=upload_file,
+ reference=image_reference)
+ image.publish()
+ transaction.commit()
+ self.tic()
+ credential = 'ERP5TypeTestCase:'
+ # testing TextDocument
+ response = self.publish(website.absolute_url_path() + '/' +\
+ web_page_reference, credential)
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+ self.assertTrue('<form' in response.getBody()) # means the web_page
+ # is rendered in web_site context
+
+ response = self.publish(website.absolute_url_path() + '/' +\
+ web_page_reference + '/view', credential)
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+ self.assertTrue('<form' in response.getBody()) # means the web_page
+ # is rendered in web_site context
+
+ response = self.publish(website.absolute_url_path() + '/' +\
+ web_page_reference + '?format=pdf', credential)
+ self.assertEquals(response.getHeader('content-type'), 'application/pdf')
+
+ # testing Image
+ response = self.publish(website.absolute_url_path() + '/' +\
+ image_reference, credential)
+ # image is rendered in web_site context
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+
+ response = self.publish(website.absolute_url_path() + '/' +\
+ image_reference + '?format=png', credential)
+ # image is downloaded because format parameter is passed
+ self.assertEquals(response.getHeader('content-type'), 'image/png')
+
+ response = self.publish(website.absolute_url_path() + '/' +\
+ image_reference + '?display=small', credential)
+ # image is downloaded because display parameter is passed
+ self.assertEquals(response.getHeader('content-type'), 'image/png')
+
+ # image is rendered in web_site context
+ response = self.publish(website.absolute_url_path() + '/' +\
+ image_reference+ '/view', credential)
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+
+ # testing OOoDocument
+ # Document is downloaded
+ response = self.publish(website.absolute_url_path() + '/' +\
+ document_reference, credential)
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+ response = self.publish(website.absolute_url_path() + '/' +\
+ document_reference + '?format=odp', credential)
+ # document is resturned because format parameter is passed
+ self.assertEquals(response.getHeader('content-type'),
+ 'application/vnd.oasis.opendocument.presentation')
+ # Document is rendered in web_site context
+ response = self.publish(website.absolute_url_path() + '/' +\
+ document_reference + '/view', credential)
+ self.assertEquals(response.getHeader('content-type'),
+ 'text/html; charset=utf-8')
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestERP5WebWithDms))
More information about the Erp5-report
mailing list