mirror of https://github.com/jacekkow/keycloak-protocol-cas

Jacek Kowalski
2024-06-21 508897529ff996bbf5bf2dec5c407517cc7eb520
src/test/java/org/keycloak/protocol/cas/ContentTypeHelperTest.java
@@ -1,45 +1,27 @@
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 jakarta.ws.rs.core.*;
import org.junit.Test;
import org.keycloak.protocol.cas.utils.ContentTypeHelper;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
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());
    public void test() {
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("json").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("xml").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("JSON").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("XML").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());
    private ContentTypeHelper get(String format) {
        MultivaluedHashMap<String,String> queryParams = mock(MultivaluedHashMap.class);
        when(queryParams.getFirst(CASLoginProtocol.FORMAT_PARAM)).thenReturn(format);
        UriInfo uriInfo = mock(UriInfo.class);
        when(uriInfo.getQueryParameters()).thenReturn(queryParams);
        return new ContentTypeHelper(uriInfo);
    }
}