diff options
author | Jesse Wilson <jessewilson@google.com> | 2010-11-09 10:25:04 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-09 10:25:04 -0800 |
commit | 385125c65452b7e7e9305ec09e3db721474bb5c3 (patch) | |
tree | a518305d05e41382429a9983339478e9fd5587c8 /core | |
parent | 916e4d140449d4bc2ecd16f568544502839e1298 (diff) | |
parent | 40811b01542cec7a76bdfee79e77d1f684731d37 (diff) | |
download | frameworks_base-385125c65452b7e7e9305ec09e3db721474bb5c3.zip frameworks_base-385125c65452b7e7e9305ec09e3db721474bb5c3.tar.gz frameworks_base-385125c65452b7e7e9305ec09e3db721474bb5c3.tar.bz2 |
Merge "Test to demonstrate that HTTP cookie hostnames aren't case-sensitive."
Diffstat (limited to 'core')
-rw-r--r-- | core/tests/coretests/src/android/net/http/CookiesTest.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/net/http/CookiesTest.java b/core/tests/coretests/src/android/net/http/CookiesTest.java index c9eca03..e736bc9 100644 --- a/core/tests/coretests/src/android/net/http/CookiesTest.java +++ b/core/tests/coretests/src/android/net/http/CookiesTest.java @@ -19,15 +19,20 @@ package android.net.http; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.net.URISyntaxException; +import java.util.List; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import java.util.logging.StreamHandler; import junit.framework.TestCase; +import org.apache.http.HttpHost; +import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; +import org.apache.http.conn.params.ConnRoutePNames; import org.apache.http.impl.client.DefaultHttpClient; import tests.http.MockResponse; import tests.http.MockWebServer; +import tests.http.RecordedRequest; public final class CookiesTest extends TestCase { @@ -66,4 +71,38 @@ public final class CookiesTest extends TestCase { logger.removeHandler(handler); } } + + /** + * Test that cookies aren't case-sensitive with respect to hostname. + * http://b/3167208 + */ + public void testCookiesWithNonMatchingCase() throws Exception { + // use a proxy so we can manipulate the origin server's host name + server = new MockWebServer(); + server.enqueue(new MockResponse() + .addHeader("Set-Cookie: a=first; Domain=my.t-mobile.com") + .addHeader("Set-Cookie: b=second; Domain=.T-mobile.com") + .addHeader("Set-Cookie: c=third; Domain=.t-mobile.com") + .setBody("This response sets some cookies.")); + server.enqueue(new MockResponse() + .setBody("This response gets those cookies back.")); + server.play(); + + HttpClient client = new DefaultHttpClient(); + client.getParams().setParameter( + ConnRoutePNames.DEFAULT_PROXY, new HttpHost("localhost", server.getPort())); + + HttpResponse getCookies = client.execute(new HttpGet("http://my.t-mobile.com/")); + getCookies.getEntity().consumeContent(); + server.takeRequest(); + + HttpResponse sendCookies = client.execute(new HttpGet("http://my.t-mobile.com/")); + sendCookies.getEntity().consumeContent(); + RecordedRequest sendCookiesRequest = server.takeRequest(); + assertContains(sendCookiesRequest.getHeaders(), "Cookie: a=first; b=second; c=third"); + } + + private void assertContains(List<String> headers, String header) { + assertTrue(headers.toString(), headers.contains(header)); + } } |