This is an automated email from the ASF dual-hosted git repository.
adelbene pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
The following commit(s) were added to refs/heads/master by this push:
new 391226ac20 WICKET-7022 added condition to tell if we are inside a
regexp
391226ac20 is described below
commit 391226ac20d94d4ca512e7f8c7fc37cb8ece153c
Author: Andrea Del Bene <[email protected]>
AuthorDate: Fri Feb 24 17:38:09 2023 +0100
WICKET-7022 added condition to tell if we are inside a regexp
---
.../apache/wicket/core/util/string/JavaScriptStripper.java | 3 ++-
.../wicket/core/util/string/JavaScriptStripperTest.java | 13 +++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git
a/wicket-core/src/main/java/org/apache/wicket/core/util/string/JavaScriptStripper.java
b/wicket-core/src/main/java/org/apache/wicket/core/util/string/JavaScriptStripper.java
index bb57ce7683..8f7e4ae126 100644
---
a/wicket-core/src/main/java/org/apache/wicket/core/util/string/JavaScriptStripper.java
+++
b/wicket-core/src/main/java/org/apache/wicket/core/util/string/JavaScriptStripper.java
@@ -126,6 +126,7 @@ public class JavaScriptStripper
// char, which
// will be either '=' or '('. If it's
not, it's just a divide operator.
int idx = result.length() - 1;
+ String trimmedResult =
result.toString().trim();
while (idx > 0)
{
char tmp = result.charAt(idx);
@@ -135,7 +136,7 @@ public class JavaScriptStripper
continue;
}
if (tmp == '=' || tmp == '(' ||
tmp == '{' || tmp == ':' || tmp == ',' ||
- tmp == '[' || tmp ==
';' || tmp == '!')
+ tmp == '[' || tmp ==
';' || tmp == '!' || trimmedResult.endsWith("return"))
{
state = REG_EXP;
break;
diff --git
a/wicket-core/src/test/java/org/apache/wicket/core/util/string/JavaScriptStripperTest.java
b/wicket-core/src/test/java/org/apache/wicket/core/util/string/JavaScriptStripperTest.java
index e7df54695d..99d30cb6e6 100644
---
a/wicket-core/src/test/java/org/apache/wicket/core/util/string/JavaScriptStripperTest.java
+++
b/wicket-core/src/test/java/org/apache/wicket/core/util/string/JavaScriptStripperTest.java
@@ -16,13 +16,12 @@
*/
package org.apache.wicket.core.util.string;
-import org.apache.wicket.core.util.string.JavaScriptStripper;
-import org.junit.jupiter.api.Test;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.Test;
+
/**
* Tests {@link JavaScriptStripper}
*
@@ -87,9 +86,15 @@ class JavaScriptStripperTest
String after = new
JavaScriptStripper().stripCommentsAndWhitespace(before);
String expected = " attr: \n
/\\[((?:[\\w-]*:)?[\\w-]+)\\s*(?:([!^$*~|]?=)\\s*((['\"])([^\\4]*?)\\4|([^'\"][^\\]]*?)))?\\]/
after regex";
assertEquals(expected, after);
- System.out.println(after);
}
+ @Test
+ void regexpDoubleSlash()
+ {
+ String before =
"return/[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/gi.test(t);}}";
+ String after = new
JavaScriptStripper().stripCommentsAndWhitespace(before);
+ assertEquals(before, after);
+ }
/** */
@Test
void WICKET1806()