[Erp5-report] r21529 - /erp5/trunk/products/ERP5/tests/testERP5Web.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jun 12 14:25:43 CEST 2008


Author: yusei
Date: Thu Jun 12 14:25:40 2008
New Revision: 21529

URL: http://svn.erp5.org?rev=21529&view=rev
Log:
Added a new very simple test with security.

Modified:
    erp5/trunk/products/ERP5/tests/testERP5Web.py

Modified: erp5/trunk/products/ERP5/tests/testERP5Web.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5Web.py?rev=21529&r1=21528&r2=21529&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5Web.py (original)
+++ erp5/trunk/products/ERP5/tests/testERP5Web.py Thu Jun 12 14:25:40 2008
@@ -32,8 +32,10 @@
 
 from AccessControl import Unauthorized
 from AccessControl.SecurityManagement import newSecurityManager
+from AccessControl.SecurityManagement import getSecurityManager
 from Testing import ZopeTestCase
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from Products.ERP5Type.tests.utils import DummyLocalizer
 
 LANGUAGE_LIST = ('en', 'fr', 'de', 'bg',)
 
@@ -398,8 +400,111 @@
     # Even with the same callable object, a restricted method id should not be callable.
     self.assertRaises(Unauthorized, document.asStrippedHTML)
 
+
+class TestERP5WebWithSimpleSecurity(ERP5TypeTestCase):
+  """
+  Test for erp5_web with simple security.
+  """
+  run_all_test = 1
+  quiet = 1
+
+  def getBusinessTemplateList(self):
+    return ('erp5_base',
+            'erp5_dms_mysql_innodb_catalog',
+            'erp5_web',
+            )
+
+  def getTitle(self):
+    return "Web"
+
+  def createUser(self, name, role_list):
+    user_folder = self.getPortal().acl_users
+    user_folder._doAddUser(name, 'password', role_list, [])
+
+  def changeUser(self, name):
+    self.old_user = getSecurityManager().getUser()
+    user_folder = self.getPortal().acl_users
+    user = user_folder.getUserById(name).__of__(user_folder)
+    newSecurityManager(None, user)
+
+  def afterSetUp(self):
+    self.portal.Localizer = DummyLocalizer()
+    self.createUser('admin', ['Manager'])
+    self.createUser('erp5user', ['Auditor', 'Author'])
+    get_transaction().commit()
+    self.tic()
+
+  def beforeTearDown(self):
+    get_transaction().abort()
+    def clearModule(module):
+      module.manage_delObjects(list(module.objectIds()))
+      get_transaction().commit()
+      self.tic()
+    clearModule(self.portal.web_site_module)
+    clearModule(self.portal.web_page_module)
+
+  def testAccessWebPageByReference(self):
+    self.changeUser('admin')
+    site = self.portal.web_site_module.newContent(portal_type='Web Site',
+                                                  id='site')
+    section = site.newContent(portal_type='Web Section', id='section')
+
+    get_transaction().commit()
+    self.tic()
+
+    section.setCriterionProperty('portal_type')
+    section.setCriterion('portal_type', max='', identity=['Web Page'], min='')
+
+    get_transaction().commit()
+    self.tic()
+
+    self.changeUser('erp5user')
+    page_en = self.portal.web_page_module.newContent(portal_type='Web Page')
+    page_en.edit(reference='my-first-web-page',
+                 language='en',
+                 version='1',
+                 text_format='text/plain',
+                 text_content='Hello, World!')
+
+    get_transaction().commit()
+    self.tic()
+
+    page_en.publish()
+
+    get_transaction().commit()
+    self.tic()
+
+    page_ja = self.portal.web_page_module.newContent(portal_type='Web Page')
+    page_ja.edit(reference='my-first-web-page',
+                 language='ja',
+                 version='1',
+                 text_format='text/plain',
+                 text_content='こんにちは、世界!')
+
+    get_transaction().commit()
+    self.tic()
+
+    page_ja.publish()
+
+    get_transaction().commit()
+    self.tic()
+
+    # By Anonymous
+    self.logout()
+
+    self.portal.Localizer.changeLanguage('en')
+
+    target = self.portal.restrictedTraverse('web_site_module/site/section/my-first-web-page')
+    self.assertEqual('Hello, World!', target.getTextContent())
+
+    self.portal.Localizer.changeLanguage('ja')
+
+    target = self.portal.restrictedTraverse('web_site_module/site/section/my-first-web-page')
+    self.assertEqual('こんにちは、世界!', target.getTextContent())
+
+
 def test_suite():
   suite = unittest.TestSuite()
   suite.addTest(unittest.makeSuite(TestERP5Web))
+  suite.addTest(unittest.makeSuite(TestERP5WebWithSimpleSecurity))
   return suite
-




More information about the Erp5-report mailing list