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

    1   package org.displaytag.jsptests;
    2   
    3   import org.displaytag.properties.MediaTypeEnum;
    4   import org.displaytag.tags.TableTagParameters;
    5   import org.displaytag.test.DisplaytagCase;
    6   import org.displaytag.util.ParamEncoder;
    7   
    8   import com.meterware.httpunit.GetMethodWebRequest;
    9   import com.meterware.httpunit.WebRequest;
   10   import com.meterware.httpunit.WebResponse;
   11   import com.meterware.httpunit.WebTable;
   12   
   13   
   14   /**
   15    * Tests for optimized iterations (don't evaluate unneeded body of columns).
   16    * @author Fabrizio Giustina
   17    * @version $Revision: 707 $ ($Author: fgiust $)
   18    */
   19   public class OptimizedIteration3Test extends DisplaytagCase
   20   {
   21   
   22       /**
   23        * @see org.displaytag.test.DisplaytagCase#getJspName()
   24        */
   25       public String getJspName()
   26       {
   27           return "optimizediteration3.jsp";
   28       }
   29   
   30       /**
   31        * Verifies that the generated page contains the pagination links with the inupt parameter. Tests #917200 ("{}" in
   32        * parameters).
   33        * @param jspName jsp name, with full path
   34        * @throws Exception any axception thrown during test.
   35        */
   36       public void doTest(String jspName) throws Exception
   37       {
   38   
   39           WebRequest request = new GetMethodWebRequest(jspName);
   40           ParamEncoder encoder = new ParamEncoder("table");
   41   
   42           // not sorted
   43           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_PAGE), "1");
   44           checkNumberOfIterations(runner.getResponse(request), 1);
   45   
   46           // page 2, sorted
   47           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_SORT), "1");
   48           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_PAGE), "2");
   49           checkNumberOfIterations(runner.getResponse(request), 1);
   50   
   51           // export full
   52           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_PAGE), "2");
   53           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_EXPORTTYPE), Integer
   54               .toString(MediaTypeEnum.CSV.getCode()));
   55           request.setParameter(encoder.encodeParameterName(TableTagParameters.PARAMETER_PAGE), "1");
   56   
   57           WebResponse response = runner.getResponse(request);
   58           String csvExport = response.getText();
   59           if (log.isDebugEnabled())
   60           {
   61               log.debug(response.getText());
   62           }
   63   
   64           assertEquals("Wrong csv export", "ant,1\nant,2\nant,3\nant,4\n", csvExport);
   65   
   66       }
   67   
   68       /**
   69        * @param response WebResponse
   70        * @param iterations expected number of iterations
   71        * @throws Exception any axception thrown during test.
   72        */
   73       private void checkNumberOfIterations(WebResponse response, int iterations) throws Exception
   74       {
   75           if (log.isDebugEnabled())
   76           {
   77               log.debug(response.getText());
   78           }
   79   
   80           WebTable[] tables = response.getTables();
   81           assertEquals("Expected 1 table in result.", 1, tables.length);
   82           assertEquals("Expected 2 rows in table.", 2, tables[0].getRowCount());
   83   
   84           assertEquals("Wrong number of iterations. Evaluated column bodies number is different from expected", Integer
   85               .toString(iterations), response.getElementWithID("iterations").getText());
   86       }
   87   }

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