[z3-checkins] r36314 - in z3/deliverance/trunk/deliverance: . test-data

ltucker at codespeak.net ltucker at codespeak.net
Mon Jan 8 20:19:08 CET 2007


Author: ltucker
Date: Mon Jan  8 20:19:05 2007
New Revision: 36314

Added:
   z3/deliverance/trunk/deliverance/test-data/test_inline_javascript.xml
Modified:
   z3/deliverance/trunk/deliverance/wsgimiddleware.py
   z3/deliverance/trunk/deliverance/xslt.py
Log:
fix inline javascript with braces in xslt, remove print statements

Added: z3/deliverance/trunk/deliverance/test-data/test_inline_javascript.xml
==============================================================================
--- (empty file)
+++ z3/deliverance/trunk/deliverance/test-data/test_inline_javascript.xml	Mon Jan  8 20:19:05 2007
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deliverance-test-suite>
+
+<!-- tests copy of some inline javascript --> 
+<deliverance-test>
+  <rules xmlns="http://www.plone.org/deliverance">
+    <copy theme="//body" content="//body/*" />
+  </rules>
+
+  <theme base="http://example.com"> 
+     <html><head><title>Blah</title></head><body>Dummy Content</body></html>
+  </theme>
+
+  <content> 
+     <html><head></head><body>
+<form ACTION="http://lb.bcentral.com/ex/manage/subscriberprefs.aspx" target="popupwindow" METHOD="POST" onsubmit="window.open('http://lb.bcentral.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+	
+</form>
+
+	<p><span class="new">NEW: </span>Daily email digests</p>
+<form action="http://www.feedburner.com/fb/a/emailverify" method="post" target="popupwindow" onsubmit="window.open('http://www.feedburner.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+</form>
+
+<form id="subscribeForm" method="post" target="popupwindow">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	
+	<input type="radio" name="subscription" value="newsletter" />
+	<input type="radio" name="subscription" value="digest" />
+
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="subscribe(this.form); return false;" value="Go" />	
+</form>
+</body>
+</html>
+  </content>
+ 
+  <output>
+     <html><head><title>Blah</title></head>
+     <body>
+
+
+<form ACTION="http://lb.bcentral.com/ex/manage/subscriberprefs.aspx" target="popupwindow" METHOD="POST" onsubmit="window.open('http://lb.bcentral.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+	
+</form>
+
+	<p><span class="new">NEW: </span>Daily email digests</p>
+<form action="http://www.feedburner.com/fb/a/emailverify" method="post" target="popupwindow" onsubmit="window.open('http://www.feedburner.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+</form>
+
+<form id="subscribeForm" method="post" target="popupwindow">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	
+	<input type="radio" name="subscription" value="newsletter" />
+	<input type="radio" name="subscription" value="digest" />
+
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="subscribe(this.form); return false;" value="Go" />	
+</form>
+     </body></html>
+  </output> 
+</deliverance-test>
+
+<!-- tests some inline javascript in the theme --> 
+<deliverance-test>
+  <rules xmlns="http://www.plone.org/deliverance">
+    <copy theme="//body" content="//body/node()" />
+  </rules>
+
+  <content >
+     <html><head><title>Blah</title></head><body>Content</body></html>
+  </content>
+
+  <theme base="http://example.com"> 
+     <html><head></head><body>
+<form ACTION="http://lb.bcentral.com/ex/manage/subscriberprefs.aspx" target="popupwindow" METHOD="POST" onsubmit="window.open('http://lb.bcentral.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+	
+</form>
+
+	<p><span class="new">NEW: </span>Daily email digests</p>
+<form action="http://www.feedburner.com/fb/a/emailverify" method="post" target="popupwindow" onsubmit="window.open('http://www.feedburner.com', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="if(this.form.email.value == 'Your email') { alert('Please enter your email'); return false; }" value="Go" />	
+</form>
+
+<form id="subscribeForm" method="post" target="popupwindow">
+	<input type="text" value="Your email" name="email" style="width:134px;" class="text" onblur="if(this.value=='') this.value='Your email';" onfocus="if(this.value=='Your email') this.value='';" />
+
+	<input type="hidden" name="customerid" value="58965" />
+	
+	<input type="hidden" value="http://feeds.feedburner.com/~e?ffid=357498" name="url"/>
+
+	<input type="hidden" value="StreetsBlog" name="title"/>
+	
+	<input type="radio" name="subscription" value="newsletter" />
+	<input type="radio" name="subscription" value="digest" />
+
+	<input type="image" src="http://www.streetsblog.org/wp-content/themes/streetsblog/images/go.gif" onclick="subscribe(this.form); return false;" value="Go" />	
+</form>
+</body>
+</html>
+  </theme>
+ 
+  <output>
+     <html><head></head>
+     <body>
+       Content
+     </body></html>
+  </output> 
+</deliverance-test>
+
+
+
+</deliverance-test-suite>

Modified: z3/deliverance/trunk/deliverance/wsgimiddleware.py
==============================================================================
--- z3/deliverance/trunk/deliverance/wsgimiddleware.py	(original)
+++ z3/deliverance/trunk/deliverance/wsgimiddleware.py	Mon Jan  8 20:19:05 2007
@@ -258,7 +258,6 @@
         by using the wrapped WSGI application 
         """
 
-        print "get_internal_resource('%s')" % uri
         
         if 'paste.recursive.include' in in_environ:
             environ = in_environ['paste.recursive.include'].original_environ.copy()
@@ -279,14 +278,12 @@
             environ['QUERY_STRING'] = 'notheme'
 
         if 'HTTP_ACCEPT_ENCODING' in environ:
-            print "Knocking out ACCEPT_ENCODING: (%s)" % environ['HTTP_ACCEPT_ENCODING']
 	    environ['HTTP_ACCEPT_ENCODING'] = '' 
 
         if 'paste.recursive.include' in in_environ:
             # Try to do the redirect this way...
             includer = in_environ['paste.recursive.include']
             res = includer(uri,environ)
-            print "did paste.recursive.include for %s: [%s]" % (uri,res.body)
             return res.body
 
 

Modified: z3/deliverance/trunk/deliverance/xslt.py
==============================================================================
--- z3/deliverance/trunk/deliverance/xslt.py	(original)
+++ z3/deliverance/trunk/deliverance/xslt.py	Mon Jan  8 20:19:05 2007
@@ -72,6 +72,7 @@
 
         self.fixup_links(theme_copy, theme_uri)
         self.xsl_escape_comments(theme_copy)
+        self.avt_escape(theme_copy)
 
         self.resolve_uri = reference_resolver
         if self.resolve_uri:
@@ -466,5 +467,18 @@
                 del(rule.attrib[self.RULE_MOVE_KEY]) # just process it normally
             return
 
+    def avt_escape(self,elt): 
+        """
+        replaces all instances of { or } with {{ and }} to avoid 
+        being interpreted as an Attribute Value Template by XSLT 
+        """
+        
+        for (k,v) in elt.attrib.items():
+            escaped = v.replace('{','{{')
+            escaped = escaped.replace('}','}}')
+            elt.attrib[k] = escaped 
+
+        for child in elt: 
+            self.avt_escape(child)
 
         


More information about the z3-checkins mailing list