Package nu.localhost.tests

Source Code of nu.localhost.tests.SecuredPageTest$MySession

package nu.localhost.tests;

import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;

import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;

import junit.framework.TestCase;
import nu.localhost.testsite.utils.MockFactory;

import org.apache.tapestry5.internal.test.TestableResponse;
import org.apache.tapestry5.test.PageTester;
import org.easymock.EasyMock;

public class SecuredPageTest extends TestCase {
 
  private HttpSession internalSession;
 
 
  @Override
  protected void setUp() throws Exception {
    EasyMock.reset(MockFactory.getInstance().getMockedObjects());
    internalSession = new MySession();
    super.setUp();
  }
 
  @Override
  protected void tearDown() throws Exception {
    EasyMock.reset(MockFactory.getInstance().getMockedObjects());
  }
 
 
  public void testDisplaySecureContent() {
    String appPackage = "nu.localhost.testsite";
        String appName = "test";
        PageTester tester = new PageTester(appPackage, appName, "src/test/resources/webapp");
       
        HttpServletRequest mockRequest = MockFactory.getInstance().getMockedServletRequest();
        HttpServletResponse mockResponse = MockFactory.getInstance().getMockedServletResponse();
       
       
        EasyMock.expect(mockRequest.getCookies()).andReturn(new Cookie[] {}).anyTimes();
        EasyMock.expect(mockRequest.getHeaderNames()).andReturn(new Vector<String>().elements());
        EasyMock.expect(mockRequest.getLocales()).andReturn(new Vector<String>().elements());
        EasyMock.expect(mockRequest.getParameterMap()).andReturn(new HashMap<String, Object>());
       
       
        EasyMock.expect(mockRequest.getMethod()).andReturn("GET");
        EasyMock.expect(mockRequest.getPathInfo()).andReturn("/");
        EasyMock.expect(mockRequest.getQueryString()).andReturn("");
        EasyMock.expect(mockRequest.getRequestURI()).andReturn("");
       
       
        EasyMock.expect(mockRequest.getServerPort()).andReturn(80).anyTimes();
        EasyMock.expect(mockRequest.getScheme()).andReturn("http").anyTimes();
       
        EasyMock.expect(mockRequest.getRequestURL()).andReturn(new StringBuffer(""));
        EasyMock.expect(mockRequest.getServerName()).andReturn("localhost").anyTimes();
        EasyMock.expect(mockRequest.getContextPath()).andReturn("").anyTimes();
        EasyMock.expect(mockRequest.getServletPath()).andReturn("").anyTimes();
       
        EasyMock.expect(mockRequest.getSession()).andReturn(internalSession).anyTimes();
       
        EasyMock.expect(mockResponse.encodeRedirectURL("http://localhost/loginpage")).andReturn("http://localhost/loginpage").atLeastOnce();
       
        try {
      mockResponse.sendRedirect("http://localhost/loginpage");
    } catch (IOException e) {
      fail(e.getMessage());
    }
        EasyMock.expectLastCall();
       
        EasyMock.replay(MockFactory.getInstance().getMockedObjects());
        TestableResponse  resp = tester.renderPageAndReturnResponse("SecuredPage");
       
        assertEquals(200,resp.getStatus());
       
        EasyMock.verify(MockFactory.getInstance().getMockedObjects());
        EasyMock.reset(MockFactory.getInstance().getMockedObjects());
       
        assertEquals("DefaultSavedRequest[http://localhost?]",internalSession.getAttribute("SPRING_SECURITY_SAVED_REQUEST").toString());
  }
 
  private class MySession implements HttpSession {

    private Map<String,Object> atrs = new HashMap<String, Object>();
    private Map<String,Object> vals = new HashMap<String, Object>();
   
   
    @Override
    public Object getAttribute(String name) {
      return atrs.get(name);
    }

    @Override
    public Enumeration getAttributeNames() {
      return (Enumeration) atrs.keySet();
    }

    @Override
    public long getCreationTime() {
      // TODO Auto-generated method stub
      return 0;
    }

    @Override
    public String getId() {
      // TODO Auto-generated method stub
      return "1";
    }

    @Override
    public long getLastAccessedTime() {
      // TODO Auto-generated method stub
      return 0;
    }

    @Override
    public int getMaxInactiveInterval() {
      // TODO Auto-generated method stub
      return 0;
    }

    @Override
    public ServletContext getServletContext() {
      // TODO Auto-generated method stub
      return null;
    }

    @Override
    public HttpSessionContext getSessionContext() {
      // TODO Auto-generated method stub
      return null;
    }

    @Override
    public Object getValue(String name) {
      return vals.get(name);
    }

    @Override
    public String[] getValueNames() {
      return (String[]) vals.keySet().toArray();
    }

    @Override
    public void invalidate() {
      // TODO Auto-generated method stub
     
    }

    @Override
    public boolean isNew() {
      // TODO Auto-generated method stub
      return false;
    }

    @Override
    public void putValue(String name, Object value) {
      vals.put(name, value);
     
    }

    @Override
    public void removeAttribute(String name) {
      atrs.remove(name);
     
    }

    @Override
    public void removeValue(String name) {
      vals.remove(name);
     
    }

    @Override
    public void setAttribute(String name, Object value) {
      atrs.put(name, value);
     
    }

    @Override
    public void setMaxInactiveInterval(int interval) {
      // TODO Auto-generated method stub
     
    }

    /**
     * Constructs a <code>String</code> with all attributes
     * in name = value format.
     *
     * @return a <code>String</code> representation
     * of this object.
     */
    public String toString()
    {
        final String TAB = "    ";
       
        String retValue = "";
       
        retValue = "MySession ( "
            + super.toString() + TAB
            + "atrs = " + this.atrs + TAB
            + "vals = " + this.vals + TAB
            + " )";
   
        return retValue;
    }
   
   
   
  }
 
 

}
TOP

Related Classes of nu.localhost.tests.SecuredPageTest$MySession

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.