[Erp5-report] r36242 nicolas - /erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 10 18:03:37 CEST 2010


Author: nicolas
Date: Thu Jun 10 18:03:35 2010
New Revision: 36242

URL: http://svn.erp5.org?rev=36242&view=rev
Log:
Check that headers are well setting up by caching policy manager
for extensible contents of OOoDocument in web_mode.

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=36242&r1=36241&r2=36242&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testERP5WebWithDms.py [utf8] Thu Jun 10 18:03:35 2010
@@ -28,15 +28,26 @@
 ##############################################################################
 
 import unittest
-
+import os
 import transaction
 from AccessControl import Unauthorized
 from AccessControl.SecurityManagement import newSecurityManager
 from Testing import ZopeTestCase
-from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase,\
+     _getConversionServerDict
+from Products.ERP5Type.tests.utils import FileUpload
 
 LANGUAGE_LIST = ('en', 'fr', 'de', 'bg',)
 
+def makeFilePath(name):
+  return os.path.join(os.path.dirname(__file__), 'test_data', name)
+
+def makeFileUpload(name, as_name=None):
+  if as_name is None:
+    as_name = name
+  path = makeFilePath(name)
+  return FileUpload(path, as_name)
+
 class TestERP5WebWithDms(ERP5TypeTestCase, ZopeTestCase.Functional):
   """Test for erp5_web business template.
   """
@@ -70,10 +81,20 @@ class TestERP5WebWithDms(ERP5TypeTestCas
   def afterSetUp(self):
     self.login()
     portal = self.getPortal()
+    self.setDefaultSitePreference()
     self.web_page_module = self.portal.web_page_module
     self.web_site_module = self.portal.web_site_module
     self.portal_id = self.portal.getId()
 
+  def setDefaultSitePreference(self):
+    default_pref = self.portal.portal_preferences.default_site_preference
+    conversion_dict = _getConversionServerDict()
+    default_pref.setPreferredOoodocServerAddress(conversion_dict['hostname'])
+    default_pref.setPreferredOoodocServerPortNumber(conversion_dict['port'])
+    if self.portal.portal_workflow.isTransitionPossible(default_pref, 'enable'):
+      default_pref.enable()
+    return default_pref
+
   def clearModule(self, module):
     module.manage_delObjects(list(module.objectIds()))
     transaction.commit()
@@ -414,6 +435,31 @@ class TestERP5WebWithDms(ERP5TypeTestCas
     modification_date = rfc1123_date(document.getModificationDate())
     self.assertEqual(modification_date, last_modified_header)
 
+    # Upload a presentation with 3 pages.
+    upload_file = makeFileUpload('P-DMS-Presentation.3.Pages-001-en.odp')
+    document = document_module.newContent(portal_type='Presentation',
+                                          file=upload_file)
+    reference = 'P-DMS-Presentation.3.Pages'
+    document.edit(reference=reference)
+    document.publish()
+    transaction.commit()
+    self.tic()
+    website_url = website.absolute_url_path()
+    # Check we can access to the 3 drawings converted into images.
+    # Those images can be accessible through extensible content
+    # url : path-of-document + '/' + 'img' + page-index + '.png'
+    for i in range(3):
+      path = '/'.join((website_url,
+                       reference,
+                       'img%s.png' % i))
+      response = self.publish(path)
+      policy_list = self.portal.caching_policy_manager.listPolicies()
+      policy = [policy for policy in policy_list\
+                                          if policy[0] == 'unauthenticated'][0]
+      self.assertEquals(response.getHeader('Content-Type'), 'image/png')
+      self.assertEquals(response.getHeader('Cache-Control'),
+                        'max-age=%s' % policy[1].getMaxAgeSecs())
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestERP5WebWithDms))




More information about the Erp5-report mailing list