[Zope-Checkins] SVN: Zope/branches/z4-zmi/ Make a branch to perform some preparations for the separate ZMI package

2011-11-16 Thread Christian Theune
Log message for revision 123364:
  Make a branch to perform some preparations for the separate ZMI package
  

Changed:
  A   Zope/branches/z4-zmi/

-=-
___
Zope-Checkins maillist  -  Zope-Checkins@zope.org
https://mail.zope.org/mailman/listinfo/zope-checkins


[Zope-Checkins] SVN: Zope/branches/z4-zmi/ re-enable the ++skin++ traverser

2011-11-16 Thread Christian Theune
Log message for revision 123366:
  re-enable the ++skin++ traverser
  

Changed:
  U   Zope/branches/z4-zmi/doc/CHANGES.rst
  A   Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.py
  A   Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.txt
  A   Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.zcml
  A   Zope/branches/z4-zmi/src/Products/Five/browser/tests/test_skin.py
  U   Zope/branches/z4-zmi/src/Zope2/App/traversing.zcml

-=-
Modified: Zope/branches/z4-zmi/doc/CHANGES.rst
===
--- Zope/branches/z4-zmi/doc/CHANGES.rst2011-11-16 10:33:38 UTC (rev 
123365)
+++ Zope/branches/z4-zmi/doc/CHANGES.rst2011-11-16 10:34:17 UTC (rev 
123366)
@@ -124,15 +124,6 @@
   `lib/python` and `Products` from the default. You can continue to manually
   add these back.
 
-- Removed the rarely used support for the `++skin++` traverser. You can enable
-  it in your own applications by defining::
-
-adapter
-  name=skin
-  for=* zope.publisher.interfaces.IRequest
-  provides=zope.traversing.interfaces.ITraversable
-  factory=zope.traversing.namespace.skin /
-
 - Five.browser: Marked `processInputs` and `setPageEncoding` as deprecated.
   `processInputs` was replaced by the `postProcessInputs` request method and
   the charset negotiation done by `setPageEncoding` was never fully supported.

Copied: Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.py (from rev 
122055, Zope/trunk/src/Products/Five/browser/tests/skin.py)
===
--- Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.py
(rev 0)
+++ Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.py
2011-11-16 10:34:17 UTC (rev 123366)
@@ -0,0 +1,20 @@
+##
+#
+# Copyright (c) 2006 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED AS IS AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##
+Test skins
+
+
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+
+class ITestSkin(IDefaultBrowserLayer):
+pass

Copied: Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.txt (from rev 
122055, Zope/trunk/src/Products/Five/browser/tests/skin.txt)
===
--- Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.txt   
(rev 0)
+++ Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.txt   
2011-11-16 10:34:17 UTC (rev 123366)
@@ -0,0 +1,54 @@
+Test layer and skin support
+===
+
+Let's register a test layer and test skin:
+
+   import Products.Five.browser.tests
+   from Zope2.App import zcml
+   zcml.load_config(configure.zcml, Products.Five)
+   zcml.load_config(skin.zcml, package=Products.Five.browser.tests)
+
+Let's add a test object that we'll access the test page from:
+
+   from Products.Five.tests.testing.simplecontent import 
manage_addSimpleContent
+   manage_addSimpleContent(self.folder, 'testoid', 'Testoid')
+
+The view was registered on a different layer than 'default', that's
+why we can't access it straight away:
+
+   print http(r
+  ... GET /test_folder_1_/testoid/eagle.html HTTP/1.1
+  ... )
+  HTTP/1.1 404 Not Found
+  ...
+
+It works when we explicitly use the skin that includes that layer:
+
+   print http(r
+  ... GET /test_folder_1_/testoid/++skin++TestSkin/eagle.html HTTP/1.1
+  ... )
+  HTTP/1.1 200 OK
+  ...
+  The eagle has landed
+
+Or when we make that skin the default skin:
+
+   zcml.load_string('''
+  ...   browser:defaultSkin
+  ...   xmlns:browser=http://namespaces.zope.org/browser;
+  ...   name=TestSkin /
+  ... ''')
+
+   print http(r
+  ... GET /test_folder_1_/testoid/eagle.html HTTP/1.1
+  ... )
+  HTTP/1.1 200 OK
+  ...
+  The eagle has landed
+
+
+Clean up
+
+
+   from zope.component.testing import tearDown
+   tearDown()

Copied: Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.zcml (from 
rev 122055, Zope/trunk/src/Products/Five/browser/tests/skin.zcml)
===
--- Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.zcml  
(rev 0)
+++ Zope/branches/z4-zmi/src/Products/Five/browser/tests/skin.zcml  
2011-11-16 10:34:17 UTC (rev 123366)
@@ -0,0 +1,23 @@
+configure xmlns=http://namespaces.zope.org/zope;
+