diff options
4 files changed, 31 insertions, 16 deletions
diff --git a/luni/src/test/java/libcore/java/net/AbstractCookiesTest.java b/luni/src/test/java/libcore/java/net/AbstractCookiesTest.java index 6e29a62c77..d6424a011c 100644 --- a/luni/src/test/java/libcore/java/net/AbstractCookiesTest.java +++ b/luni/src/test/java/libcore/java/net/AbstractCookiesTest.java @@ -1535,4 +1535,21 @@ public abstract class AbstractCookiesTest extends TestCase { return true; } } + + // JDK-7169142 + public void testCookieWithNoPeriod() throws Exception { + CookieManager cm = new CookieManager(createCookieStore(), null); + Map<String, List<String>> responseHeaders = Collections.singletonMap("Set-Cookie", + Collections.singletonList("foo=bar")); + + URI uri = new URI("http://localhost"); + cm.put(uri, responseHeaders); + + Map<String, List<String>> cookies = cm.get( + new URI("https://localhost/log/me/in"), + responseHeaders); + + List<String> cookieList = cookies.values().iterator().next(); + assertEquals(Collections.singletonList("foo=bar"), cookieList); + } } diff --git a/luni/src/test/java/libcore/java/net/CookiesMCompatibilityTest.java b/luni/src/test/java/libcore/java/net/CookiesMCompatibilityTest.java index 1673915119..983a8a398f 100644 --- a/luni/src/test/java/libcore/java/net/CookiesMCompatibilityTest.java +++ b/luni/src/test/java/libcore/java/net/CookiesMCompatibilityTest.java @@ -21,6 +21,7 @@ import java.net.CookieStore; import java.net.InMemoryCookieStore; import java.net.URI; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,10 +35,8 @@ public class CookiesMCompatibilityTest extends AbstractCookiesTest { // http://b/26456024 public void testCookiesWithoutLeadingPeriod() throws Exception { CookieManager cm = new CookieManager(createCookieStore(), null); - Map<String, List<String>> responseHeaders = new HashMap<>(); - List<String> list = new ArrayList<String>(); - list.add("a=b; domain=chargepoint.com"); - responseHeaders.put("Set-Cookie", list); + Map<String, List<String>> responseHeaders = Collections.singletonMap("Set-Cookie", + Collections.singletonList("a=b; domain=chargepoint.com")); URI uri = new URI("http://services.chargepoint.com"); cm.put(uri, responseHeaders); @@ -53,16 +52,14 @@ public class CookiesMCompatibilityTest extends AbstractCookiesTest { CookieManager cm = new CookieManager(createCookieStore(), null); URI uri = new URI("http://services.chargepoint.com"); List<String> list = new ArrayList<>(); - Map<String, List<String>> responseHeaders = new HashMap<>(); - list.add("b=c; domain=.chargepoint.com;"); - responseHeaders.put("Set-Cookie", list); + Map<String, List<String>> responseHeaders = Collections.singletonMap("Set-Cookie", + Collections.singletonList("b=c; domain=.chargepoint.com;")); cm.put(uri, responseHeaders); Map<String, List<String>> cookies = cm.get( new URI("https://webservices.chargepoint.com/foo"), responseHeaders); - assertEquals(1, cookies.size()); List<String> cookieList = cookies.values().iterator().next(); - assertEquals("b=c", cookieList.get(0)); + assertEquals(Collections.singletonList("b=c"), cookieList); } } diff --git a/luni/src/test/java/libcore/java/net/CookiesTest.java b/luni/src/test/java/libcore/java/net/CookiesTest.java index ebcf302b5a..c6bff9a8fc 100644 --- a/luni/src/test/java/libcore/java/net/CookiesTest.java +++ b/luni/src/test/java/libcore/java/net/CookiesTest.java @@ -21,6 +21,7 @@ import java.net.CookieStore; import java.net.InMemoryCookieStore; import java.net.URI; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,10 +35,8 @@ public class CookiesTest extends AbstractCookiesTest { // http://b/26456024 public void testCookiesWithLeadingPeriod() throws Exception { CookieManager cm = new CookieManager(createCookieStore(), null); - Map<String, List<String>> responseHeaders = new HashMap<>(); - List<String> list = new ArrayList<String>(); - list.add("coulomb_sess=81c112d7dabac869ffa821aa8f672df2"); - responseHeaders.put("Set-Cookie", list); + Map<String, List<String>> responseHeaders = Collections.singletonMap("Set-Cookie", + Collections.singletonList("foo=bar")); URI uri = new URI("http://chargepoint.com"); cm.put(uri, responseHeaders); @@ -46,8 +45,7 @@ public class CookiesTest extends AbstractCookiesTest { new URI("https://webservices.chargepoint.com/backend.php/mobileapi/"), responseHeaders); - assertEquals(1, cookies.size()); List<String> cookieList = cookies.values().iterator().next(); - assertEquals("coulomb_sess=81c112d7dabac869ffa821aa8f672df2", cookieList.get(0)); + assertEquals(Collections.singletonList("foo=bar"), cookieList); } } diff --git a/ojluni/src/main/java/java/net/CookieManager.java b/ojluni/src/main/java/java/net/CookieManager.java index e2d80080cc..698b5b4e33 100644 --- a/ojluni/src/main/java/java/net/CookieManager.java +++ b/ojluni/src/main/java/java/net/CookieManager.java @@ -308,7 +308,10 @@ public class CookieManager extends CookieHandler // there is no dot at the beginning of effective request-host, // the default Domain can only domain-match itself.) if (cookie.getDomain() == null) { - cookie.setDomain(uri.getHost()); + String host = uri.getHost(); + if (host != null && !host.contains(".")) + host += ".local"; + cookie.setDomain(host); } String ports = cookie.getPortlist(); if (ports != null) { |