[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