package org.jboss.resteasy.test.resource.param.resource; import java.util.Calendar; import java.util.Date; import org.junit.Assert; import javax.ws.rs.CookieParam; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.DefaultValue; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.NewCookie; import javax.ws.rs.core.Response; import javax.ws.rs.core.Cookie; @Path("/") public class CookieInjectionResource { @Path("/set") @GET public Response set() { return Response.ok("content").cookie(new NewCookie("meaning", "42")).build(); } @Path("/expire") @GET public Response expire() { NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 0, "comment", 3600, new Date(), true, true); return Response.ok().cookie(cookie).entity(cookie.toString()).build(); } @Path("/expire1") @GET public Response expire1() { NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 1, "comment", 3600, new Date(), true, true); return Response.ok().cookie(cookie).entity(cookie.toString()).build(); } @Path("/expired") @GET public Response expired() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); NewCookie cookie = new NewCookie("Name", "Value", "/", "*", 1, "comment", 1800, cal.getTime(), true, true); return Response.ok().cookie(cookie).entity(cookie.toString()).build(); } @Context HttpHeaders myHeaders; @Path("/headers") @GET public String headers(@Context HttpHeaders headers) { String value = headers.getCookies().get("meaning").getValue(); Assert.assertEquals("Unexpected value in the cookie", value, "42"); return value; } @Path("/headers/fromField") @GET public String headersFromField(@Context HttpHeaders headers) { String value = myHeaders.getCookies().get("meaning").getValue(); Assert.assertEquals("Unexpected value in the cookie", value, "42"); return value; } @Path("/param") @GET @Produces("text/plain") public int param(@CookieParam("meaning") int value) { Assert.assertEquals("Unexpected value in the cookie", value, 42); return value; } @Path("/cookieparam") @GET public String param(@CookieParam("meaning") Cookie value) { Assert.assertEquals("Unexpected value in the cookie", value.getValue(), "42"); return value.getValue(); } @Path("/default") @GET @Produces("text/plain") public int defaultValue(@CookieParam("defaulted") @DefaultValue("24") int value) { Assert.assertEquals("Unexpected value in the cookie", value, 24); return value; } }