Author: jcompagner
Date: Wed May 14 13:03:51 2008
New Revision: 656395

URL: http://svn.apache.org/viewvc?rev=656395&view=rev
Log:
WICKET-987 special done for matej!

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/JavascriptStripperTest.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java?rev=656395&r1=656394&r2=656395&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/string/JavascriptStripper.java
 Wed May 14 13:03:51 2008
@@ -76,7 +76,7 @@
        public static String stripCommentsAndWhitespace(String original)
        {
                // let's be optimistic
-               StringBuffer result = new StringBuffer(original.length() / 2);
+               AppendingStringBuffer result = new 
AppendingStringBuffer(original.length() / 2);
                int state = REGULAR_TEXT;
 
                for (int i = 0; i < original.length(); ++i)
@@ -113,16 +113,16 @@
                                        // Work out if it's a regular 
expression by finding the previous non-whitespace
                                        // char, which
                                        // will be either '=' or '('. If it's 
not, it's just a divide operator.
-                                       int idx = i - 1;
+                                       int idx = result.length() - 1;
                                        while (idx > 0)
                                        {
-                                               char tmp = original.charAt(idx);
+                                               char tmp = result.charAt(idx);
                                                if (Character.isWhitespace(tmp))
                                                {
                                                        idx--;
                                                        continue;
                                                }
-                                               if (tmp == '=' || tmp == '(')
+                                               if (tmp == '=' || tmp == '(' || 
tmp == '{' || tmp == ':' || tmp == ',')
                                                {
                                                        state = REG_EXP;
                                                        break;

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/JavascriptStripperTest.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/JavascriptStripperTest.java?rev=656395&r1=656394&r2=656395&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/JavascriptStripperTest.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/string/JavascriptStripperTest.java
 Wed May 14 13:03:51 2008
@@ -27,44 +27,47 @@
 {
        public void testUNIXWICKET501()
        {
-               String s = JavascriptStripper
-                               .stripCommentsAndWhitespace("    // Handle the 
common XPath // expression\n    if ( !t.indexOf(\"//\") ) {");
+               String s = JavascriptStripper.stripCommentsAndWhitespace("    
// Handle the common XPath // expression\n    if ( !t.indexOf(\"//\") ) {");
                assertEquals("\n\nif ( !t.indexOf(\"//\") ) {", s);
        }
 
        public void testDOSWICKET501()
        {
-               String s = JavascriptStripper
-                               .stripCommentsAndWhitespace("    // Handle the 
common XPath // expression\r\n    if ( !t.indexOf(\"//\") ) {");
+               String s = JavascriptStripper.stripCommentsAndWhitespace("    
// Handle the common XPath // expression\r\n    if ( !t.indexOf(\"//\") ) {");
                assertEquals("\n\nif ( !t.indexOf(\"//\") ) {", s);
        }
 
        public void testMACWICKET501()
        {
-               String s = JavascriptStripper
-                               .stripCommentsAndWhitespace("    // Handle the 
common XPath // expression\r    if ( !t.indexOf(\"//\") ) {");
+               String s = JavascriptStripper.stripCommentsAndWhitespace("    
// Handle the common XPath // expression\r    if ( !t.indexOf(\"//\") ) {");
                assertEquals("\n\nif ( !t.indexOf(\"//\") ) {", s);
        }
 
        public void testRegexp()
        {
-               String s = JavascriptStripper
-                               .stripCommentsAndWhitespace("    t = 
jQuery.trim(t).replace( /^\\/\\//i, \"\" );");
+               String s = JavascriptStripper.stripCommentsAndWhitespace("    t 
= jQuery.trim(t).replace( /^\\/\\//i, \"\" );");
                assertEquals("\nt = jQuery.trim(t).replace( /^\\/\\//i, \"\" 
);", s);
        }
 
        public void testRegexp2()
        {
-               String s = JavascriptStripper
-                               
.stripCommentsAndWhitespace("foo.replace(/\"//*strip me*/, \"\"); // strip 
me\rdoFoo();");
+               String s = 
JavascriptStripper.stripCommentsAndWhitespace("foo.replace(/\"//*strip me*/, 
\"\"); // strip me\rdoFoo();");
                assertEquals("foo.replace(/\"/, \"\"); doFoo();", s);
        }
 
        public void testRegexp3()
        {
-               String s = JavascriptStripper
-                               .stripCommentsAndWhitespace("parseFloat( 
elem.filter.match(/alpha\\(opacity=(.*)\\)/)[1] ) / 100 : 1;\r//foo");
+               String s = 
JavascriptStripper.stripCommentsAndWhitespace("parseFloat( 
elem.filter.match(/alpha\\(opacity=(.*)\\)/)[1] ) / 100 : 1;\r//foo");
                assertEquals("parseFloat( 
elem.filter.match(/alpha\\(opacity=(.*)\\)/)[1] ) / 100 : 1;\r",
-                               s);
+                       s);
+       }
+
+       public void testRegexp4()
+       {
+               String before = " attr: /**/ //xyz\n 
/\\[((?:[\\w-]*:)?[\\w-]+)\\s*(?:([!^$*~|]?=)\\s*((['\"])([^\\4]*?)\\4|([^'\"][^\\]]*?)))?\\]/
    after     regex";
+               String after = 
JavascriptStripper.stripCommentsAndWhitespace(before);
+               String expected = " attr:   
/\\[((?:[\\w-]*:)?[\\w-]+)\\s*(?:([!^$*~|]?=)\\s*((['\"])([^\\4]*?)\\4|([^'\"][^\\]]*?)))?\\]/\nafter\nregex";
+               assertEquals(expected, after);
+               System.out.println(after);
        }
 }


Reply via email to