WW-4043 Moves TestUtils into junit-plugin
diff --git a/core/src/test/java/org/apache/struts2/TestUtils.java b/core/src/test/java/org/apache/struts2/TestUtils.java
deleted file mode 100644
index 32f5630..0000000
--- a/core/src/test/java/org/apache/struts2/TestUtils.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.struts2;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.StringTokenizer;
-
-/**
- * Utility methods for test classes
- *
- */
-public class TestUtils {
- /**
- * normalizes a string so that strings generated on different platforms can be compared. any group of one or more
- * space, tab, \r, and \n characters are converted to a single space character
- *
- * @param obj the object to be normalized. normalize will perform its operation on obj.toString().trim() ;
- * @param appendSpace
- * @return the normalized string
- */
- public static String normalize(Object obj, boolean appendSpace) {
- StringTokenizer st =
- new StringTokenizer(obj.toString().trim(), " \t\r\n");
- StringBuilder buffer = new StringBuilder(128);
-
- while(st.hasMoreTokens()) {
- buffer.append(st.nextToken());
- }
-
- return buffer.toString();
- }
-
-
- public static String normalize(URL url) throws Exception {
- return normalize(readContent(url), true);
- }
- /**
- * Attempt to verify the contents of text against the contents of the URL specified. Performs a
- * trim on both ends
- *
- * @param url the HTML snippet that we want to validate against
- * @throws Exception if the validation failed
- */
- public static boolean compare(URL url, String text)
- throws Exception {
- /**
- * compare the trimmed values of each buffer and make sure they're equivalent. however, let's make sure to
- * normalize the strings first to account for line termination differences between platforms.
- */
- String writerString = TestUtils.normalize(text, true);
- String bufferString = TestUtils.normalize(readContent(url), true);
-
- return bufferString.equals(writerString);
- }
-
-
-
- public static String readContent(URL url)
- throws Exception {
- if(url == null) {
- throw new Exception("unable to verify a null URL");
- }
-
- StringBuilder buffer = new StringBuilder(128);
- try (InputStream in = url.openStream()) {
- byte[] buf = new byte[4096];
- int nbytes;
-
- while ((nbytes = in.read(buf)) > 0) {
- buffer.append(new String(buf, 0, nbytes));
- }
- }
-
- return buffer.toString();
- }
-}
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/DefaultJSONWriterTest.java b/plugins/json/src/test/java/org/apache/struts2/json/DefaultJSONWriterTest.java
index 1f34921..05e3280 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/DefaultJSONWriterTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/DefaultJSONWriterTest.java
@@ -21,6 +21,7 @@
import org.apache.struts2.StrutsTestCase;
import org.apache.struts2.json.annotations.JSONFieldBridge;
import org.apache.struts2.json.bridge.StringBridge;
+import org.apache.struts2.util.TestUtils;
import org.junit.Test;
import java.net.URL;
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
index 9f6b76f..5b9ad8b 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONInterceptorTest.java
@@ -24,6 +24,7 @@
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.StrutsTestCase;
+import org.apache.struts2.util.TestUtils;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONPopulatorTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONPopulatorTest.java
index b2101c6..dd6fa72 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/JSONPopulatorTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONPopulatorTest.java
@@ -27,6 +27,7 @@
import java.util.Map;
import junit.framework.TestCase;
+import org.apache.struts2.util.TestUtils;
public class JSONPopulatorTest extends TestCase {
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java
index 5062103..5f6aef7 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONResultTest.java
@@ -35,10 +35,9 @@
import javax.servlet.http.HttpServletResponse;
-import org.aopalliance.intercept.MethodInterceptor;
-import org.aopalliance.intercept.MethodInvocation;
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.StrutsTestCase;
+import org.apache.struts2.util.TestUtils;
import org.springframework.aop.framework.ProxyFactory;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/JSONValidationInterceptorTest.java b/plugins/json/src/test/java/org/apache/struts2/json/JSONValidationInterceptorTest.java
index a4fd58d..d0bd903 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/JSONValidationInterceptorTest.java
+++ b/plugins/json/src/test/java/org/apache/struts2/json/JSONValidationInterceptorTest.java
@@ -32,6 +32,7 @@
import org.apache.struts2.StrutsTestCase;
import org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor;
import org.apache.struts2.interceptor.validation.SkipValidation;
+import org.apache.struts2.util.TestUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
diff --git a/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java b/plugins/junit/src/main/java/org/apache/struts2/util/TestUtils.java
similarity index 71%
rename from plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
rename to plugins/junit/src/main/java/org/apache/struts2/util/TestUtils.java
index f48e07b..131f009 100644
--- a/plugins/json/src/test/java/org/apache/struts2/json/TestUtils.java
+++ b/plugins/junit/src/main/java/org/apache/struts2/util/TestUtils.java
@@ -16,13 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.struts2.json;
+package org.apache.struts2.util;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Assert;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -39,21 +40,16 @@
* normalizes a string so that strings generated on different platforms can
* be compared. any group of one or more space, tab, \r, and \n characters
* are converted to a single space character
- *
- * @param obj
- * the object to be normalized. normalize will perform its
- * operation on obj.toString().trim() ;
- * @param appendSpace
+ *
+ * @param json the JSON to be normalized. normalize will trim before starting
+ * @param removeSpaces removes white spaces from the JSON or not
* @return the normalized string
*/
- public static String normalize(Object obj, boolean appendSpace) {
- Matcher matcher = WHITESPACE_BLOCK.matcher(StringUtils.trim(obj.toString()));
- /*
- FIXME: appendSpace has been always ignored, uncommenting the following line will cause dozen of test fails
- if (appendSpace) {
- return matcher.replaceAll(" ");
+ public static String normalize(String json, boolean removeSpaces) {
+ Matcher matcher = WHITESPACE_BLOCK.matcher(StringUtils.trim(json));
+ if (removeSpaces) {
+ return matcher.replaceAll("").replaceAll(" ", "");
}
- */
return matcher.replaceAll("");
}
@@ -64,17 +60,15 @@
/**
* Attempt to verify the contents of text against the contents of the URL
* specified. Performs a trim on both ends
- *
- * @param url
- * the HTML snippet that we want to validate against
- * @throws Exception
- * if the validation failed
+ *
+ * @param url the HTML snippet that we want to validate against
+ * @throws Exception if the validation failed
*/
public static boolean compare(URL url, String text) throws Exception {
- /**
- * compare the trimmed values of each buffer and make sure they're
- * equivalent. however, let's make sure to normalize the strings first
- * to account for line termination differences between platforms.
+ /*
+ compare the trimmed values of each buffer and make sure they're
+ equivalent. however, let's make sure to normalize the strings first
+ to account for line termination differences between platforms.
*/
String writerString = TestUtils.normalize(text, true);
String bufferString = TestUtils.normalize(readContent(url), true);
@@ -85,13 +79,13 @@
public static void assertEquals(URL source, String text) throws Exception {
String writerString = TestUtils.normalize(text, true);
String bufferString = TestUtils.normalize(readContent(source), true);
- Assert.assertEquals(bufferString,writerString);
+ Assert.assertEquals(bufferString, writerString);
}
public static String readContent(URL url) throws Exception {
if (url == null)
throw new Exception("unable to verify a null URL");
- return IOUtils.toString(url.openStream());
+ return IOUtils.toString(url.openStream(), StandardCharsets.UTF_8);
}
}