summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luni/src/test/java/libcore/java/net/AbstractCookiesTest.java17
-rw-r--r--luni/src/test/java/libcore/java/net/CookiesMCompatibilityTest.java15
-rw-r--r--luni/src/test/java/libcore/java/net/CookiesTest.java10
-rw-r--r--ojluni/src/main/java/java/net/CookieManager.java5
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) {