package org.keycloak.protocol.cas;
|
|
import jakarta.ws.rs.core.HttpHeaders;
|
import jakarta.ws.rs.core.MediaType;
|
import org.jboss.resteasy.mock.MockHttpRequest;
|
import org.jboss.resteasy.mock.MockHttpResponse;
|
import org.jboss.resteasy.specimpl.RequestImpl;
|
import org.junit.Test;
|
import org.keycloak.protocol.cas.utils.ContentTypeHelper;
|
|
import static org.junit.Assert.assertEquals;
|
|
public class ContentTypeHelperTest {
|
@Test
|
public void test() throws Exception {
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", null).selectResponseType());
|
assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=json", null).selectResponseType());
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=xml", null).selectResponseType());
|
assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=JSON", null).selectResponseType());
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=XML", null).selectResponseType());
|
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", MediaType.APPLICATION_XML).selectResponseType());
|
assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=json", MediaType.APPLICATION_XML).selectResponseType());
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=xml", MediaType.APPLICATION_XML).selectResponseType());
|
|
assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/", MediaType.APPLICATION_JSON).selectResponseType());
|
assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=json", MediaType.APPLICATION_JSON).selectResponseType());
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=xml", MediaType.APPLICATION_JSON).selectResponseType());
|
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", MediaType.TEXT_PLAIN).selectResponseType());
|
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2").selectResponseType());
|
}
|
|
private ContentTypeHelper get(String uri, String acceptHeader) throws Exception {
|
MockHttpRequest req = MockHttpRequest.get(uri);
|
MockHttpResponse res = new MockHttpResponse();
|
RequestImpl restReq = new RequestImpl(req, res);
|
|
if (acceptHeader != null) {
|
req = req.header(HttpHeaders.ACCEPT, acceptHeader);
|
}
|
|
return new ContentTypeHelper(req, restReq, req.getUri());
|
}
|
}
|