[z3-checkins] r5752 - in z3/Five/branch/dc-experiments: . tests
tests/products/FiveTest
dreamcatcher at codespeak.net
dreamcatcher at codespeak.net
Wed Jul 28 16:50:36 MEST 2004
Author: dreamcatcher
Date: Wed Jul 28 16:50:35 2004
New Revision: 5752
Added:
z3/Five/branch/dc-experiments/tests/products/FiveTest/parakeet.pt (contents, props changed)
Modified:
z3/Five/branch/dc-experiments/browser.py
z3/Five/branch/dc-experiments/resource.py
z3/Five/branch/dc-experiments/tests/products/FiveTest/bird.pt
z3/Five/branch/dc-experiments/tests/products/FiveTest/configure.zcml
z3/Five/branch/dc-experiments/tests/test_five.py
Log:
Add a test for urls of resources when accessed through zpt.
Modified: z3/Five/branch/dc-experiments/browser.py
==============================================================================
--- z3/Five/branch/dc-experiments/browser.py (original)
+++ z3/Five/branch/dc-experiments/browser.py Wed Jul 28 16:50:35 2004
@@ -35,7 +35,7 @@
InitializeClass(BrowserView)
-class AbsoluteURL:
+class AbsoluteURL(BrowserView):
"""An adapter for Zope3-style absolute_url
view using Zope2 methods
"""
Modified: z3/Five/branch/dc-experiments/resource.py
==============================================================================
--- z3/Five/branch/dc-experiments/resource.py (original)
+++ z3/Five/branch/dc-experiments/resource.py Wed Jul 28 16:50:35 2004
@@ -41,7 +41,7 @@
def __call__(self):
name = self.__name__
- container = aq_parent(self)
+ container = self.__parent__
url = str(getViewProviding(container, IAbsoluteURL, self.request))
if not '++resource++' in url:
Modified: z3/Five/branch/dc-experiments/tests/products/FiveTest/bird.pt
==============================================================================
--- z3/Five/branch/dc-experiments/tests/products/FiveTest/bird.pt (original)
+++ z3/Five/branch/dc-experiments/tests/products/FiveTest/bird.pt Wed Jul 28 16:50:35 2004
@@ -1 +1 @@
-<html metal:define-macro="birdmacro"><head><title>bird macro</title></head><body>Color: <metal:block define-slot="color" /></body></html>
+<html metal:define-macro="birdmacro"><head><title>bird macro</title></head><body>Color: <metal:block define-slot="color" /><metal:block define-slot="birdinfo" /></body></html>
Modified: z3/Five/branch/dc-experiments/tests/products/FiveTest/configure.zcml
==============================================================================
--- z3/Five/branch/dc-experiments/tests/products/FiveTest/configure.zcml (original)
+++ z3/Five/branch/dc-experiments/tests/products/FiveTest/configure.zcml Wed Jul 28 16:50:35 2004
@@ -170,6 +170,14 @@
permission="zope2.ViewManagementScreens"
/>
+ <browser:page
+ for=".interfaces.ISimpleContent"
+ class=".browser.SimpleContentView"
+ template="parakeet.pt"
+ name="parakeet.html"
+ permission="zope2.ViewManagementScreens"
+ />
+
<!-- a publicly accessible page, attribute, template, template/class -->
<browser:page
Added: z3/Five/branch/dc-experiments/tests/products/FiveTest/parakeet.pt
==============================================================================
--- (empty file)
+++ z3/Five/branch/dc-experiments/tests/products/FiveTest/parakeet.pt Wed Jul 28 16:50:35 2004
@@ -0,0 +1 @@
+<html metal:use-macro="context/@@fivetest_macros/birdmacro"><head><title>bird macro</title></head><body><metal:block fill-slot="color">green</metal:block><metal:block fill-slot="birdinfo"><img alt="" src="" tal:attributes="src context/++resource++pattern.png" /></metal:block></body></html>
Modified: z3/Five/branch/dc-experiments/tests/test_five.py
==============================================================================
--- z3/Five/branch/dc-experiments/tests/test_five.py (original)
+++ z3/Five/branch/dc-experiments/tests/test_five.py Wed Jul 28 16:50:35 2004
@@ -1,9 +1,10 @@
import os, sys
-import glob
if __name__ == '__main__':
execfile(os.path.join(sys.path[0], 'framework.py'))
+import re
+import glob
import unittest
from Testing import ZopeTestCase
from Testing.ZopeTestCase.functional import Functional
@@ -30,6 +31,10 @@
glob.glob('%s/[a-z]*.py' % _prefix) +
glob.glob('%s/*.css' % _prefix))]
+def normalize_html(s):
+ s = re.sub(r"[ \t\n]+", "", s)
+ return s
+
class FiveTestCase(ZopeTestCase.ZopeTestCase):
def afterSetUp(self):
@@ -96,6 +101,22 @@
view = self.folder.unrestrictedTraverse('testoid/flamingo2.html')
self.assertEquals(u'<p>Hello world</p>\n', view())
+ def test_template_view_resource_traversal(self):
+ view = self.folder.unrestrictedTraverse('testoid/parakeet.html')
+ expected = """\
+ <html>
+ <head>
+ <title>bird macro</title>
+ </head>
+ <body>
+ Color: green
+ <img alt="" src="http://nohost/test_folder_1_/testoid/++resource++pattern.png" />
+ </body>
+ </html>
+ """
+ expected = normalize_html(expected)
+ self.assertEquals(expected, normalize_html(view()))
+
def test_view_backwards_compatibility(self):
old_view = self.folder.unrestrictedTraverse('testoid/direct')
self.assertEquals('Direct traversal worked', old_view())
More information about the z3-checkins
mailing list