/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestEngineInputs.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.engine;
import com.meterware.httpunit.*;
import com.uwyn.rife.TestCaseServerside;
import com.uwyn.rife.config.RifeConfig;
import com.uwyn.rife.engine.exceptions.InputUnknownException;
import com.uwyn.rife.tools.BeanUtils;
import java.util.Calendar;
public class TestEngineInputs extends TestCaseServerside
{
public TestEngineInputs(int siteType, String name)
{
super(siteType, name);
}
public void testValid()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/valid");
WebResponse response = conversation.getResponse(request);
assertEquals("another response", response.getText());
}
public void testTyped()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = null;
WebResponse response = null;
request = new GetMethodWebRequest("http://localhost:8181/inputs/typed");
request.setParameter("inputstring1", "astring");
request.setParameter("inputint1", ""+Integer.MAX_VALUE);
request.setParameter("inputlong1", ""+Long.MAX_VALUE);
request.setParameter("inputdouble1", "9873434.4334");
request.setParameter("inputfloat1", "23.12");
Calendar cal = Calendar.getInstance();
cal.set(2007, 6, 11, 12, 58, 22);
cal.set(Calendar.MILLISECOND, 666);
cal.setTimeZone(RifeConfig.Tools.getDefaultTimeZone());
request.setParameter("inputdate1", BeanUtils.getConcisePreciseDateFormat().format(cal.getTime()));
response = conversation.getResponse(request);
assertEquals("inputstring1:astring"+
"inputstring2:null"+
"inputstring2default:stringdefault"+
"inputint1:"+Integer.MAX_VALUE+
"inputint2:0"+
"inputint2default:123"+
"inputlong1:"+Long.MAX_VALUE+
"inputlong2:0"+
"inputlong2default:983749876"+
"inputdouble1:9873434.4334"+
"inputdouble2:0.0"+
"inputdouble2default:34778.34"+
"inputfloat1:23.12"+
"inputfloat2:0.0"+
"inputfloat2default:324.34"+
"inputdate1:20070711125822666+0200"+
"inputdate2:null"+
"inputdate2default:20060610115711555+0200", response.getText());
}
public void testInputsBean()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/bean/normal");
WebResponse response = null;
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23154");
request.setParameter("integer", "893749");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "34878.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "2335454");
request.setParameter("short", "32");
request.setParameter("shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/bean/normal");
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23fd33");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "zef.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "233f5454");
request.setParameter("short", "32");
request.setParameter("shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testInputsBeanPrefix()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/bean/prefix");
WebResponse response = null;
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23154");
request.setParameter("prefix_integer", "893749");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "34878.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "2335454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/bean/prefix");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23fd33");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "zef.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "233f5454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testNamedInputsBean()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/normal");
WebResponse response = null;
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23154");
request.setParameter("integer", "893749");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "34878.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "2335454");
request.setParameter("short", "32");
request.setParameter("shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/normal");
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23fd33");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "zef.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "233f5454");
request.setParameter("short", "32");
request.setParameter("shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testNamedInputsBeanPrefix()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/prefix");
WebResponse response = null;
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23154");
request.setParameter("prefix_integer", "893749");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "34878.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "2335454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/prefix");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23fd33");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "zef.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "233f5454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testGenerated()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = null;
WebResponse response = null;
request = new GetMethodWebRequest("http://localhost:8181/inputs/generated");
request.setParameter("wantsupdates", "on");
request.setParameter("colors", new String[] {"orange", "blue", "green"});
request.setParameter("firstname", "Geert");
request.setParameter("lastname", "Bevin");
response = conversation.getResponse(request);
assertEquals("Geert, Bevin\n"+
"<input type=\"checkbox\" name=\"wantsupdates\" checked=\"checked\"> I want updates<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"orange\" checked=\"checked\">orange<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"blue\" checked=\"checked\">blue<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"red\">red<br />\n"+
"<input type=\"radio\" name=\"firstname\" checked=\"checked\"> Geert\n"+
"<input type=\"radio\" name=\"firstname\"> Nathalie\n"+
"<select name=\"lastname\">\n"+
"\t<option value=\"Bevin\" selected=\"selected\">Bevin</option>\n"+
"\t<option value=\"Mafessoni\">Mafessoni</option>\n"+
"</select>\n", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/generated");
response = conversation.getResponse(request);
assertEquals("<!--V 'INPUT:firstname'/-->, <!--V 'INPUT:lastname'/-->\n"+
"<input type=\"checkbox\" name=\"wantsupdates\"> I want updates<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"orange\">orange<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"blue\">blue<br />\n"+
"<input type=\"checkbox\" name=\"colors\" value=\"red\">red<br />\n"+
"<input type=\"radio\" name=\"firstname\"> Geert\n"+
"<input type=\"radio\" name=\"firstname\"> Nathalie\n"+
"<select name=\"lastname\">\n"+
"\t<option value=\"Bevin\">Bevin</option>\n"+
"\t<option value=\"Mafessoni\">Mafessoni</option>\n"+
"</select>\n", response.getText());
}
public void testDirectAccess()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/valid");
request.setParameter("input1", "first");
request.setParameter("input3", "third");
request.setParameter("input2", "second");
WebResponse response = conversation.getResponse(request);
assertEquals("another responsefirstsecondthird", response.getText());
}
public void testDirectAccessInjection()
throws Exception
{
Calendar cal = Calendar.getInstance(RifeConfig.Tools.getDefaultTimeZone());
cal.clear();
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/valid_injection");
request.setParameter("input1", "first");
cal.set(2006, 9, 23, 10, 23, 11);
request.setParameter("input3", BeanUtils.getConcisePreciseDateFormat().format(cal.getTime()));
cal.set(2007, 2, 11, 15, 4, 54);
request.setParameter("input2", String.valueOf(cal.getTimeInMillis()));
WebResponse response = conversation.getResponse(request);
assertEquals("another responsefirst,20070311150454000+0100,1161591791000", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/valid_injection");
request.setParameter("input1", "first");
cal.set(2006, 9, 23, 10, 23, 11);
request.setParameter("input3", String.valueOf(cal.getTimeInMillis()));
cal.set(2007, 2, 11, 15, 4, 54);
request.setParameter("input2", RifeConfig.Tools.getDefaultInputDateFormat().format(cal.getTimeInMillis()));
response = conversation.getResponse(request);
assertEquals("another responsefirst,20070311150400000+0100,1161591791000", response.getText());
}
public void testNamedInputsBeanInjection()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/normal/injection");
WebResponse response = null;
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23154");
request.setParameter("integer", "893749");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "34878.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "2335454");
request.setParameter("short", "32");
request.setParameter("shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/normal/injection");
request.setParameter("string", "the string");
request.setParameter("boolean", "y");
request.setParameter("string", "the string");
request.setParameter("stringbuffer", "the stringbuffer");
request.setParameter("int", "23fd33");
request.setParameter("char", "u");
request.setParameter("character", "R");
request.setParameter("boolean", "y");
request.setParameter("booleanObject", "no");
request.setParameter("byte", "120");
request.setParameter("byteObject", "21");
request.setParameter("double", "zef.34");
request.setParameter("doubleObject", "25435.98");
request.setParameter("float", "3434.76");
request.setParameter("floatObject", "6534.8");
request.setParameter("long", "34347897");
request.setParameter("longObject", "233f5454");
request.setParameter("short", "32");
request.setParameter("shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testNamedInputsBeanPrefixInjection()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/prefix/injection");
WebResponse response = null;
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23154");
request.setParameter("prefix_integer", "893749");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "34878.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "2335454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "12");
response = conversation.getResponse(request);
assertEquals("the string,the stringbuffer,23154,893749,u,null,true,false,0,21,34878.34,25435.98,3434.76,6534.8,34347897,2335454,32,12", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/named_bean/prefix/injection");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_string", "the string");
request.setParameter("prefix_stringbuffer", "the stringbuffer");
request.setParameter("prefix_int", "23fd33");
request.setParameter("prefix_char", "u");
request.setParameter("prefix_character", "R");
request.setParameter("prefix_boolean", "y");
request.setParameter("prefix_booleanObject", "no");
request.setParameter("prefix_byte", "120");
request.setParameter("prefix_byteObject", "21");
request.setParameter("prefix_double", "zef.34");
request.setParameter("prefix_doubleObject", "25435.98");
request.setParameter("prefix_float", "3434.76");
request.setParameter("prefix_floatObject", "6534.8");
request.setParameter("prefix_long", "34347897");
request.setParameter("prefix_longObject", "233f5454");
request.setParameter("prefix_short", "32");
request.setParameter("prefix_shortObject", "");
response = conversation.getResponse(request);
assertEquals("NOTNUMERIC : int\nNOTNUMERIC : double\nNOTNUMERIC : longObject\nthe string,the stringbuffer,0,null,u,null,true,false,0,21,0.0,25435.98,3434.76,6534.8,34347897,null,32,null", response.getText());
}
public void testInvalid()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/invalid");
try
{
WebResponse response = conversation.getResponse(request);
fail();
assertNotNull(response);
}
catch (HttpInternalErrorException e)
{
assertTrue(getLogSink().getInternalException() instanceof InputUnknownException);
InputUnknownException e2 = (InputUnknownException)getLogSink().getInternalException();
assertEquals("input1", e2.getInputName());
assertEquals(e2.getDeclarationName(), "element/inputs/invalid.xml");
}
}
public void testDefaults()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/defaults");
request.setParameter("input1", "overridden");
WebResponse response = conversation.getResponse(request);
assertEquals("overridden"+
"the second value"+
"3rda-3rdd-3rdc-3rdb"+
"the element config value", response.getText());
}
public void testTargetChild()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/targetchild");
request.setParameter("childinput", "requestvalue");
request.setParameter("overridden", "requestvalue");
request.setParameter("aninput", "requestvalue");
WebResponse response = conversation.getResponse(request);
assertEquals("globalvalue,requestvalue,middleparentvalue,requestvalue", response.getText());
}
public void testMiddleParent()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/targetchild");
request.setParameter("middleparentinput", "requestvalue");
request.setParameter("overridden", "requestvalue");
request.setParameter("aninput", "requestvalue");
WebResponse response = conversation.getResponse(request);
assertEquals("globalvalue,requestvalue,topparentvalue,requestvalue", response.getText());
}
public void testTopParent()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/targetchild");
request.setParameter("topparentinput", "requestvalue");
request.setParameter("overridden", "requestvalue");
request.setParameter("aninput", "requestvalue");
WebResponse response = conversation.getResponse(request);
assertEquals("globalvalue,requestvalue,requestvalue,requestvalue", response.getText());
}
public void testThroughExit()
throws Exception
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest("http://localhost:8181/inputs/exitsource");
request.setParameter("exitinput", "requestvalue");
request.setParameter("aninput", "requestvalue");
WebResponse response = conversation.getResponse(request);
assertEquals("exitsourcevalue,null", response.getText());
}
public void testPathInfoMapping()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request;
WebResponse response;
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=1");
response = conversation.getResponse(request);
response = response.getLinkWith("go").click();
assertEquals("/anotherinput/523exitsourcevalue1/suffix\n"+
"exitsourcevalue1,523,null,null,exitsourcevalue5", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=2");
response = conversation.getResponse(request);
response = response.getLinkWith("go").click();
assertEquals("/\n"+
"exitsourcevalue1,exitsourcevalue2,null,null,exitsourcevalue5", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=3");
response = conversation.getResponse(request);
response = response.getLinkWith("go").click();
assertEquals("/myinput/value1/222122/bacacdd\n"+
"value1,222122,baca,cdd,exitsourcevalue5", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=4");
response = conversation.getResponse(request);
response = response.getForms()[0].submit();
assertEquals("/anotherinput/523exitsourcevalue1/suffix\n"+
"exitsourcevalue1,523,null,null,exitsourcevalue5", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=5");
response = conversation.getResponse(request);
response = response.getForms()[0].submit();
assertEquals("/\n"+
"exitsourcevalue1,exitsourcevalue2,null,null,exitsourcevalue5", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfosource?switch=6");
response = conversation.getResponse(request);
response = response.getForms()[0].submit();
assertEquals("/myinput/value1/222122/bacacdd\n"+
"value1,222122,baca,cdd,exitsourcevalue5", response.getText());
}
public void testPathInfoMappingDirectAccess()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request;
WebResponse response;
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfotarget/myinput/value1/222122/bacacdd?exitinput3=yoyo");
response = conversation.getResponse(request);
assertEquals("/myinput/value1/222122/bacacdd\n"+
"value1,222122,yoyo,cdd,null", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfotarget/anotherinput/6786chars/suffix");
response = conversation.getResponse(request);
assertEquals("/anotherinput/6786chars/suffix\n"+
"chars,6786,null,null,null", response.getText());
}
public void testPathInfoMappingReflexive()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request;
WebResponse response;
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinforeflexive/890");
response = conversation.getResponse(request);
assertEquals("/inputs/pathinforeflexive?globalvar=globalvalue&overridden=globalvalue", response.getText());
}
public void testPathInfoMappingStrict()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request;
WebResponse response;
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfostrict/theid1/890");
response = conversation.getResponse(request);
assertEquals(".PATHINFOSTRICT1,890", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfostrict/theid1/in/valid");
try
{
response = conversation.getResponse(request);
fail();
}
catch (HttpNotFoundException e)
{
assertTrue(true);
}
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfostrict/9456/theid2");
response = conversation.getResponse(request);
assertEquals(".PATHINFOSTRICT2,9456", response.getText());
request = new GetMethodWebRequest("http://localhost:8181/inputs/pathinfostrict/in/valid/theid2");
try
{
response = conversation.getResponse(request);
fail();
}
catch (HttpNotFoundException e)
{
assertTrue(true);
}
}
public void testReflexiveSubmission()
throws Throwable
{
setupSite("site/inputs.xml");
WebConversation conversation = new WebConversation();
WebRequest request;
WebResponse response;
request = new GetMethodWebRequest("http://localhost:8181/inputs/reflexivesubmission?inputreflexive=requestvalue1&inputnormal=requestvalue2");
response = conversation.getResponse(request);
assertEquals("requestvalue1", response.getElementWithID("inputreflexive").getText());
assertEquals("requestvalue2", response.getElementWithID("inputnormal").getText());
WebForm form = response.getForms()[0];
form.setParameter("param", "paramvalue");
response = form.submit();
assertEquals("paramvalue\n"+
"outputreflexivevalue\n"+
"requestvalue2", response.getText());
}
}