package org.apereo.cas.web.flow;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import static org.junit.Assert.*;
/**
* @author Auke van Leeuwen
* @since 4.2.0
*/
public class CasDefaultFlowUrlHandlerTests {
private final CasDefaultFlowUrlHandler urlHandler = new CasDefaultFlowUrlHandler();
private final MockHttpServletRequest request = new MockHttpServletRequest();
@Test
public void verifyCreateFlowExecutionUrlWithSingleValuedAttributes() throws Exception {
setupRequest("/cas", "/app", "/foo");
request.setParameter("bar", "baz");
request.setParameter("qux", "quux");
final String url = urlHandler.createFlowExecutionUrl("foo", "12345", request);
assertEquals("/cas/app/foo?bar=baz&qux=quux&execution=12345", url);
}
@Test
public void verifyCreateFlowExecutionUrlWithMultiValuedAttributes() throws Exception {
setupRequest("/cas", "/app", "/foo");
request.setParameter("bar", new String[]{"baz1", "baz2"});
request.setParameter("qux", "quux");
final String url = urlHandler.createFlowExecutionUrl("foo", "12345", request);
assertEquals("/cas/app/foo?bar=baz1&bar=baz2&qux=quux&execution=12345", url);
}
private void setupRequest(final String contextPath, final String servletPath, final String pathInfo) {
request.setContextPath(contextPath);
request.setServletPath(servletPath);
request.setPathInfo(pathInfo);
request.setRequestURI(contextPath + servletPath + pathInfo);
}
}