Home » displaytag-1.1.1-src » org » displaytag » jsptests » [javadoc | source]

    1   package org.displaytag.jsptests;
    2   
    3   import org.apache.log4j.Level;
    4   import org.apache.log4j.Logger;
    5   import org.displaytag.properties.MediaTypeEnum;
    6   import org.displaytag.tags.TableTag;
    7   import org.displaytag.tags.TableTagParameters;
    8   import org.displaytag.tags.el.ELTableTag;
    9   import org.displaytag.test.DisplaytagCase;
   10   import org.displaytag.util.ParamEncoder;
   11   
   12   import com.meterware.httpunit.GetMethodWebRequest;
   13   import com.meterware.httpunit.HttpInternalErrorException;
   14   import com.meterware.httpunit.WebRequest;
   15   import com.meterware.httpunit.WebResponse;
   16   
   17   
   18   /**
   19    * Tests the ResponseOverrideFilter.
   20    * @author Fabrizio Giustina
   21    * @version $Revision: 707 $ ($Author: fgiust $)
   22    */
   23   public class FilterTest extends DisplaytagCase
   24   {
   25   
   26       /**
   27        * @see org.displaytag.test.DisplaytagCase#getJspName()
   28        */
   29       public String getJspName()
   30       {
   31           return "filter.jsp";
   32       }
   33   
   34       /**
   35        * @see org.displaytag.test.DisplaytagCase#doTest(java.lang.String)
   36        */
   37       public void doTest(String jspName) throws Exception
   38       {
   39           ParamEncoder encoder = new ParamEncoder("table");
   40           String mediaParameter = encoder.encodeParameterName(TableTagParameters.PARAMETER_EXPORTTYPE);
   41   
   42           WebRequest request = new GetMethodWebRequest(jspName);
   43           request.setParameter(mediaParameter, Integer.toString(MediaTypeEnum.XML.getCode()));
   44   
   45           // save previous level, since we are expeting an excetion I don't want to fill logs
   46           Level previousLevel = Logger.getLogger(TableTag.class).getLevel();
   47           Level previousLevelEL = Logger.getLogger(ELTableTag.class).getLevel();
   48   
   49           try
   50           {
   51               // disable log
   52               Logger.getLogger(TableTag.class).setLevel(Level.OFF);
   53               Logger.getLogger(ELTableTag.class).setLevel(Level.OFF);
   54   
   55               // check if page need a filter (unfiltered request)
   56               runner.getResponse(request);
   57               fail("Request works also without a filter. Can't test it properly.");
   58           }
   59           catch (HttpInternalErrorException e)
   60           {
   61               // it's ok
   62           }
   63   
   64           // reset log
   65           Logger.getLogger(TableTag.class).setLevel(previousLevel);
   66           Logger.getLogger(ELTableTag.class).setLevel(previousLevelEL);
   67   
   68           request = new GetMethodWebRequest(jspName);
   69           request.setParameter(mediaParameter, Integer.toString(MediaTypeEnum.XML.getCode()));
   70   
   71           // this enable the filter!
   72           request.setParameter(TableTagParameters.PARAMETER_EXPORTING, "1");
   73   
   74           WebResponse response = runner.getResponse(request);
   75   
   76           assertEquals("Expected a different content type.", "text/xml", response.getContentType());
   77       }
   78   
   79   }

Home » displaytag-1.1.1-src » org » displaytag » jsptests » [javadoc | source]