Package org.geoserver.filters

Source Code of org.geoserver.filters.BufferedRequestWrapperTest

/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.geoserver.filters;

import java.io.BufferedReader;
import java.util.Map;

import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;

import junit.framework.Test;

public class BufferedRequestWrapperTest extends RequestWrapperTestSupport{

  /**
     * This is a READ ONLY TEST so we can use one time setup
     */
    public static Test suite() {
        return new OneTimeTestSetup(new BufferedRequestWrapperTest());
    }

  public void testGetInputStream() throws Exception{
    for (int i = 0; i < testStrings.length; i++){
      doInputStreamTest(testStrings[i]);
    }
  }

  public void testGetReader() throws Exception{
      for (int i = 0; i < testStrings.length; i++){
      doGetReaderTest(testStrings[i]);
    }
  }

  public void doInputStreamTest(String testString) throws Exception{
    HttpServletRequest req = makeRequest(testString, null);

    BufferedRequestWrapper wrapper = new BufferedRequestWrapper(req, testString);
    ServletInputStream sis = req.getInputStream();
    byte b[] = new byte[32];
    int amountRead;

    while (( sis.readLine(b, 0, 32)) > 0){ /*clear out the request body*/ }

    sis = wrapper.getInputStream();
    StringBuffer buff = new StringBuffer();

    while ((amountRead = sis.readLine(b, 0, 32)) != 0){
      buff.append(new String(b, 0, amountRead));
    }

    assertEquals(buff.toString(), testString);
  }

    public void doGetReaderTest(String testString) throws Exception{
    HttpServletRequest req = makeRequest(testString, null);

    BufferedReader br = req.getReader();
    while ((br.readLine()) != null){ /* clear out the body */ }

    BufferedRequestWrapper wrapper = new BufferedRequestWrapper(req, testString);
    StringBuffer buff = new StringBuffer();
        int c;
    br = wrapper.getReader();
   
    while ((c = br.read()) != -1){
      buff.append((char)c);
    }

    assertEquals(buff.toString(), testString);
  }
   
    public void testMixedRequest() throws Exception {
        String body = "a=1&b=2";
        String queryString = "c=3&d=4";
        HttpServletRequest req = makeRequest(body, queryString);

        BufferedReader br = req.getReader();
        while ((br.readLine()) != null){ /* clear out the body */ }

        BufferedRequestWrapper wrapper = new BufferedRequestWrapper(req, body);
        Map params = wrapper.getParameterMap();
        assertEquals(4, params.size());
        assertEquals("1", ((String[]) params.get("a"))[0]);
        assertEquals("2", ((String[]) params.get("b"))[0]);
        assertEquals("3", ((String[]) params.get("c"))[0]);
        assertEquals("4", ((String[]) params.get("d"))[0]);
    }
}
TOP

Related Classes of org.geoserver.filters.BufferedRequestWrapperTest

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.