From bb6c18607882ea38cb9636e003d96eb61be28601 Mon Sep 17 00:00:00 2001 From: Yasser Zamani Date: Thu, 20 Jan 2022 02:17:05 +0330 Subject: [PATCH] fix test for jdk8+ --- .../struts2/views/jsp/AbstractUITagTest.java | 42 +++++++++++-------- .../struts2/views/jsp/ui/TextfieldTest.java | 3 +- .../struts2/views/jsp/ui/Textfield-5jdk8.txt | 4 ++ 3 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 core/src/test/resources/org/apache/struts2/views/jsp/ui/Textfield-5jdk8.txt diff --git a/core/src/test/java/org/apache/struts2/views/jsp/AbstractUITagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/AbstractUITagTest.java index 2cde3d7f6..66112577b 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/AbstractUITagTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/AbstractUITagTest.java @@ -24,6 +24,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.commons.beanutils.BeanUtils; import org.apache.struts2.ServletActionContext; import org.apache.struts2.views.jsp.ui.AbstractUITag; +import org.fest.assertions.Assertions; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; @@ -213,24 +214,28 @@ public abstract class AbstractUITagTest extends AbstractTagTest { * Attempt to verify the contents of this.writer against the contents of the URL specified. verify() performs a * trim on both ends * - * @param url the HTML snippet that we want to validate against + * @param urls the HTML snippets that we want to validate against any of them * @throws Exception if the validation failed */ - public void verify(URL url) throws Exception { - if (url == null) { - fail("unable to verify a null URL"); - } else if (this.writer == null) { - fail("AbstractJspWriter.writer not initialized. Unable to verify"); - } + public void verify(URL... urls) throws Exception { + List bufferStrings = new ArrayList<>(); + for(URL url : urls) { + if (url == null) { + fail("unable to verify a null URL"); + } else if (this.writer == null) { + fail("AbstractJspWriter.writer not initialized. Unable to verify"); + } - 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)); - } + 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)); + } + } + bufferStrings.add(normalize(buffer.toString(), true)); } /** @@ -238,9 +243,12 @@ public abstract class AbstractUITagTest extends AbstractTagTest { * normalize the strings first to account for line termination differences between platforms. */ String writerString = normalize(writer.toString(), true); - String bufferString = normalize(buffer.toString(), true); - assertEquals(bufferString, writerString); + if (bufferStrings.size() == 1) { + assertEquals(bufferStrings.get(0), writerString); + } else { + Assertions.assertThat(writerString).isIn(bufferStrings); + } } protected void setUp() throws Exception { diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java index af447612c..d921156d1 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java @@ -178,7 +178,8 @@ public class TextfieldTest extends AbstractUITagTest { tag.doStartTag(); tag.doEndTag(); - verify(TextFieldTag.class.getResource("Textfield-5.txt")); + verify(TextFieldTag.class.getResource("Textfield-5.txt"), + TextFieldTag.class.getResource("Textfield-5jdk8.txt")); } public void testSimple_recursionTestNoValue() throws Exception { diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textfield-5jdk8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textfield-5jdk8.txt new file mode 100644 index 000000000..5dc125c18 --- /dev/null +++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Textfield-5jdk8.txt @@ -0,0 +1,4 @@ + + + +