You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by an...@apache.org on 2007/06/15 06:19:35 UTC

svn commit: r547520 - in /tapestry/tapestry4/trunk/tapestry-framework/src/js: tapestry/core.js tests/test_html.js

Author: andyhot
Date: Thu Jun 14 21:19:34 2007
New Revision: 547520

URL: http://svn.apache.org/viewvc?view=rev&rev=547520
Log:
more regexp fixes and (real-world) test. Input tags aren't expanded but most importantly we stop at the first closing tag - otherwise the matcher gets wicked...

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tests/test_html.js

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js?view=diff&rev=547520&r1=547519&r2=547520
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/core.js Thu Jun 14 21:19:34 2007
@@ -446,7 +446,7 @@
  */
 tapestry.html={
 
-    CompactElementRegexp:new RegExp('<([a-zA-Z]*)(.*?)/>'), // regexp for compact html elements
+    CompactElementRegexp:/<([a-zA-Z](?!nput)[a-zA-Z]*)([^>]*?)\/>/g, // regexp for compact html elements
     CompactElementReplacer:'<$1$2></$1>', // replace pattern for compact html elements
 	
     /**
@@ -557,10 +557,7 @@
 
 	_processCompactElements:function(htmlData)
  	{
-            while (htmlData.match(this.CompactElementRegexp)){                
-                htmlData = htmlData.replace(this.CompactElementRegexp, this.CompactElementReplacer);
-        }
-        return htmlData;
+            return htmlData.replace(this.CompactElementRegexp, this.CompactElementReplacer);        
  	}
 }
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tests/test_html.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tests/test_html.js?view=diff&rev=547520&r1=547519&r2=547520
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tests/test_html.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tests/test_html.js Thu Jun 14 21:19:34 2007
@@ -32,8 +32,37 @@
 }
 
 function test_html_processTextareas(){
-    var initial = "start<textarea id='2' rows=4/>";
-    var expected = "start<textarea id='2' rows=4></textarea>";
+    var initial = "start<textarea id='2' rows=4/>22<input type='text'/><textarea/><div id=1/>";
+    var expected = "start<textarea id='2' rows=4></textarea>22<input type='text'/><textarea></textarea><div id=1></div>";
+    
+    jum.assertEquals(expected, tapestry.html._processCompactElements(initial));
+    jum.assertEquals(expected + expected, 
+        tapestry.html._processCompactElements(initial+initial));
+}
+
+function test_html_processResponse(){
+    var initial = '<div id="editTopic"><form method="post" action="Topics,topicList.$Form.sdirect" id="Form"> '
+        +'<div style="display:none;" id="Formhidden"><input type="hidden" name="formids" value="topicName,shortDescriptiveText,descriptiveText,If,If_0,updateTopic" /> '
+        +'<input type="hidden" name="updateParts" value="list" /> <input type="hidden" name="updateParts" value="edit" /> <input type="hidden" name="reservedids" '
+        +'value="updateParts" /> <input type="hidden" name="submitmode" value="" /> <input type="hidden" name="submitname" value="" /> <input type="hidden" name="If" value="T" /> '
+        +'<input type="hidden" name="If_0" value="F" /> </div> Make the desired changes to this topic. <fieldset> <div> <label for="topicName" class="required">Topic Name</label> '
+        +'<input type="text" name="name" value="Uncategorized" id="tName" /> </div> <div> <label for="shortDescriptiveText" class="required">Short Description</label> '
+        +'<textarea name="shortDescriptiveText" id="shortDescriptiveText" cols="40" rows="4">Information</textarea> </div> <div> <label for="descriptiveText">Additional '
+        +'Description</label> <textarea name="descriptiveText" id="descriptiveText" cols="40" rows="4"/> </div> <div> <label for="pUrlField" class="required">Home '
+        +'Url</label> <input type="text" name="pUrlField" value="ba.org" id="pUrlField" size="40" /> Verified </div> <div></div> </fieldset> <div> '
+        +'<input type="submit" name="uTopic" id="uTopic" value="Save Changes"/> <!--input type="submit" jwcid="cancelTopic@Submit" '
+        +'listener="listener:doCancel" value="message:label.cancel-changes" async="true"/--></div> </form> </div>';
+    var expected = '<div id="editTopic"><form method="post" action="Topics,topicList.$Form.sdirect" id="Form"> '
+        +'<div style="display:none;" id="Formhidden"><input type="hidden" name="formids" value="topicName,shortDescriptiveText,descriptiveText,If,If_0,updateTopic" /> '
+        +'<input type="hidden" name="updateParts" value="list" /> <input type="hidden" name="updateParts" value="edit" /> <input type="hidden" name="reservedids" '
+        +'value="updateParts" /> <input type="hidden" name="submitmode" value="" /> <input type="hidden" name="submitname" value="" /> <input type="hidden" name="If" value="T" /> '
+        +'<input type="hidden" name="If_0" value="F" /> </div> Make the desired changes to this topic. <fieldset> <div> <label for="topicName" class="required">Topic Name</label> '
+        +'<input type="text" name="name" value="Uncategorized" id="tName" /> </div> <div> <label for="shortDescriptiveText" class="required">Short Description</label> '
+        +'<textarea name="shortDescriptiveText" id="shortDescriptiveText" cols="40" rows="4">Information</textarea> </div> <div> <label for="descriptiveText">Additional '
+        +'Description</label> <textarea name="descriptiveText" id="descriptiveText" cols="40" rows="4"></textarea> </div> <div> <label for="pUrlField" class="required">Home '
+        +'Url</label> <input type="text" name="pUrlField" value="ba.org" id="pUrlField" size="40" /> Verified </div> <div></div> </fieldset> <div> '
+        +'<input type="submit" name="uTopic" id="uTopic" value="Save Changes"/> <!--input type="submit" jwcid="cancelTopic@Submit" '
+        +'listener="listener:doCancel" value="message:label.cancel-changes" async="true"/--></div> </form> </div>';
     
     jum.assertEquals(expected, tapestry.html._processCompactElements(initial));
     jum.assertEquals(expected + expected,