diff --git a/httpclient/src/test/java/org/apache/http/cookie/TestCookiePriorityComparator.java b/httpclient/src/test/java/org/apache/http/cookie/TestCookiePriorityComparator.java index 5878173..37f2839 100644 --- a/httpclient/src/test/java/org/apache/http/cookie/TestCookiePriorityComparator.java +++ b/httpclient/src/test/java/org/apache/http/cookie/TestCookiePriorityComparator.java @@ -27,10 +27,20 @@ package org.apache.http.cookie; +import java.util.Arrays; import java.util.Comparator; import java.util.Date; +import java.util.List; +import org.apache.http.Header; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.util.PublicSuffixMatcher; +import org.apache.http.conn.util.PublicSuffixMatcherLoader; import org.apache.http.impl.cookie.BasicClientCookie; +import org.apache.http.impl.cookie.RFC6265CookieSpecProvider; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -109,5 +119,31 @@ Assert.assertTrue(comparator.compare(cookie2, cookie1) > 0); } + @Test + public void testOrdering() { + final BasicClientCookie cookie1 = new BasicClientCookie("test1", "moo1"); + cookie1.setPath("/"); + final BasicClientCookie cookie2 = new BasicClientCookie("test2", "moo2"); + cookie2.setPath("/sub1"); + final BasicClientCookie cookie3 = new BasicClientCookie("test2", "moo3"); + cookie2.setPath("/"); + + PublicSuffixMatcher publicSuffixMatcher = PublicSuffixMatcherLoader.getDefault(); + Registry registry = + RegistryBuilder.create() + .register(CookieSpecs.STANDARD, new RFC6265CookieSpecProvider(publicSuffixMatcher)) + .build(); + HttpClientContext context = HttpClientContext.create(); + CookieSpec cookieSpec = registry.lookup(CookieSpecs.STANDARD).create(context); + + List clientCookies = Arrays.asList(new Cookie[]{cookie1, cookie2, cookie3}); + List
lstHdr = cookieSpec.formatCookies(clientCookies); + + StringBuilder sbHdr = new StringBuilder(); + for (Header header : lstHdr) { + sbHdr.append(header.getValue()); + } + Assert.assertEquals("test2=moo2; test1=moo1; test2=moo3", sbHdr.toString()); + } }