package org.apereo.cas.support.openid.web.mvc;
import org.apereo.cas.support.openid.AbstractOpenIdTests;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import static org.junit.Assert.*;
/**
* Test case of the Smart OpenId Controller.
* @author Frederic Esnault
* @since 3.0.0
*/
public class SmartOpenIdControllerTests extends AbstractOpenIdTests {
private static final String OPENID_MODE_PARAM = "openid.mode";
private final MockHttpServletRequest request = new MockHttpServletRequest();
private final HttpServletResponse response = new MockHttpServletResponse();
@Autowired
private SmartOpenIdController smartOpenIdController;
@Test
public void verifyCanHandle() {
request.addParameter(OPENID_MODE_PARAM, "associate");
final boolean canHandle = smartOpenIdController.canHandle(request, response);
request.removeParameter(OPENID_MODE_PARAM);
assertTrue(canHandle);
}
@Test
public void verifyCannotHandle() {
request.addParameter(OPENID_MODE_PARAM, "anythingElse");
final boolean canHandle = smartOpenIdController.canHandle(request, response);
request.removeParameter(OPENID_MODE_PARAM);
assertFalse(canHandle);
}
@Test
public void verifyGetAssociationResponse() {
request.addParameter(OPENID_MODE_PARAM, "associate");
request.addParameter("openid.session_type", "DH-SHA1");
request.addParameter("openid.assoc_type", "HMAC-SHA1");
request.addParameter("openid.dh_consumer_public",
"NzKoFMyrzFn/5iJFPdX6MVvNA/BChV1/sJdnYbupDn7ptn+cerwEzyFfWFx25KsoLSkxQCaSMmYtc1GPy/2GI1BSKSDhpdJmDBb"
+ "QRa/9Gs+giV/5fHcz/mHz8sREc7RTGI+0Ka9230arwrWt0fnoaJLRKEGUsmFR71rCo4EUOew=");
final Map<String, String> assocResponse = smartOpenIdController.getAssociationResponse(request);
assertTrue(assocResponse.containsKey("assoc_handle"));
assertTrue(assocResponse.containsKey("expires_in"));
assertTrue(assocResponse.containsKey("dh_server_public"));
assertTrue(assocResponse.containsKey("enc_mac_key"));
request.removeParameter(OPENID_MODE_PARAM);
}
}