[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