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.rst 2011-11-16 10:33:38 UTC (rev 123365) +++ Zope/branches/z4-zmi/doc/CHANGES.rst 2011-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" + xmlns:meta="http://namespaces.zope.org/meta" + xmlns:browser="http://namespaces.zope.org/browser"> + + <!-- make the zope2.Public permission work --> + <meta:redefinePermission from="zope2.Public" to="zope.Public" /> + + <interface + interface=".skin.ITestSkin" + type="zope.publisher.interfaces.browser.IBrowserSkinType" + name="TestSkin" + /> + + <browser:page + for="Products.Five.tests.testing.simplecontent.ISimpleContent" + class=".pages.SimpleView" + attribute="eagle" + name="eagle.html" + permission="zope2.Public" + layer=".skin.ITestSkin" + /> + +</configure> Copied: Zope/branches/z4-zmi/src/Products/Five/browser/tests/test_skin.py (from rev 122055, Zope/trunk/src/Products/Five/browser/tests/test_skin.py) =================================================================== --- Zope/branches/z4-zmi/src/Products/Five/browser/tests/test_skin.py (rev 0) +++ Zope/branches/z4-zmi/src/Products/Five/browser/tests/test_skin.py 2011-11-16 10:34:17 UTC (rev 123366) @@ -0,0 +1,20 @@ +############################################################################## +# +# Copyright (c) 2005 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 browser pages +""" + +def test_suite(): + from Testing.ZopeTestCase import FunctionalDocFileSuite + return FunctionalDocFileSuite('skin.txt', + package='Products.Five.browser.tests') Modified: Zope/branches/z4-zmi/src/Zope2/App/traversing.zcml =================================================================== --- Zope/branches/z4-zmi/src/Zope2/App/traversing.zcml 2011-11-16 10:33:38 UTC (rev 123365) +++ Zope/branches/z4-zmi/src/Zope2/App/traversing.zcml 2011-11-16 10:34:17 UTC (rev 123366) @@ -38,6 +38,13 @@ /> <adapter + name="skin" + for="* zope.publisher.interfaces.IRequest" + provides="zope.traversing.interfaces.ITraversable" + factory="zope.traversing.namespace.skin" + /> + + <adapter name="resource" for="* zope.publisher.interfaces.IRequest" provides="zope.traversing.interfaces.ITraversable" _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins