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

nobody at svn.erp5.org nobody at svn.erp5.org
Sun Jul 6 16:19:06 CEST 2008


Author: yo
Date: Sun Jul  6 16:19:06 2008
New Revision: 22295

URL: http://svn.erp5.org?rev=22295&view=rev
Log:
Add a test for skin selection.

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=22295&r1=22294&r2=22295&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5Web.py (original)
+++ erp5/trunk/products/ERP5/tests/testERP5Web.py Sun Jul  6 16:19:06 2008
@@ -37,6 +37,7 @@
 from Testing import ZopeTestCase
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
 from Products.ERP5Type.tests.utils import DummyLocalizer
+from Products.ERP5Type.tests.utils import createZODBPythonScript
 
 LANGUAGE_LIST = ('en', 'fr', 'de', 'bg',)
 
@@ -766,6 +767,65 @@
       self.assertEquals(doc.aq_parent, websection)
       self.assertEquals(doc.aq_parent.aq_parent, website)
 
+  def test_13_WebSiteSkinSelection(self, quiet=quiet, run=run_all_test):
+    """Test skin selection through a Web Site.
+    Check if a Web Site can change a skin selection based on a property.
+    """
+    if not run: return
+    if not quiet:
+      message = '\ntest_13_WebSiteSkinSelection'
+      ZopeTestCase._print(message)    
+
+    portal = self.getPortal()
+    ps = portal.portal_skins
+    website = self.setupWebSite()
+
+    # First, make sure that we use the default skin selection.
+    portal.changeSkin(ps.getDefaultSkin())
+    get_transaction().commit()
+    self.tic()
+
+    # Make some skin stuff.
+    if ps._getOb('test_erp5_web', None) is not None:
+      ps.manage_delObjects(['test_erp5_web'])
+
+    addFolder = ps.manage_addProduct['OFSP'].manage_addFolder
+    addFolder(id='test_erp5_web')
+
+    if ps.getSkinPath('Test ERP5 Web') is not None:
+      ps.manage_skinLayers(del_skin=1, chosen=('Test ERP5 Web',))
+      
+    path = ps.getSkinPath(ps.getDefaultSkin())
+    self.assertNotEquals(path, None)
+    ps.manage_skinLayers(add_skin=1, skinname='Test ERP5 Web',
+            skinpath=['test_erp5_web'] + path.split(','))
+
+    # Now we need skins which don't conflict with any other.
+    createZODBPythonScript(ps.erp5_web,
+            'WebSite_test_13_WebSiteSkinSelection',
+            '', 'return "foo"')
+    createZODBPythonScript(ps.test_erp5_web,
+            'WebSite_test_13_WebSiteSkinSelection',
+            '', 'return "bar"')
+
+    get_transaction().commit()
+    self.tic()
+
+    path = website.absolute_url_path() + '/WebSite_test_13_WebSiteSkinSelection'
+    request = portal.REQUEST
+
+    # With the default skin.
+    request['PARENTS'] = [self.app]
+    self.assertEquals(request.traverse(path)(), 'foo')
+
+    # With the test skin.
+    website.setSkinSelectionName('Test ERP5 Web')
+    get_transaction().commit()
+    self.tic()
+
+    request['PARENTS'] = [self.app]
+    self.assertEquals(request.traverse(path)(), 'bar')
+
 class TestERP5WebWithSimpleSecurity(ERP5TypeTestCase):
   """
   Test for erp5_web with simple security.




More information about the Erp5-report mailing list