@Test
 public void testInvalidInput() throws Exception {
   CookieSpec cookiespec = new BrowserCompatSpec();
   try {
     cookiespec.parse(null, null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.parse(new BasicHeader("Set-Cookie", "name=value"), null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.validate(null, null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.validate(new BasicClientCookie("name", null), null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.match(null, null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.match(new BasicClientCookie("name", null), null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     cookiespec.formatCookies(null);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
   try {
     List<Cookie> cookies = new ArrayList<Cookie>();
     cookiespec.formatCookies(cookies);
     Assert.fail("IllegalArgumentException must have been thrown");
   } catch (IllegalArgumentException ex) {
     // expected
   }
 }
 @Test
 public void testMatchNullCookiePath() throws Exception {
   CookieSpec cookiespec = new BrowserCompatSpec();
   BasicClientCookie cookie = new BasicClientCookie("name", "value");
   cookie.setDomain("host");
   CookieOrigin origin = new CookieOrigin("host", 80, "/", false);
   Assert.assertTrue(cookiespec.match(cookie, origin));
 }
 @Test
 public void testCookieMismatch3() throws Exception {
   CookieSpec cookiespec = new BrowserCompatSpec();
   BasicClientCookie cookie = new BasicClientCookie("name", "value");
   cookie.setDomain("host");
   cookie.setPath("/foobar");
   CookieOrigin origin = new CookieOrigin("host", 80, "/foo", false);
   Assert.assertFalse(cookiespec.match(cookie, origin));
 }
 @Test
 public void testCookieMatch3() throws Exception {
   CookieSpec cookiespec = new BrowserCompatSpec();
   BasicClientCookie cookie = new BasicClientCookie("name", "value");
   cookie.setDomain(".whatever.com");
   cookie.setPath("/");
   CookieOrigin origin = new CookieOrigin(".really.whatever.com", 80, "/", false);
   Assert.assertTrue(cookiespec.match(cookie, origin));
 }
  @Test
  public void testInvalidSecondDomainLevelCookieMatch2() throws Exception {
    BasicClientCookie cookie = new BasicClientCookie("name", null);
    cookie.setDomain("sourceforge.net");
    cookie.setAttribute(ClientCookie.DOMAIN_ATTR, cookie.getDomain());
    cookie.setPath("/");
    cookie.setAttribute(ClientCookie.PATH_ATTR, cookie.getPath());

    CookieSpec cookiespec = new BrowserCompatSpec();
    CookieOrigin origin = new CookieOrigin("antisourceforge.net", 80, "/", false);
    Assert.assertFalse(cookiespec.match(cookie, origin));
  }
 private List<Cookie> filter(CookieOrigin origin) {
   List<Cookie> matchedCookies = new ArrayList<Cookie>();
   Date now = new Date();
   CookieSpec cookieSpec = createSpec();
   for (Cookie cookie : store.getCookies()) {
     if (!cookie.isExpired(now)) {
       if (cookieSpec.match(cookie, origin)) {
         matchedCookies.add(cookie);
       }
     }
   }
   return matchedCookies;
 }
  @Test
  public void testInvalidMatchDomain() throws Exception {
    BasicClientCookie cookie = new BasicClientCookie("name", null);
    cookie.setDomain("beta.gamma.com");
    cookie.setAttribute(ClientCookie.DOMAIN_ATTR, cookie.getDomain());
    cookie.setPath("/");
    cookie.setAttribute(ClientCookie.PATH_ATTR, cookie.getPath());

    CookieSpec cookiespec = new BrowserCompatSpec();
    CookieOrigin origin = new CookieOrigin("alpha.beta.gamma.com", 80, "/", false);
    cookiespec.validate(cookie, origin);
    Assert.assertTrue(cookiespec.match(cookie, origin));
  }