1 package org.displaytag.jsptests; 2 3 import org.displaytag.tags.TableTagParameters; 4 import org.displaytag.test.DisplaytagCase; 5 import org.displaytag.util.ParamEncoder; 6 7 import com.meterware.httpunit.GetMethodWebRequest; 8 import com.meterware.httpunit.WebLink; 9 import com.meterware.httpunit.WebRequest; 10 import com.meterware.httpunit.WebResponse; 11 import com.meterware.httpunit.WebTable; 12 13 14 /** 15 * Basic tests for pagination. 16 * @author Fabrizio Giustina 17 * @version $Revision: 1024 $ ($Author: fgiust $) 18 */ 19 public class ExternalSortTest extends DisplaytagCase 20 { 21 22 /** 23 * @see org.displaytag.test.DisplaytagCase#getJspName() 24 */ 25 public String getJspName() 26 { 27 return "externalSort.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 p1 = new ParamEncoder("table"); 41 ParamEncoder p2 = new ParamEncoder("table2"); 42 43 request.setParameter(p2.encodeParameterName(TableTagParameters.PARAMETER_SORT), "number"); 44 request.setParameter(p2.encodeParameterName(TableTagParameters.PARAMETER_SORTUSINGNAME), "1"); 45 46 WebResponse response = runner.getResponse(request); 47 48 if (log.isDebugEnabled()) 49 { 50 log.debug("RESPONSE: " + response.getText()); 51 } 52 53 WebLink[] links = response.getLinks(); 54 55 assertEquals("0", links[0].getParameterValues(p1.encodeParameterName(TableTagParameters.PARAMETER_SORT))[0]); 56 assertEquals("2", links[0].getParameterValues(p1.encodeParameterName(TableTagParameters.PARAMETER_ORDER))[0]); 57 58 assertEquals("buzz", links[1].getParameterValues(p1.encodeParameterName(TableTagParameters.PARAMETER_SORT))[0]); 59 assertEquals("2", links[1].getParameterValues(p1.encodeParameterName(TableTagParameters.PARAMETER_ORDER))[0]); 60 61 // test that the column with sortName buzz was set as sorted and now has a link to sort desc 62 assertEquals( 63 "number", 64 links[2].getParameterValues(p2.encodeParameterName(TableTagParameters.PARAMETER_SORT))[0]); 65 assertEquals("1", links[2].getParameterValues(p2.encodeParameterName(TableTagParameters.PARAMETER_ORDER))[0]); 66 67 // now ensure that our data has not been sorted at all since we are doing it 'externally' 68 WebTable[] tables = response.getTables(); 69 assertEquals("1", tables[1].getCellAsText(1, 0)); 70 assertEquals("4", tables[1].getCellAsText(2, 0)); 71 assertEquals("2", tables[1].getCellAsText(3, 0)); 72 assertEquals("3", tables[1].getCellAsText(4, 0)); 73 } 74 }