Revision: 882330dad166
Author:   Christian Edward Gruber <cgru...@google.com>
Date:     Wed May 15 18:59:34 2013
Log: HttpServletRequest#getCookies() can return null; checks that in ContinuingHttpServletRequest.

-------------------
Manually Synced.
COMMIT=42047244

http://code.google.com/p/google-guice/source/detail?r=882330dad166

Added:
/extensions/servlet/test/com/google/inject/servlet/ContinuingHttpServletRequestTest.java
Modified:
/extensions/servlet/src/com/google/inject/servlet/ContinuingHttpServletRequest.java
 /extensions/servlet/test/com/google/inject/servlet/AllTests.java

=======================================
--- /dev/null
+++ /extensions/servlet/test/com/google/inject/servlet/ContinuingHttpServletRequestTest.java Wed May 15 18:59:34 2013
@@ -0,0 +1,58 @@
+/**
+ * Copyright (C) 2013 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.google.inject.servlet;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import junit.framework.TestCase;
+
+import java.util.Arrays;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+
+public class ContinuingHttpServletRequestTest extends TestCase {
+
+  public void testReturnNullCookiesIfDelegateHasNoNull() {
+    HttpServletRequest delegate = createMock(HttpServletRequest.class);
+    expect(delegate.getCookies()).andStubReturn(null);
+
+    replay(delegate);
+
+    assertNull(new ContinuingHttpServletRequest(delegate).getCookies());
+
+    verify(delegate);
+  }
+
+  public void testReturnDelegateCookies() {
+    Cookie[] cookies = new Cookie[]{
+        new Cookie("testName1", "testValue1"),
+        new Cookie("testName2", "testValue2")
+    };
+    HttpServletRequest delegate = createMock(HttpServletRequest.class);
+    expect(delegate.getCookies()).andStubReturn(cookies);
+
+    replay(delegate);
+
+    assertTrue(Arrays.equals(cookies,
+        new ContinuingHttpServletRequest(delegate).getCookies()));
+
+    verify(delegate);
+  }
+}
=======================================
--- /extensions/servlet/src/com/google/inject/servlet/ContinuingHttpServletRequest.java Thu Jul 7 17:34:16 2011 +++ /extensions/servlet/src/com/google/inject/servlet/ContinuingHttpServletRequest.java Wed May 15 18:59:34 2013
@@ -68,6 +68,9 @@
   }

   @Override public Cookie[] getCookies() {
+    if (super.getCookies() == null) {
+      return null;
+    }
     // TODO(dhanji): Cookies themselves are mutable. Is this a problem?
     return super.getCookies().clone();
   }
=======================================
--- /extensions/servlet/test/com/google/inject/servlet/AllTests.java Sun Sep 26 15:04:09 2010 +++ /extensions/servlet/test/com/google/inject/servlet/AllTests.java Wed May 15 18:59:34 2013
@@ -41,6 +41,7 @@
     suite.addTestSuite(ServletPipelineRequestDispatcherTest.class);
     suite.addTestSuite(ServletDispatchIntegrationTest.class);
     suite.addTestSuite(InvalidScopeBindingTest.class);
+    suite.addTestSuite(ContinuingHttpServletRequestTest.class);

     // Varargs URL mapping tests.
     suite.addTestSuite(VarargsFilterDispatchIntegrationTest.class);

--
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-guice-dev+unsubscr...@googlegroups.com.
To post to this group, send email to google-guice-dev@googlegroups.com.
Visit this group at http://groups.google.com/group/google-guice-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to