[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Content/ZPTPage/tests - __init__.py:1.2 testZPTPage.py:1.2
Jim Fulton
jim@zope.com
Mon, 10 Jun 2002 19:28:38 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Content/ZPTPage/tests
In directory cvs.zope.org:/tmp/cvs-serv17445/lib/python/Zope/App/OFS/Content/ZPTPage/tests
Added Files:
__init__.py testZPTPage.py
Log Message:
Merged Zope-3x-branch into newly forked Zope3 CVS Tree.
=== Zope3/lib/python/Zope/App/OFS/Content/ZPTPage/tests/__init__.py 1.1 => 1.2 ===
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (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.
+#
+##############################################################################
=== Zope3/lib/python/Zope/App/OFS/Content/ZPTPage/tests/testZPTPage.py 1.1 => 1.2 ===
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (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.
+#
+##############################################################################
+"""
+Basic tests for Page Templates used in content-space.
+
+$Id$
+"""
+
+import unittest
+
+from Zope.App.OFS.Content.ZPTPage.ZPTPage import ZPTPage
+
+# Wow, this is a lot of work. :(
+from Zope.ComponentArchitecture.tests.PlacelessSetup import PlacelessSetup
+from Zope.App.Traversing.Traverser import Traverser
+from Zope.App.Traversing.ITraverser import ITraverser
+from Zope.App.Traversing.DefaultTraversable import DefaultTraversable
+from Zope.App.Traversing.ITraversable import ITraversable
+from Zope.ComponentArchitecture.GlobalAdapterService import provideAdapter
+from Zope.ContextWrapper import Wrapper
+from Zope.Security.Checker import NamesChecker, defineChecker
+
+class Data(object):
+ def __init__(self, **kw):
+ self.__dict__.update(kw)
+
+
+
+class ZPTPageTests(PlacelessSetup, unittest.TestCase):
+
+ def setUp(self):
+ PlacelessSetup.setUp(self)
+ provideAdapter(None, ITraverser, Traverser)
+ provideAdapter(None, ITraversable, DefaultTraversable)
+ defineChecker(Data, NamesChecker(['URL', 'name']))
+
+ def test(self):
+ page = ZPTPage()
+ page.setSource(
+ '<html>'
+ '<head><title tal:content="options/title">blah</title></head>'
+ '<body>'
+ '<a href="foo" tal:attributes="href request/URL/1">'
+ '<span tal:replace="context/name">splat</span>'
+ '</a></body></html>'
+ )
+
+ page = Wrapper(page, Data(name='zope'))
+
+ out = page.render(Data(URL={'1': 'http://foo.com/'}),
+ title="Zope rules")
+ out = ' '.join(out.split())
+
+ self.assertEqual(
+ out,
+ '<html><head><title>Zope rules</title></head><body>'
+ '<a href="http://foo.com/">'
+ 'zope'
+ '</a></body></html>'
+ )
+
+def test_suite():
+ return unittest.makeSuite(ZPTPageTests)
+
+if __name__=='__main__':
+ unittest.TextTestRunner().run(test_suite())