private void replaceCookieWhenSetOnSamePathBySameUri() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("https://foo.org/"); store.add(uri, ClientCookieDecoder.LAX.decode("cookie1=VALUE1; Path=/")); store.add(uri, ClientCookieDecoder.LAX.decode("cookie1=VALUE2; Path=/")); store.add(uri, ClientCookieDecoder.LAX.decode("cookie1=VALUE3; Path=/")); assertTrue(store.getAll().size() == 1); assertTrue(store.get(uri).get(0).value().equals("VALUE3")); }
private void dontReplaceCookiesWhenTheyHaveDifferentName() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com/bar/baz"); store.add(uri, ClientCookieDecoder.LAX.decode("BETA=VALUE1; Domain=www.foo.com; path=/bar")); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE2; Domain=www.foo.com; path=/bar")); assertTrue(store.get(uri).size() == 2); }
private void expireCookieWhenSetWithDateInThePast() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com/bar"); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=EXPIRED; Domain=www.foo.com; Path=/bar; Expires=Sun, 06 Nov 1994 08:49:37 GMT")); assertTrue(store.getAll().isEmpty()); }
private void returnMultipleCookiesEvenIfTheyHaveSameName() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://foo.com"), ClientCookieDecoder.LAX.decode("JSESSIONID=FOO; Domain=.foo.com")); store.add(Uri.create("http://sub.foo.com"), ClientCookieDecoder.LAX.decode("JSESSIONID=BAR; Domain=sub.foo.com")); Uri uri1 = Uri.create("http://sub.foo.com"); List<Cookie> cookies1 = store.get(uri1); assertTrue(cookies1.size() == 2); assertTrue(cookies1.stream().filter(c -> c.value().equals("FOO") || c.value().equals("BAR")).count() == 2); String result = ClientCookieEncoder.LAX.encode(cookies1.get(0), cookies1.get(1)); assertTrue(result.equals("JSESSIONID=FOO; JSESSIONID=BAR")); }
private void replaceCookieWhenSetOnSameDomainAndPath() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com/bar/baz"); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE2; Domain=www.foo.com; path=/bar")); assertTrue(store.getAll().size() == 1); assertTrue(store.get(uri).get(0).value().equals("VALUE2")); }
private void handleCookieNameInCaseInsensitiveManner() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com/bar/baz"); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); store.add(uri, ClientCookieDecoder.LAX.decode("alpha=VALUE2; Domain=www.foo.com; path=/bar")); assertTrue(store.getAll().size() == 1); assertTrue(store.get(uri).get(0).value().equals("VALUE2")); }
private void cookieWithSameNameMustCoexistIfSetOnDifferentDomains() { CookieStore store = new ThreadSafeCookieStore(); Uri uri1 = Uri.create("http://www.foo.com"); store.add(uri1, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com")); Uri uri2 = Uri.create("http://www.bar.com"); store.add(uri2, ClientCookieDecoder.LAX.decode("ALPHA=VALUE2; Domain=www.bar.com")); assertTrue(store.get(uri1).size() == 1); assertTrue(store.get(uri1).get(0).value().equals("VALUE1")); assertTrue(store.get(uri2).size() == 1); assertTrue(store.get(uri2).get(0).value().equals("VALUE2")); }
private void shouldNotServeSecureCookiesForDefaultRetrievedHttpUriScheme() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("https://foo.org/moodle/"), ClientCookieDecoder.LAX.decode("cookie1=VALUE1; Path=/")); store.add(Uri.create("https://foo.org:443/moodle/login"), ClientCookieDecoder.LAX.decode("cookie1=VALUE2; Path=/")); store.add(Uri.create("https://foo.org:443/moodle/login"), ClientCookieDecoder.LAX.decode("cookie1=VALUE3; Path=/; Secure")); Uri uri = Uri.create("http://foo.org/moodle/login"); assertTrue(store.get(uri).isEmpty()); }
private void addCookieWithEmptyPath() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com"); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; path=")); assertTrue(store.get(uri).size() > 0); }
private void handleMissingPathAsRequestPathWhenFromRootDir() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com"); store.add(uri, ClientCookieDecoder.LAX.decode("ALPHA=VALUE1")); assertTrue(store.get(uri).size() == 1); }
private void shouldServeSecureCookiesForSpecificallyRetrievedHttpUriScheme() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("https://foo.org/moodle/"), ClientCookieDecoder.LAX.decode("cookie1=VALUE1; Path=/")); store.add(Uri.create("https://foo.org:443/moodle/login"), ClientCookieDecoder.LAX.decode("cookie1=VALUE2; Path=/")); store.add(Uri.create("https://foo.org:443/moodle/login"), ClientCookieDecoder.LAX.decode("cookie1=VALUE3; Path=/; Secure")); Uri uri = Uri.create("https://foo.org/moodle/login"); assertTrue(store.get(uri).size() == 1); assertTrue(store.get(uri).get(0).value().equals("VALUE3")); assertTrue(store.get(uri).get(0).isSecure()); } }
private void handleMissingPathAsSlash() { CookieStore store = new ThreadSafeCookieStore(); Uri uri = Uri.create("http://www.foo.com"); store.add(uri, ClientCookieDecoder.LAX.decode("tooe_token=0b1d81dd02d207491a6e9b0a2af9470da9eb1dad")); assertTrue(store.get(uri).size() == 1); }
private void dontReturnCookieForAnotherDomain() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; path=")); assertTrue(store.get(Uri.create("http://www.bar.com")).isEmpty()); }
private void handleDomainInCaseInsensitiveManner() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com/bar"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1")); assertTrue(store.get(Uri.create("http://www.FoO.com/bar")).size() == 1); }
private void dontReturnCookieWhenDomainMatchesButPathIsDifferent() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com/bar"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); assertTrue(store.get(Uri.create("http://www.foo.com/baz")).isEmpty()); }
private void returnCookieWhenItWasSetOnSubdomain() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=.foo.com")); assertTrue(store.get(Uri.create("http://bar.foo.com")).size() == 1); }
private void returnCookieWhenItWasSetOnParentPath() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); assertTrue(store.get(Uri.create("http://www.foo.com/bar/baz")).size() == 1); }
private void returnTheCookieWheniTSissuedFromRequestWithSubpath() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com/bar"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE; path=/")); assertTrue(store.get(Uri.create("http://www.foo.com")).size() == 1); }
private void handleMissingPathAsRequestPathWhenPathIsNotEmpty() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com/bar"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/bar")); assertTrue(store.get(Uri.create("http://www.foo.com/baz")).isEmpty()); }
private void ignoreQueryParametersInUri() { CookieStore store = new ThreadSafeCookieStore(); store.add(Uri.create("http://www.foo.com/bar?query1"), ClientCookieDecoder.LAX.decode("ALPHA=VALUE1; Domain=www.foo.com; path=/")); assertTrue(store.get(Uri.create("http://www.foo.com/bar?query2")).size() == 1); }