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);
}
}