/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use
* this file except in compliance with the License. You may obtain a copy of the License at the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apereo.portal.portlet.container.properties;
import com.google.common.collect.ImmutableMap;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
import org.apereo.portal.portlet.om.IPortletWindow;
import org.apereo.portal.url.IPortalRequestUtils;
import org.apereo.portal.utils.MultivaluedMapPopulator;
import org.easymock.EasyMock;
import org.springframework.mock.web.MockHttpServletRequest;
/**
*/
public class HttpRequestPropertiesManagerTest extends TestCase {
private HttpRequestPropertiesManager httpRequestPropertiesManager;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
this.httpRequestPropertiesManager = new HttpRequestPropertiesManager();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#tearDown()
*/
@Override
protected void tearDown() throws Exception {
this.httpRequestPropertiesManager = null;
}
public void testGetRequestProperties() {
final MockHttpServletRequest request = new MockHttpServletRequest();
request.setRemoteAddr("1.2.3.4");
request.setMethod("POST");
final IPortletWindow portletWindow = EasyMock.createMock(IPortletWindow.class);
final IPortalRequestUtils portalRequestUtils =
EasyMock.createMock(IPortalRequestUtils.class);
EasyMock.expect(portalRequestUtils.getOriginalPortalRequest(request)).andReturn(request);
EasyMock.replay(portletWindow, portalRequestUtils);
this.httpRequestPropertiesManager.setPortalRequestUtils(portalRequestUtils);
final MultivaluedMapPopulator<String, String> populator =
new MultivaluedMapPopulator<String, String>();
this.httpRequestPropertiesManager.populateRequestProperties(
request, portletWindow, populator);
final Map<String, List<String>> properties = populator.getMap();
assertNotNull("properties Map should not be null", properties);
final Map<String, List<String>> expected =
ImmutableMap.of(
"REMOTE_ADDR", Collections.singletonList("1.2.3.4"),
"REQUEST_METHOD", Collections.singletonList("POST"),
"REMOTE_HOST", Collections.singletonList("localhost"));
assertEquals(expected, properties);
EasyMock.verify(portletWindow, portalRequestUtils);
}
}