[Erp5-report] r20345 - /erp5/trunk/products/ERP5/tests/testGadgets.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Apr 8 13:39:20 CEST 2008
Author: ivan
Date: Tue Apr 8 13:39:19 2008
New Revision: 20345
URL: http://svn.erp5.org?rev=20345&view=rev
Log:
Add Gadgets test.
Added:
erp5/trunk/products/ERP5/tests/testGadgets.py
Added: erp5/trunk/products/ERP5/tests/testGadgets.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testGadgets.py?rev=20345&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/tests/testGadgets.py (added)
+++ erp5/trunk/products/ERP5/tests/testGadgets.py Tue Apr 8 13:39:19 2008
@@ -1,0 +1,191 @@
+##############################################################################
+#
+# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved.
+# Ivan Tyagov <ivan at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+##############################################################################
+
+import unittest
+from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
+from AccessControl.SecurityManagement import newSecurityManager
+from zLOG import LOG
+
+class TestGadgets(ERP5TypeTestCase):
+ """Test Gadgets
+ """
+ run_all_test = 1
+ quiet = 0
+
+ def getBusinessTemplateList(self):
+ return ('erp5_base', 'erp5_knowledge_pad', 'erp5_web',)
+
+ def getTitle(self):
+ return "Gadgets"
+
+ def afterSetUp(self):
+ self.login()
+ portal = self.getPortal()
+ web_site_module = portal.web_site_module
+ self.website = web_site_module.newContent(portal_type='Web Site')
+ self.websection = self.website.newContent(portal_type='Web Section')
+
+ def login(self, quiet=0, run=run_all_test):
+ uf = self.getPortal().acl_users
+ uf._doAddUser('ivan', '', ['Manager'], [])
+ uf._doAddUser('ERP5TypeTestCase', '', ['Manager'], [])
+ user = uf.getUserById('ivan').__of__(uf)
+ newSecurityManager(None, user)
+
+ def test_01ProperPoolInitialization(self, quiet=quiet, run=run_all_test):
+ """ Check that it's properly initialized """
+ if not run: return
+ portal = self.getPortal()
+ self.assertNotEqual(None, getattr(portal, 'portal_gadgets', None))
+ self.assertEqual(0, len(getattr(portal, 'knowledge_pad_module').contentValues()))
+
+ def test_02(self, quiet=quiet, run=run_all_test):
+ """ Check Gadgets """
+ if not run: return
+ portal = self.getPortal()
+ knowledge_pad_module = getattr(portal, 'knowledge_pad_module')
+ self.assertEqual(0, len(knowledge_pad_module.searchFolder(portal_type='Knowledge Pad')))
+ portal.ERP5Site_createDefaultKnowledgePadListForUser()
+ get_transaction().commit()
+ self.tic()
+ self.assertEqual(1, len(knowledge_pad_module.searchFolder(portal_type='Knowledge Pad')))
+ default_pad = knowledge_pad_module.searchFolder(portal_type='Knowledge Pad')[0].getObject()
+ self.assertEqual(None, default_pad.getPublicationSection())
+ self.assertEqual('visible',default_pad.getValidationState())
+
+ # add box, test if box visible
+ gadget = portal.portal_gadgets.erp5_persons
+ kw = {'uids': (gadget.getUid(),),
+ 'listbox_list_selection_name': '',}
+ default_pad.KnowledgePad_addBoxList(**kw)
+ box = default_pad.contentValues(portal_type='Knowledge Box')[0]
+ self.assertEqual('visible', box.getValidationState())
+
+ # toggle box state
+ portal.KnowledgeBox_toggleVisibility(box.getRelativeUrl())
+ self.assertEqual('invisible', box.getValidationState())
+ portal.KnowledgeBox_toggleVisibility(box.getRelativeUrl())
+ self.assertEqual('visible', box.getValidationState())
+ portal.KnowledgePad_deleteBox(box.getRelativeUrl())
+ self.assertEqual('deleted', box.getValidationState())
+
+ # add new pad
+ portal.ERP5Site_addNewKnowledgePad(pad_title='Test')
+ get_transaction().commit()
+ self.tic()
+ pads = knowledge_pad_module.ERP5Site_getKnowledgePadListForUser()
+ self.assertEqual(2, len(pads))
+ for pad in pads:
+ pad = pad.getObject()
+ if pad == default_pad:
+ # default (first) pad is invisible now
+ self.assertEqual('invisible', pad.getValidationState())
+ else:
+ self.assertEqual('visible', pad.getValidationState())
+ self.assertEqual(0, len(pad.searchFolder(portal_type='Knowledge Box')))
+ new_pad = pad
+
+ self.assertEqual(new_pad,
+ portal.ERP5Site_getActiveKnowledgePadForUser(pads)[0].getObject())
+
+ # remove newly added tab, check visibility
+ portal.ERP5Site_deleteKnowledgePad(new_pad.getRelativeUrl())
+ get_transaction().commit()
+ self.tic()
+ pads = knowledge_pad_module.ERP5Site_getKnowledgePadListForUser()
+ self.assertEqual(1, len(pads))
+ self.assertEqual(default_pad,
+ portal.ERP5Site_getActiveKnowledgePadForUser(pads)[0].getObject())
+ manuallly_created_pad = knowledge_pad_module.newContent(portal_type='Knowledge Pad')
+ portal.ERP5Site_toggleActiveKnowledgePad(manuallly_created_pad.getRelativeUrl())
+ get_transaction().commit()
+ self.tic()
+ self.assertEqual('invisible', default_pad.getValidationState())
+
+ # check for Web context (i.e. Site/Section)
+ website = self.website
+ website.ERP5Site_createDefaultKnowledgePadListForUser(mode='web_front')
+ get_transaction().commit()
+ self.tic()
+ website_pads = website.ERP5Site_getKnowledgePadListForUser(mode='web_front')
+ self.assertEqual(1, len(website_pads))
+ self.assertEqual(website, website_pads[0].getPublicationSectionValue())
+
+ # depending on context we should have different list of pads for user
+ self.assertNotEqual(portal.ERP5Site_getKnowledgePadListForUser(),
+ website.ERP5Site_getKnowledgePadListForUser())
+
+ # check Web Section
+ pad_group = None
+ websection = self.websection
+ websection.ERP5Site_createDefaultKnowledgePadListForUser(mode='web_section',
+ default_pad_group = pad_group)
+ get_transaction().commit()
+ self.tic()
+ websection_pads = websection.ERP5Site_getKnowledgePadListForUser(mode='web_section',
+ default_pad_group = pad_group)
+ base_websection_pad, websection_pads = \
+ websection.WebSite_getActiveKnowledgePadForUser(websection_pads,
+ default_pad_group = pad_group)
+
+ # Check stick
+ websection.WebSection_stickKnowledgePad(
+ base_websection_pad.getRelativeUrl(), '')
+ get_transaction().commit()
+ self.tic()
+ websection_pads = websection.ERP5Site_getKnowledgePadListForUser(mode='web_section',
+ default_pad_group = pad_group)
+ current_websection_pad, websection_pads = \
+ websection.WebSite_getActiveKnowledgePadForUser(websection_pads,
+ default_pad_group = pad_group)
+ self.assertNotEqual(base_websection_pad.getObject(),
+ current_websection_pad.getObject())
+
+ # check unstick
+ websection.WebSection_unStickKnowledgePad(current_websection_pad.getRelativeUrl(), '')
+
+ websection_pads = websection.ERP5Site_getKnowledgePadListForUser(mode='web_section',
+ default_pad_group = pad_group)
+ current_websection_pad, websection_pads = \
+ websection.WebSite_getActiveKnowledgePadForUser(websection_pads,
+ default_pad_group = pad_group)
+ self.assertEqual(base_websection_pad.getObject(),
+ current_websection_pad.getObject())
+
+
+
+
+
+
+
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestGadgets))
+ return suite
More information about the Erp5-report
mailing list