blob: 0b3118663378b7276e39cadbcd4c8213a1610f05 [file] [log] [blame]
package org.apache.axis2.transport.http;
import junit.framework.TestCase;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
/**
*
*/
public class TransportHeadersTest extends TestCase {
public void testServletRequest() {
// This just validates that the HttpServletRequest test class below works as expected
HttpServletRequest req = new TestServletRequest();
assertEquals("h1Value", req.getHeader("header1"));
assertEquals("h2Value", req.getHeader("header2"));
assertEquals("h3Value", req.getHeader("header3"));
assertNull(req.getHeader("newHeader1"));
assertNull(req.getHeader("newHeader2"));
Enumeration headers = req.getHeaderNames();
assertNotNull(headers);
}
public void testLocalMap() {
HttpServletRequest req = new TestServletRequest();
TransportHeaders headers = new TransportHeaders(req);
String checkValue = null;
assertNull(headers.headerMap);
assertNotNull(headers.localHeaderMap);
assertTrue(headers.localHeaderMap.isEmpty());
// Add a header that doesn't exist in the servlet request and make sure it doesn't
// populate the headerMap
headers.put("newHeader1", "newHeader1Value");
checkValue = (String) headers.get("newHeader1");
assertNull(headers.headerMap);
assertFalse(headers.localHeaderMap.isEmpty());
assertEquals(1, headers.localHeaderMap.size());
assertEquals("newHeader1Value", checkValue);
// Add a header that does exist in the servlet request with a new value still shouldn't
// populate
headers.put("header3", "h3ValueNew");
checkValue = (String) headers.get("header3");
assertNull(headers.headerMap);
assertFalse(headers.localHeaderMap.isEmpty());
assertEquals(2, headers.localHeaderMap.size());
assertEquals("h3ValueNew", checkValue);
// Now cause the map to be populated from the servlet request
int size = headers.size();
assertEquals(4, size);
assertNotNull(headers.headerMap);
assertNull(headers.localHeaderMap);
assertEquals("h1Value", (String) headers.get("header1"));
assertEquals("h2Value", (String) headers.get("header2"));
assertEquals("h3ValueNew", (String) headers.get("header3"));
assertEquals("newHeader1Value", (String) headers.get("newHeader1"));
// Now do another put of a new value and make sure it is put in the newly populated hashmap
headers.put("newHeader2", "newHeader2Value");
checkValue = (String) headers.get("newHeader2");
assertNotNull(headers.headerMap);
assertNull(headers.localHeaderMap);
size = headers.size();
assertEquals(5, size);
assertEquals("newHeader2Value", checkValue);
}
public void testNoPopulateOnGet() {
// Doing a get before a put shouldn't expand the headerMap.
HttpServletRequest req = new TestServletRequest();
TransportHeaders headers = new TransportHeaders(req);
String checkValue = null;
assertNull(headers.headerMap);
assertNotNull(headers.localHeaderMap);
assertTrue(headers.localHeaderMap.isEmpty());
checkValue = (String) headers.get("header1");
assertNotNull(checkValue);
assertNull(headers.headerMap);
assertNotNull(headers.localHeaderMap);
assertEquals("h1Value", checkValue);
}
}