Repository: wicket
Updated Branches:
  refs/heads/master 9d9c1f468 -> 79f8a4e4b


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/79f8a4e4
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/79f8a4e4
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/79f8a4e4

Branch: refs/heads/master
Commit: 79f8a4e4be151db19c3d3ebbb4fb9f80436f11c4
Parents: 9d9c1f4
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sat May 21 14:45:58 2016 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sat May 21 14:46:47 2016 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/wicket/Session.java    |  2 +-
 .../http/mock/MockHttpServletRequest.java       | 14 +++++++++++---
 .../http/mock/MockHttpServletRequestTest.java   | 20 +++++++++++++++-----
 3 files changed, 27 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/79f8a4e4/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 59c8bd5..70ceda1 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/79f8a4e4/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 96f92b2..eb13006 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
@@ -333,7 +333,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();
@@ -673,6 +673,10 @@ public class MockHttpServletRequest implements 
HttpServletRequest
                return getLocales().nextElement();
        }
 
+       public void setLocale(Locale locale) {
+               setHeader("Accept-Language", locale.getLanguage() + '-' + 
locale.getCountry());
+       }
+
        /**
         * 
         * @param value
@@ -706,10 +710,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/79f8a4e4/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));
+       }
 }

Reply via email to