You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ya...@apache.org on 2019/06/03 07:48:19 UTC
[struts] 05/05: test false for logMissingProperties (WW-4999)
This is an automated email from the ASF dual-hosted git repository.
yasserzamani pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 704e41c6e802972def971c1223a3aa522e525bdb
Author: Yasser Zamani <ya...@apache.org>
AuthorDate: Sun Jun 2 17:22:28 2019 +0430
test false for logMissingProperties (WW-4999)
(cherry picked from commit a50af87)
---
.../xwork2/ognl/OgnlValueStackTest.java | 61 +++++++++++++++++++---
1 file changed, 53 insertions(+), 8 deletions(-)
diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
index 5fa8aa8..0d3952f 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
@@ -246,9 +246,18 @@ public class OgnlValueStackTest extends XWorkTestCase {
}
}
+ /**
+ * monitors the resolution of WW-4999
+ * @since 2.5.21
+ */
public void testLogMissingProperties() {
+ testLogMissingProperties(true);
+ testLogMissingProperties(false);
+ }
+
+ private void testLogMissingProperties(boolean logMissingProperties) {
OgnlValueStack vs = createValueStack();
- vs.setLogMissingProperties("true");
+ vs.setLogMissingProperties("" + logMissingProperties);
Dog dog = new Dog();
vs.push(dog);
@@ -263,19 +272,27 @@ public class OgnlValueStackTest extends XWorkTestCase {
vs.findValue("missingProp2", false);
vs.findValue("missingProp3", Integer.class, false);
- assertEquals(3, testAppender.logEvents.size());
- assertEquals("Error setting value [missingProp1Value] with expression [missingProp1]",
- testAppender.logEvents.get(0).getMessage().getFormattedMessage());
- assertEquals("Could not find property [missingProp2]!",
- testAppender.logEvents.get(1).getMessage().getFormattedMessage());
- assertEquals("Could not find property [missingProp3]!",
- testAppender.logEvents.get(2).getMessage().getFormattedMessage());
+ if (logMissingProperties) {
+ assertEquals(3, testAppender.logEvents.size());
+ assertEquals("Error setting value [missingProp1Value] with expression [missingProp1]",
+ testAppender.logEvents.get(0).getMessage().getFormattedMessage());
+ assertEquals("Could not find property [missingProp2]!",
+ testAppender.logEvents.get(1).getMessage().getFormattedMessage());
+ assertEquals("Could not find property [missingProp3]!",
+ testAppender.logEvents.get(2).getMessage().getFormattedMessage());
+ } else {
+ assertEquals(0, testAppender.logEvents.size());
+ }
} finally {
testAppender.stop();
logger.removeAppender(testAppender);
}
}
+ /**
+ * tests the correctness of distinguishing between user exception and NoSuchMethodException
+ * @since 2.5.21
+ */
public void testNotLogUserExceptionsAsMissingProperties() {
OgnlValueStack vs = createValueStack();
vs.setLogMissingProperties("true");
@@ -299,6 +316,18 @@ public class OgnlValueStackTest extends XWorkTestCase {
vs.findValue("getBite()", false);
vs.findValue("getBite()", void.class, false);
+ vs.setLogMissingProperties("false");
+
+ vs.setValue("exception", "exceptionValue", false);
+ vs.findValue("exception", false);
+ vs.findValue("exception", String.class, false);
+ vs.findValue("getException()", false);
+ vs.findValue("getException()", String.class, false);
+ vs.findValue("bite", false);
+ vs.findValue("bite", void.class, false);
+ vs.findValue("getBite()", false);
+ vs.findValue("getBite()", void.class, false);
+
assertEquals(0, testAppender.logEvents.size());
} finally {
testAppender.stop();
@@ -975,7 +1004,23 @@ public class OgnlValueStackTest extends XWorkTestCase {
assertEquals(12, vs.findValue("age", Integer.class, true));
assertEquals(12, vs.findValue("getAge()", true));
assertEquals(12, vs.findValue("getAge()", Integer.class, true));
+ }
+
+ /**
+ * Fails on 2.5.20 and earlier - tested on 2.5 (5/5/2016) and failed
+ * @since 2.5.21
+ */
+ public void testNotSkipUserReturnedNullValues() {
+ OgnlValueStack vs = createValueStack();
+
+ Dog dog = new Dog();
+ dog.setName("Rover");
+ vs.push(dog);
+
+ Cat cat = new Cat();
+ vs.push(cat);
+ // should not skip returned null values from cat.name
assertNull(vs.findValue("name", true));
assertNull(vs.findValue("name", String.class, true));
assertNull(vs.findValue("getName()", true));