[Httpunit-commit] CVS: httpunit/test/com/meterware/httpunit FormParametersTest.java,1.3,1.4 FormSubm
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2000-10-31 19:54:17
|
Update of /cvsroot/httpunit/httpunit/test/com/meterware/httpunit In directory slayer.i.sourceforge.net:/tmp/cvs-serv1904/test/com/meterware/httpunit Modified Files: FormParametersTest.java FormSubmitTest.java HtmlTablesTest.java WebFormTest.java Log Message: Initial submit button support Index: FormParametersTest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/test/com/meterware/httpunit/FormParametersTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- FormParametersTest.java 2000/09/27 18:04:04 1.3 +++ FormParametersTest.java 2000/10/31 19:54:15 1.4 @@ -59,7 +59,7 @@ "<Select name=colors><Option>blue<Option>red</Select>" + "<Select name=fish><Option value=red>snapper<Option value=pink>salmon</select>" + "<Select name=media multiple size=2><Option>TV<Option>Radio</select>" + - "</form>" ); + "<Input type=submit name=submit value=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( false ); @@ -77,7 +77,7 @@ "<Select name=colors><Option>blue<Option>red</Select>" + "<Select name=fish><Option value=red>snapper<Option value=pink>salmon</select>" + "<Select name=media multiple size=2><Option>TV<Option>Radio</select>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( true ); @@ -102,7 +102,7 @@ "<Input type=text name=color>" + "<Input type=password name=password>" + "<Input type=hidden name=secret>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( false ); @@ -120,7 +120,7 @@ "<Input type=text name=color>" + "<Input type=password name=password>" + "<Input type=hidden name=secret>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( true ); @@ -138,7 +138,7 @@ "<Input type=radio name=color value=red>" + "<Input type=radio name=color value=blue>" + "<Input type=radio name=color value=green>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( false ); @@ -152,7 +152,7 @@ "<Input type=radio name=color value=red>" + "<Input type=radio name=color value=blue>" + "<Input type=radio name=color value=green>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( true ); @@ -168,7 +168,7 @@ "<Input type=checkbox name=use_color>" + "<Input type=checkbox name=color value=red>" + "<Input type=checkbox name=color value=blue>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); HttpUnitOptions.setParameterValuesValidated( false ); Index: FormSubmitTest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/test/com/meterware/httpunit/FormSubmitTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FormSubmitTest.java 2000/10/26 14:16:49 1.1 +++ FormSubmitTest.java 2000/10/31 19:54:15 1.2 @@ -57,6 +57,7 @@ public void testSubmitString() throws Exception { defineWebPage( "Default", "<form method=GET action = \"/ask\">" + "<Input type=text name=age>" + + "<Input type=submit value=Go>" + "</form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); @@ -69,11 +70,154 @@ defineWebPage( "Default", "<form method=GET action = \"/ask\">" + "<Input type=text value=dontSend>" + "<Input type=text name=age>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebRequest request = page.getForms()[0].getRequest(); request.setParameter( "age", "23" ); assertEquals( getHostPath() + "/ask?age=23", request.getURL().toExternalForm() ); + } + + + public void testSubmitButtonDetection() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update>" + + "<Input type=submit name=recalculate>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + SubmitButton[] buttons = form.getSubmitButtons(); + assertEquals( "num detected submit buttons", 2, buttons.length ); + } + + + public void testImageButtonDetection() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=image name=update src=\"\">" + + "<Input type=image name=recalculate src=\"\">" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + SubmitButton[] buttons = form.getSubmitButtons(); + assertEquals( "num detected submit buttons", 2, buttons.length ); + } + + + public void testSubmitButtonAttributes() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + SubmitButton[] buttons = form.getSubmitButtons(); + assertEquals( "num detected submit buttons", 1, buttons.length ); + assertEquals( "submit button name", "update", buttons[0].getName() ); + assertEquals( "submit button value", "age", buttons[0].getValue() ); + } + + + public void testSubmitButtonSelectionByName() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=recompute value=age>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + SubmitButton button = form.getSubmitButton( "zork" ); + assertNull( "Found a non-existent button", button ); + button = form.getSubmitButton( "update" ); + assertNotNull( "Didn't find the desired button", button ); + assertEquals( "submit button name", "update", button.getName() ); + assertEquals( "submit button value", "age", button.getValue() ); + } + + + public void testSubmitButtonSelectionByNameAndValue() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=update value=name>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + SubmitButton button = form.getSubmitButton( "update" ); + assertNotNull( "Didn't find the desired button", button ); + assertEquals( "submit button name", "update", button.getName() ); + assertEquals( "submit button value", "age", button.getValue() ); + button = form.getSubmitButton( "update", "name" ); + assertNotNull( "Didn't find the desired button", button ); + assertEquals( "submit button name", "update", button.getName() ); + assertEquals( "submit button value", "name", button.getValue() ); + } + + + public void testNamedButtonSubmitString() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=update value=name>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + WebRequest request = form.getRequest( form.getSubmitButton( "update", "name" ) ); + assertEquals( getHostPath() + "/ask?update=name&age=12", request.getURL().toExternalForm() ); + } + + + public void testUnnamedButtonSubmit() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=update value=name>" + + "</form>" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebForm form = page.getForms()[0]; + try { + WebRequest request = form.getRequest(); + fail( "Should not allow submit with unnamed button" ); + } catch (IllegalRequestParameterException e) { + } + } + + + public void testForeignSubmitButtonDetection() throws Exception { + defineWebPage( "Default", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=update value=name>" + + "</form>" ); + defineWebPage( "Dupl", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=update value=age>" + + "<Input type=submit name=update value=name>" + + "</form>" ); + defineWebPage( "Wrong", "<form method=GET action = \"/ask\">" + + "<Input type=text name=age value=12>" + + "<Input type=submit name=save value=age>" + + "</form>" ); + WebResponse other = _wc.getResponse( getHostPath() + "/Dupl.html" ); + WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); + WebResponse wrong = _wc.getResponse( getHostPath() + "/Wrong.html" ); + + WebForm form = page.getForms()[0]; + WebForm otherForm = other.getForms()[0]; + WebForm wrongForm = wrong.getForms()[0]; + + HttpUnitOptions.setParameterValuesValidated( true ); + WebRequest request = form.getRequest( otherForm.getSubmitButtons()[0] ); + + HttpUnitOptions.setParameterValuesValidated( false ); + request = form.getRequest( wrongForm.getSubmitButtons()[0] ); + + HttpUnitOptions.setParameterValuesValidated( true ); + try { + request = form.getRequest( wrongForm.getSubmitButtons()[0] ); + fail( "Failed to reject illegal button" ); + } catch (IllegalRequestParameterException e) { + } } Index: HtmlTablesTest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/test/com/meterware/httpunit/HtmlTablesTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- HtmlTablesTest.java 2000/09/27 18:04:04 1.9 +++ HtmlTablesTest.java 2000/10/31 19:54:15 1.10 @@ -210,6 +210,13 @@ assertEquals( "Non-blank rows", 2, cells.length ); assertEquals( "Non-blank columns", 2, cells[0].length ); assertEquals( "cell at 1,0", "Blue", cells[1][0] ); + + wt = page.getTableWithSummary( "Inner One" ); + assertNotNull( "Did not find table starting with summary 'Inner One'", wt ); + cells = wt.asText(); + assertEquals( "Total rows", 3, cells.length ); + assertEquals( "Total columns", 2, cells[0].length ); + assertEquals( "cell at 2,0", "Blue", cells[2][0] ); } Index: WebFormTest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/test/com/meterware/httpunit/WebFormTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- WebFormTest.java 2000/10/17 14:14:35 1.7 +++ WebFormTest.java 2000/10/31 19:54:15 1.8 @@ -145,7 +145,7 @@ "<Select name=color><Option>blue<Option selected>red \n" + "<Option>green</select>" + "<TextArea name=\"text\">Sample text</TextArea>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); @@ -165,7 +165,7 @@ "<Select multiple size=4 name=colors>" + "<Option>blue<Option selected>red \n" + "<Option>green<Option value=\"pink\" selected>salmon</select>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); WebForm form = page.getForms()[0]; @@ -186,7 +186,7 @@ "<Select name=colors><Option>blue<Option>red</Select>" + "<Select name=fish><Option value=red>snapper<Option value=pink>salmon</select>" + "<Select name=media multiple size=2><Option>TV<Option>Radio</select>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse page = _wc.getResponse( getHostPath() + "/Default.html" ); @@ -210,7 +210,7 @@ "<Input type=checkbox name=color value=blue checked>" + "<Input type=checkbox name=gender value=male checked>" + "<Input type=checkbox name=gender value=female>" + - "</form>" ); + "<Input type=submit></form>" ); WebResponse response = _wc.getResponse( getHostPath() + "/Default.html" ); assertNotNull( response.getForms() ); |