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