7023713: HttpCookie.domainMatches("hostname.local", "hostname") should return true

Reviewed-by: chegar
This commit is contained in:
Sean Chou 2011-08-22 14:09:28 +01:00 committed by Chris Hegarty
parent f072f34631
commit 3217c0283e
2 changed files with 13 additions and 8 deletions

View File

@ -748,10 +748,14 @@ public final class HttpCookie implements Cloneable {
&& (embeddedDotInDomain == -1 || embeddedDotInDomain == domain.length() - 1))
return false;
// if the host name contains no dot and the domain name is .local
// if the host name contains no dot and the domain name
// is .local or host.local
int firstDotInHost = host.indexOf('.');
if (firstDotInHost == -1 && isLocalDomain)
if (firstDotInHost == -1 &&
(isLocalDomain ||
domain.equalsIgnoreCase(host + ".local"))) {
return true;
}
int domainLength = domain.length();
int lengthDiff = host.length() - domainLength;

View File

@ -362,12 +362,13 @@ public class TestHttpCookie {
eq(c1, c2, false);
header("Test domainMatches()");
dm(".foo.com", "y.x.foo.com", false);
dm(".foo.com", "x.foo.com", true);
dm(".com", "whatever.com", false);
dm(".com.", "whatever.com", false);
dm(".ajax.com", "ajax.com", true);
dm(".local", "example.local", true);
dm(".foo.com", "y.x.foo.com", false);
dm(".foo.com", "x.foo.com", true);
dm(".com", "whatever.com", false);
dm(".com.", "whatever.com", false);
dm(".ajax.com", "ajax.com", true);
dm(".local", "example.local", true);
dm("example.local", "example", true);
// bug 6277808
testCount++;