[Httpunit-commit] CVS: httpunit/src/com/meterware/httpunit ParsedHTML.java,1.41,1.42
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2002-12-26 20:50:51
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/httpunit
In directory sc8-pr-cvs1:/tmp/cvs-serv2922/src/com/meterware/httpunit
Modified Files:
ParsedHTML.java
Log Message:
Treat controls between forms as belonging to the preceding form
Index: ParsedHTML.java
===================================================================
RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/ParsedHTML.java,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- ParsedHTML.java 26 Dec 2002 18:55:18 -0000 1.41
+++ ParsedHTML.java 26 Dec 2002 20:50:48 -0000 1.42
@@ -54,6 +54,7 @@
private ArrayList _formsList = new ArrayList();
private WebForm[] _forms;
+ private WebForm _activeForm;
private ArrayList _imagesList = new ArrayList();
private WebImage[] _images;
@@ -218,6 +219,10 @@
final protected Object getClosestContext( NodeUtils.PreOrderTraversal pot, Class aClass ) {
return pot.getClosestContext( aClass );
}
+
+ protected ParsedHTML getRootContext( NodeUtils.PreOrderTraversal pot ) {
+ return (ParsedHTML) pot.getContexts().next();
+ }
}
@@ -225,7 +230,12 @@
HTMLElement toHTMLElement( NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML, Element element ) {
return parsedHTML.toWebForm( element );
}
- protected boolean addToContext() { return true; }
+
+
+ protected void addToLists( NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement ) {
+ super.addToLists( pot, htmlElement );
+ getRootContext( pot )._activeForm = (WebForm) htmlElement;
+ }
}
@@ -296,10 +306,11 @@
static class FormControlFactory extends HTMLElementFactory {
HTMLElement toHTMLElement( NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML, Element element ) {
- return getForm( pot ).newFormControl( element );
+ final WebForm form = getForm( pot );
+ return form == null ? null : form.newFormControl( element );
}
private WebForm getForm( NodeUtils.PreOrderTraversal pot ) {
- return (WebForm) getClosestContext( pot, WebForm.class );
+ return getRootContext( pot )._activeForm;
}
protected void addToLists( NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement ) {
getForm( pot ).addFormControl( (FormControl) htmlElement );
|