summaryrefslogtreecommitdiff
path: root/spring-webmvc/src/test
diff options
context:
space:
mode:
authorEmmanuel Bourg <ebourg@apache.org>2017-07-04 11:41:53 +0200
committerEmmanuel Bourg <ebourg@apache.org>2017-07-04 11:41:53 +0200
commit16cac1f52d8e8159e0e688b2fda3f89291cec969 (patch)
tree027fd3c0b671bf73a45f27af2a16881c4098f7e7 /spring-webmvc/src/test
parent5b251f9ca7596793d669a9a36eb0d83ccd56f983 (diff)
New upstream version 4.3.9
Diffstat (limited to 'spring-webmvc/src/test')
-rw-r--r--spring-webmvc/src/test/java/org/springframework/web/servlet/support/FlashMapManagerTests.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/support/FlashMapManagerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/support/FlashMapManagerTests.java
index 333a093b..b0bac531 100644
--- a/spring-webmvc/src/test/java/org/springframework/web/servlet/support/FlashMapManagerTests.java
+++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/support/FlashMapManagerTests.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -318,6 +319,25 @@ public class FlashMapManagerTests {
assertEquals("value", flashMap.get("key"));
}
+ @Test // SPR-15505
+ public void retrieveAndUpdateMatchByOriginatingPathAndQueryString() {
+ FlashMap flashMap = new FlashMap();
+ flashMap.put("key", "value");
+ flashMap.setTargetRequestPath("/accounts");
+ flashMap.addTargetRequestParam("a", "b");
+
+ this.flashMapManager.setFlashMaps(Collections.singletonList(flashMap));
+
+ this.request.setAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE, "/accounts");
+ this.request.setAttribute(WebUtils.FORWARD_QUERY_STRING_ATTRIBUTE, "a=b");
+ this.request.setRequestURI("/mvc/accounts");
+ this.request.setQueryString("x=y");
+ FlashMap inputFlashMap = this.flashMapManager.retrieveAndUpdate(this.request, this.response);
+
+ assertEquals(flashMap, inputFlashMap);
+ assertEquals("Input FlashMap should have been removed", 0, this.flashMapManager.getFlashMaps().size());
+ }
+
private static class TestFlashMapManager extends AbstractFlashMapManager {