WICKET-6153 WicketTester's MockHttpServletRequest doesn't expose setLocale(aLocale) method
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/41705d80 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/41705d80 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/41705d80 Branch: refs/heads/WICKET-6183 Commit: 41705d8011e4dfc94f9da9962665b03cfe56b3bb Parents: c1ea238 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sat May 21 14:45:58 2016 +0200 Committer: Andrea Del Bene <[email protected]> Committed: Fri May 27 13:12:16 2016 +0200 ---------------------------------------------------------------------- .../main/java/org/apache/wicket/Session.java | 2 +- .../http/mock/MockHttpServletRequest.java | 14 +++++++++++--- .../wicket/util/tester/BaseWicketTester.java | 2 +- .../http/mock/MockHttpServletRequestTest.java | 20 +++++++++++++++----- 4 files changed, 28 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/41705d80/wicket-core/src/main/java/org/apache/wicket/Session.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/Session.java b/wicket-core/src/main/java/org/apache/wicket/Session.java index f194b98..d18a644 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Session.java +++ b/wicket-core/src/main/java/org/apache/wicket/Session.java @@ -488,7 +488,7 @@ public abstract class Session implements IClusterable, IEventSink */ private void destroy() { - if (sessionStore != null) + if (getSessionStore() != null) { sessionStore.invalidate(RequestCycle.get().getRequest()); sessionStore = null; http://git-wip-us.apache.org/repos/asf/wicket/blob/41705d80/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java index cf8087d..a7bd476 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java @@ -323,7 +323,7 @@ public class MockHttpServletRequest implements HttpServletRequest List<String> list = (List<String>)headers.get(name); if (list == null) { - list = new ArrayList<String>(1); + list = new ArrayList<>(1); headers.put(name, list); } list.clear(); @@ -635,6 +635,10 @@ public class MockHttpServletRequest implements HttpServletRequest return getLocales().nextElement(); } + public void setLocale(Locale locale) { + setHeader("Accept-Language", locale.getLanguage() + '-' + locale.getCountry()); + } + /** * * @param value @@ -668,10 +672,14 @@ public class MockHttpServletRequest implements HttpServletRequest @Override public Enumeration<Locale> getLocales() { - List<Locale> list = new ArrayList<Locale>(); - final String header = getHeader("Accept-Language"); + List<Locale> list = new ArrayList<>(); + String header = getHeader("Accept-Language"); if (header != null) { + int idxOfSemicolon = header.indexOf(';'); + if (idxOfSemicolon > -1) { + header = header.substring(0 , idxOfSemicolon); + } final String[] locales = Strings.split(header, ','); for (String value : locales) { http://git-wip-us.apache.org/repos/asf/wicket/blob/41705d80/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index 3cbe313..eabe75e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -483,7 +483,7 @@ public class BaseWicketTester /** * Cleans up feedback messages. This usually happens on detach, but is disabled in unit testing - * so feedback mesasges can be examined. + * so feedback messages can be examined. */ public void cleanupFeedbackMessages() { http://git-wip-us.apache.org/repos/asf/wicket/blob/41705d80/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java index 004ea9b..99f956e 100755 --- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequestTest.java @@ -17,15 +17,18 @@ package org.apache.wicket.protocol.http.mock; import java.util.Enumeration; +import java.util.Locale; import javax.servlet.http.HttpSession; +import org.apache.wicket.Session; import org.apache.wicket.request.Url; import org.apache.wicket.util.tester.WicketTestCase; -import org.apache.wicket.util.tester.WicketTester; import org.junit.Test; import org.mockito.Mockito; +import static org.hamcrest.Matchers.is; + /** * test features of {@link MockHttpServletRequest} */ @@ -34,7 +37,6 @@ public class MockHttpServletRequestTest extends WicketTestCase @Test public void setAbsoluteUrlWithHost() { - WicketTester tester = new WicketTester(); MockHttpServletRequest request = tester.getRequest(); assertEquals("http", request.getScheme()); assertEquals("localhost", request.getServerName()); @@ -59,7 +61,6 @@ public class MockHttpServletRequestTest extends WicketTestCase @Test public void setAbsoluteUrlWithoutHost() { - WicketTester tester = new WicketTester(); MockHttpServletRequest request = tester.getRequest(); assertEquals("http", request.getScheme()); assertEquals("localhost", request.getServerName()); @@ -84,7 +85,6 @@ public class MockHttpServletRequestTest extends WicketTestCase @Test public void setRelativeUrl() { - WicketTester tester = new WicketTester(); MockHttpServletRequest request = tester.getRequest(); assertEquals("http", request.getScheme()); assertEquals("localhost", request.getServerName()); @@ -112,7 +112,6 @@ public class MockHttpServletRequestTest extends WicketTestCase @Test public void testNoQueryString_returnsNull() { - WicketTester tester = new WicketTester(); MockHttpServletRequest request = tester.getRequest(); request.setURL("my/servlet/without/query/param"); @@ -176,4 +175,15 @@ public class MockHttpServletRequestTest extends WicketTestCase assertEquals("completelyNewValue", headers.nextElement()); assertFalse(headers.hasMoreElements()); } + + @Test + public void setLocale() { + Session session = tester.getSession(); + session.setLocale(Locale.US); + tester.getRequest().setLocale(Locale.CANADA_FRENCH); + + session.invalidateNow(); + + assertThat(tester.getSession().getLocale(), is(Locale.CANADA_FRENCH)); + } }
