/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* Licensed 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.seasar.framework.container.external.servlet;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;
import org.seasar.framework.mock.servlet.MockHttpServletRequest;
import org.seasar.framework.mock.servlet.MockServletContext;
import org.seasar.framework.mock.servlet.MockServletContextImpl;
import org.seasar.framework.unit.S2FrameworkTestCase;
/**
* @author higa
*/
public class HttpServletExternalContextTest extends S2FrameworkTestCase {
/**
*
*/
public void testGetRequestCookieMap() {
MockHttpServletRequest request = getRequest();
Cookie cookie = new Cookie("a", "A");
request.addCookie(cookie);
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(request);
Map map = context.getRequestCookieMap();
assertSame(map, context.getRequestCookieMap());
assertTrue(map.containsKey("a"));
assertTrue(map.containsValue("A"));
assertFalse(map.isEmpty());
assertEquals(1, map.size());
}
/**
*
*/
public void testGetRequestCookieMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
Map map = context.getRequestCookieMap();
assertNotNull(map);
assertEquals(0, map.size());
try {
map.put("a", "b");
fail();
} catch (UnsupportedOperationException expected) {
}
}
/**
*
*/
public void testGetSessionMap() {
MockHttpServletRequest request = getRequest();
HttpSession session = request.getSession();
session.setAttribute("aaa", "bbb");
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(request);
Map map = context.getSessionMap();
assertEquals("bbb", map.get("aaa"));
assertEquals(1, map.size());
map.remove("aaa");
assertNull(map.get("aaa"));
map.put("bbb", "ccc");
assertEquals("ccc", session.getAttribute("bbb"));
}
/**
*
*/
public void testGetSessionMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
Map map = context.getSessionMap();
assertNotNull(map);
assertEquals(0, map.size());
map.put("a", "b");
}
/**
*
*/
public void testGetApplicationMap() {
ServletContext context = getServletContext();
context.setAttribute("a", "A");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setApplication(context);
Map map = extContext.getApplicationMap();
assertEquals("A", map.get("a"));
assertEquals(1, map.size());
map.put("a", "B");
assertEquals("B", map.get("a"));
map.clear();
assertNull(map.get("a"));
context.setAttribute("b", "B");
assertEquals("B", map.get("b"));
context.removeAttribute("b");
assertNull(map.get("b"));
}
/**
*
*/
public void testGetApplicationMap_requestNull() {
ServletContext sc = getServletContext();
HttpServletExternalContext context = new HttpServletExternalContext();
context.setApplication(sc);
Map map = context.getApplicationMap();
assertNotNull(map);
assertEquals(0, map.size());
}
/**
*
*/
public void testGetInitParameterMap() {
MockServletContext context = new MockServletContextImpl(null);
context.setInitParameter("a", "A");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setApplication(context);
Map map = extContext.getInitParameterMap();
assertEquals("A", map.get("a"));
assertEquals(1, map.size());
try {
map.put("b", "B");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.remove("b");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.clear();
fail();
} catch (Exception e) {
System.out.println(e);
}
}
/**
*
*/
public void testGetInitParameterMap_requestNull() {
ServletContext sc = getServletContext();
HttpServletExternalContext context = new HttpServletExternalContext();
context.setApplication(sc);
Map map = context.getInitParameterMap();
assertNotNull(map);
assertEquals(0, map.size());
}
/**
*
*/
public void testGetRequestHeaderMap() {
MockHttpServletRequest request = getRequest();
request.addHeader("a", "A");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setRequest(request);
Map map = extContext.getRequestHeaderMap();
assertSame(map, extContext.getRequestHeaderMap());
assertEquals("A", map.get("a"));
assertEquals(1, map.size());
try {
map.put("b", "B");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.remove("b");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.clear();
fail();
} catch (Exception e) {
System.out.println(e);
}
}
/**
*
*/
public void testGetRequestHeaderMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
Map map = context.getRequestHeaderMap();
assertNotNull(map);
assertEquals(0, map.size());
try {
map.put("a", "b");
fail();
} catch (UnsupportedOperationException expected) {
}
}
/**
*
*/
public void testGetRequestHeaderValuesMap() {
MockHttpServletRequest request = getRequest();
request.addHeader("a", "A");
request.addHeader("a", "B");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setRequest(request);
Map map = extContext.getRequestHeaderValuesMap();
assertSame(map, extContext.getRequestHeaderValuesMap());
Object o = map.get("a");
assertNotNull(o);
assertTrue(o instanceof String[]);
String[] strs = (String[]) o;
assertEquals(2, strs.length);
assertEquals("A", strs[0]);
assertEquals("B", strs[1]);
}
/**
*
*/
public void testGetRequestHeaderValuesMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
Map map = context.getRequestHeaderValuesMap();
assertNotNull(map);
assertEquals(0, map.size());
try {
map.put("a", "b");
fail();
} catch (UnsupportedOperationException expected) {
}
}
/**
*
*/
public void testGetRequestMap() {
MockHttpServletRequest request = getRequest();
request.setAttribute("hoge", "foo");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setRequest(request);
Map map = extContext.getRequestMap();
assertSame(map, extContext.getRequestMap());
assertEquals("foo", map.get("hoge"));
map.put("bar", "baz");
assertEquals("baz", request.getAttribute("bar"));
map.remove("baz");
assertNull(map.get("baz"));
}
/**
*
*/
public void testGetRequestMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
Map map = context.getRequestMap();
assertNotNull(map);
assertEquals(0, map.size());
map.put("a", "b");
}
/**
*
*/
public void testGetRequestParameterMap() {
MockHttpServletRequest request = getRequest();
request.setParameter("a", "A");
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setRequest(request);
assertSame(HttpServletExternalContext.LAZY_MARK,
extContext.requestParameterMaps.get());
Map map = extContext.getRequestParameterMap();
assertSame(map, extContext.getRequestParameterMap());
assertEquals("A", map.get("a"));
assertEquals(1, map.size());
try {
map.put("b", "B");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.remove("b");
fail();
} catch (Exception e) {
System.out.println(e);
}
try {
map.clear();
fail();
} catch (Exception e) {
System.out.println(e);
}
}
/**
*
*/
public void testGetRequestParameterMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
assertNotNull(context.requestParameterMaps.get());
Map map = context.getRequestParameterMap();
assertNotNull(map);
assertEquals(0, map.size());
try {
map.put("a", "b");
fail();
} catch (UnsupportedOperationException expected) {
}
}
/**
*
*/
public void testGetRequestParameterValuesMap() {
MockHttpServletRequest request = getRequest();
request.setParameter("a", new String[] { "A", "B" });
HttpServletExternalContext extContext = new HttpServletExternalContext();
extContext.setRequest(request);
assertSame(HttpServletExternalContext.LAZY_MARK,
extContext.requestParameterValuesMaps.get());
Map map = extContext.getRequestParameterValuesMap();
assertSame(map, extContext.getRequestParameterValuesMap());
Object o = map.get("a");
assertNotNull(o);
assertTrue(o instanceof String[]);
String[] strs = (String[]) o;
assertEquals(2, strs.length);
assertEquals("A", strs[0]);
assertEquals("B", strs[1]);
}
/**
*
*/
public void testGetRequestParameterValuesMap_requestNull() {
HttpServletExternalContext context = new HttpServletExternalContext();
context.setRequest(null);
assertNotNull(context.requestParameterValuesMaps.get());
Map map = context.getRequestParameterValuesMap();
assertNotNull(map);
assertEquals(0, map.size());
try {
map.put("a", "b");
fail();
} catch (UnsupportedOperationException expected) {
}
}
}