You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2025/01/01 00:29:02 UTC
(cxf) 01/02: Add Cookie header test cases (#2185)
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch 3.5.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 5b649031a8ee9581655197a6aba3bce761599f75
Author: Andriy Redko <dr...@gmail.com>
AuthorDate: Mon Dec 30 20:20:23 2024 -0500
Add Cookie header test cases (#2185)
(cherry picked from commit c9f5f8eb05aeb2dbe223a9d0633afdfa825ea14c)
# Conflicts:
# rt/rs/client/src/test/java/org/apache/cxf/jaxrs/client/WebClientTest.java
# systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java
(cherry picked from commit d540f6622f22a04d08fb88011d053d5940cca6cd)
---
.../org/apache/cxf/jaxrs/client/WebClientTest.java | 21 +++++++++++++++++++++
.../org/apache/cxf/systest/jaxrs/BookStore.java | 9 +++++++++
.../systest/jaxrs/JAXRS20ClientServerBookTest.java | 18 ++++++++++++++++++
3 files changed, 48 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 cf7037d4c3..9421e88f2e 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 javax.ws.rs.core.Cookie;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.ext.ParamConverter;
import javax.ws.rs.ext.ParamConverterProvider;
@@ -33,8 +34,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;
@@ -344,6 +347,24 @@ 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"));
+ }
+
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 60b64e9946..1872175e94 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 c66cfbe968..1d35e73730 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
@@ -48,6 +48,7 @@ import javax.ws.rs.client.ResponseProcessingException;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.container.ResourceContext;
import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.core.GenericEntity;
@@ -999,6 +1000,23 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase
+ "javax.ws.rs.ext.Provider,javax.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