This is an automated email from the ASF dual-hosted git repository.

reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/main by this push:
     new f19cbfe8bf Add Cookie header test cases (#2185)
f19cbfe8bf is described below

commit f19cbfe8bf4256036919e86341499bb24b063f80
Author: Andriy Redko <[email protected]>
AuthorDate: Mon Dec 30 11:40:38 2024 -0500

    Add Cookie header test cases (#2185)
---
 .../org/apache/cxf/jaxrs/client/WebClientTest.java | 30 ++++++++++++++++++++++
 .../org/apache/cxf/systest/jaxrs/BookStore.java    |  9 +++++++
 .../systest/jaxrs/JAXRS20ClientServerBookTest.java | 18 +++++++++++++
 3 files changed, 57 insertions(+)

diff --git 
a/rt/rs/client/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java 
b/rt/rs/client/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java
index 3b4cfb767d..b98a68b1c0 100644
--- a/rt/rs/client/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java
+++ b/rt/rs/client/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java
@@ -24,6 +24,7 @@ import java.lang.reflect.Type;
 import java.net.URI;
 import java.util.Collections;
 
+import jakarta.ws.rs.core.Cookie;
 import jakarta.ws.rs.core.HttpHeaders;
 import jakarta.ws.rs.ext.ParamConverter;
 import jakarta.ws.rs.ext.ParamConverterProvider;
@@ -32,8 +33,10 @@ import org.apache.cxf.jaxrs.resources.BookStore;
 
 import org.junit.Test;
 
+import static 
org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -343,6 +346,33 @@ public class WebClientTest {
         assertEquals("en_CA", 
wc.getHeaders().getFirst(HttpHeaders.CONTENT_LANGUAGE));
     }
 
+    @Test
+    public void testDefaultCookie() {
+        WebClient wc = WebClient.create("http://foo";).language("en_CA");
+        wc.cookie(new Cookie("a", "1"));
+        wc.cookie(new Cookie("b", "2"));
+        assertThat(wc.getHeaders().get(HttpHeaders.COOKIE),
+            containsInAnyOrder("$Version=1;a=1", "$Version=1;b=2"));
+    }
+
+    @Test
+    public void testCookieNoVersion() {
+        WebClient wc = WebClient.create("http://foo";).language("en_CA");
+        wc.cookie(new Cookie("a", "1", null, null, 0));
+        wc.cookie(new Cookie("b", "2", null, null, 0));
+        assertThat(wc.getHeaders().get(HttpHeaders.COOKIE),
+            containsInAnyOrder("a=1", "b=2"));
+    }
+
+    @Test
+    public void testCookieBuilder() {
+        WebClient wc = WebClient.create("http://foo";).language("en_CA");
+        wc.cookie(new Cookie.Builder("a").value("1").build());
+        wc.cookie(new Cookie.Builder("b").value("2").build());
+        assertThat(wc.getHeaders().get(HttpHeaders.COOKIE),
+            containsInAnyOrder("$Version=1;a=1", "$Version=1;b=2"));
+    }
+
     private static final class ParamConverterProviderImpl implements 
ParamConverterProvider {
 
         @SuppressWarnings("unchecked")
diff --git 
a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java 
b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
index a28f720742..e1a16401b3 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
@@ -1852,6 +1852,15 @@ public class BookStore {
         return httpHeaders.getRequestHeaders();
     }
     
+    @GET
+    @Path("/cookies")
+    @Produces("application/json")
+    public Response getCookies() {
+        return Response.ok()
+            .header(HttpHeaders.SET_COOKIE, 
httpHeaders.getRequestHeaders().getFirst(HttpHeaders.COOKIE))
+            .build();
+    }
+    
     public final String init() {
         books.clear();
         cds.clear();
diff --git 
a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
 
b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
index 7362f4f7e8..5159ee3d42 100644
--- 
a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
+++ 
b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
@@ -63,6 +63,7 @@ import jakarta.ws.rs.client.ResponseProcessingException;
 import jakarta.ws.rs.client.WebTarget;
 import jakarta.ws.rs.container.ResourceContext;
 import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Cookie;
 import jakarta.ws.rs.core.Feature;
 import jakarta.ws.rs.core.FeatureContext;
 import jakarta.ws.rs.core.GenericEntity;
@@ -1122,6 +1123,23 @@ public class JAXRS20ClientServerBookTest extends 
AbstractBusClientServerTestBase
             + "jakarta.ws.rs.ext.Provider,jakarta.ws.rs.Consumes}"));
     }
     
+    @Test
+    public void testGetCookies() throws Exception {
+        final WebTarget target = ClientBuilder
+            .newClient()
+            .property("org.apache.cxf.http.cookie.separator", ";")
+            .target("http://localhost:"; + PORT + "/bookstore/cookies");
+
+        @SuppressWarnings("unchecked")
+        final Response response = target
+            .request().accept("application/json")
+            .cookie(new Cookie("a", "1"))
+            .cookie(new Cookie("b", "2"))
+            .get();
+
+        assertThat(response.getHeaderString(HttpHeaders.SET_COOKIE), 
equalTo("$Version=1;a=1; $Version=1;b=2"));
+    }
+
     private static final class ReplaceBodyFilter implements 
ClientRequestFilter {
 
         @Override

Reply via email to