[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