[Httpunit-commit] CVS: httpunit/src/com/meterware/httpunit FixedURLWebRequestSource.java,NONE,1.1 Ge
Brought to you by:
russgold
Update of /cvsroot/httpunit/httpunit/src/com/meterware/httpunit In directory usw-pr-cvs1:/tmp/cvs-serv19200/src/com/meterware/httpunit Modified Files: GetMethodWebRequest.java HttpUnitOptions.java ParsedHTML.java WebImage.java WebLink.java Added Files: FixedURLWebRequestSource.java Log Message: Added WebImage.getRequest ***** Error reading new file[Errno 2] No such file or directory: 'FixedURLWebRequestSource.java' Index: GetMethodWebRequest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/GetMethodWebRequest.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- GetMethodWebRequest.java 19 Aug 2002 18:52:26 -0000 1.15 +++ GetMethodWebRequest.java 29 Aug 2002 15:32:44 -0000 1.16 @@ -95,9 +95,9 @@ /** - * Constructs a web request for a link. + * Constructs a web request for a link or image. **/ - GetMethodWebRequest( WebLink sourceLink ) { + GetMethodWebRequest( FixedURLWebRequestSource sourceLink ) { super( sourceLink ); } Index: HttpUnitOptions.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/HttpUnitOptions.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- HttpUnitOptions.java 20 Aug 2002 15:09:28 -0000 1.24 +++ HttpUnitOptions.java 29 Aug 2002 15:32:44 -0000 1.25 @@ -223,6 +223,9 @@ /** * If true, tells HttpUnit to throw an exception on any attempt to set a form parameter to a value * which could not be set via the browser. The default is true (parameters are validated). + * Note: this only applies to a WebRequest created after this setting is changed. A request created + * with this option disabled will not only not be checked for correctness, its parameter submission + * order will not be guaranteed, and changing parameters will not trigger Javascript onChange / onClick events. **/ public static void setParameterValuesValidated( boolean validated ) { _parameterValuesValidated = validated; Index: ParsedHTML.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/ParsedHTML.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- ParsedHTML.java 22 Aug 2002 16:19:54 -0000 1.25 +++ ParsedHTML.java 29 Aug 2002 15:32:44 -0000 1.26 @@ -177,7 +177,7 @@ _images = new WebImage[ images.getLength() ]; for (int i = 0; i < _images.length; i++) { - _images[i] = new WebImage( this, _baseURL, images.item( i ) ); + _images[i] = new WebImage( _response, this, _baseURL, images.item( i ), _baseTarget ); } } return _images; Index: WebImage.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/WebImage.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WebImage.java 22 Aug 2002 16:19:54 -0000 1.4 +++ WebImage.java 29 Aug 2002 15:32:44 -0000 1.5 @@ -30,7 +30,7 @@ * * @author <a href="mailto:rus...@ac...">Russell Gold</a> **/ -public class WebImage { +public class WebImage extends FixedURLWebRequestSource { private URL _baseURL; private Node _node; @@ -40,7 +40,8 @@ private String _alt; - WebImage( ParsedHTML parsedHTML, URL baseURL, Node node ) { + WebImage( WebResponse response, ParsedHTML parsedHTML, URL baseURL, Node node, String parentTarget ) { + super( response, node, baseURL, NodeUtils.getNodeAttribute( node, "src" ), parentTarget ); _baseURL = baseURL; _node = node; _parsedHTML = parsedHTML; @@ -107,4 +108,14 @@ } +//---------------------------------- WebRequestSource methods ------------------------------------------ + + + /** + * Returns the scriptable delegate. + */ + + ScriptableDelegate getScriptableDelegate() { + return getScriptableObject(); + } } Index: WebLink.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/WebLink.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- WebLink.java 23 Aug 2002 19:33:13 -0000 1.25 +++ WebLink.java 29 Aug 2002 15:32:44 -0000 1.26 @@ -21,17 +21,9 @@ *******************************************************************************************************************/ import com.meterware.httpunit.scripting.ScriptableDelegate; -import java.net.URL; -import java.net.MalformedURLException; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.List; -import java.util.Arrays; import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; import org.w3c.dom.Node; import org.xml.sax.SAXException; @@ -44,7 +36,7 @@ * @author <a href="mailto:rus...@ac...">Russell Gold</a> * @author <a href="mailto:ben...@av...>Benoit Xhenseval</a> **/ -public class WebLink extends WebRequestSource { +public class WebLink extends FixedURLWebRequestSource { private Scriptable _scriptable; @@ -96,141 +88,6 @@ } -//----------------------------------------- WebRequestSource methods --------------------------------------------------- - - - /** - * Creates and returns a web request which will simulate clicking on this link. - **/ - public WebRequest getRequest() { - return new GetMethodWebRequest( this ); - } - - - /** - * Returns the scriptable delegate. - */ - ScriptableDelegate getScriptableDelegate() { - return getScriptableObject(); - } - - - /** - * Returns an array containing the names of any parameters defined as part of this link's URL. - **/ - public String[] getParameterNames() { - ArrayList parameterNames = new ArrayList( getPresetParameterMap().keySet() ); - return (String[]) parameterNames.toArray( new String[ parameterNames.size() ] ); - } - - - /** - * Returns the multiple default values of the named parameter. - **/ - public String[] getParameterValues( String name ) { - final String[] values = (String[]) getPresetParameterMap().get( name ); - return values == null ? NO_VALUES : values; - } - - -//--------------------------------- ParameterHolder methods -------------------------------------- - - - /** - * Specifies the position at which an image button (if any) was clicked. - **/ - void selectImageButtonPosition( SubmitButton imageButton, int x, int y ) { - throw new IllegalLinkParametersRequest(); - } - - - /** - * Iterates through the fixed, predefined parameters in this holder, recording them in the supplied parameter processor.\ - * These parameters always go on the URL, no matter what encoding method is used. - **/ - - void recordPredefinedParameters( ParameterProcessor processor ) throws IOException { - } - - - /** - * Iterates through the parameters in this holder, recording them in the supplied parameter processor. - **/ - void recordParameters( ParameterProcessor processor ) throws IOException { - Iterator i = getPresetParameterList().iterator(); - while (i.hasNext()) { - LinkParameter o = (LinkParameter) i.next(); - processor.addParameter( o.getName(), o.getValue(), getCharacterSet() ); - } - } - - - /** - * Removes a parameter name from this collection. - **/ - void removeParameter( String name ) { - throw new IllegalLinkParametersRequest(); - } - - - /** - * Sets the value of a parameter in a web request. - **/ - void setParameter( String name, String value ) { - setParameter( name, new String[] { value } ); - } - - - /** - * Sets the multiple values of a parameter in a web request. - **/ - void setParameter( String name, String[] values ) { - if (values == null) { - throw new IllegalArgumentException( "May not supply a null argument array to setParameter()" ); - } else if (!getPresetParameterMap().containsKey( name )) { - throw new IllegalLinkParametersRequest(); - } else if (!equals( getParameterValues( name ), values )) { - throw new IllegalLinkParametersRequest(); - } - } - - - private boolean equals( String[] left, String[] right ) { - if (left.length != right.length) return false; - List rightValues = Arrays.asList( right ); - for (int i = 0; i < left.length; i++) { - if (!rightValues.contains( left[i] )) return false; - } - return true; - } - - - /** - * Sets the multiple values of a file upload parameter in a web request. - **/ - void setParameter( String name, UploadFileSpec[] files ) { - throw new IllegalLinkParametersRequest(); - } - - - /** - * Returns true if the specified parameter is a file field. - **/ - boolean isFileParameter( String name ) { - return false; - } - - - boolean isSubmitAsMime() { - return false; - } - - - void setSubmitAsMime( boolean mimeEncoded ) { - throw new IllegalStateException( "May not change the encoding for a validated request created from a link" ); - } - - public class Scriptable extends ScriptableDelegate { public Object get( String propertyName ) { @@ -252,6 +109,17 @@ } +//----------------------------------------- WebRequestSource methods --------------------------------------------------- + + + /** + * Returns the scriptable delegate. + */ + ScriptableDelegate getScriptableDelegate() { + return getScriptableObject(); + } + + //--------------------------------------------------- package members -------------------------------------------------- @@ -271,75 +139,6 @@ if (_scriptable == null) _scriptable = new Scriptable(); return _scriptable; } - - -//--------------------------------------------------- private members -------------------------------------------------- - - - private static final String[] NO_VALUES = new String[0]; - - private Map _presetParameterMap; - private ArrayList _presetParameterList; - - - private Map getPresetParameterMap() { - if (_presetParameterMap == null) loadPresetParameters(); - return _presetParameterMap; - } - - - private ArrayList getPresetParameterList() { - if (_presetParameterList == null) loadPresetParameters(); - return _presetParameterList; - } - - - private void loadPresetParameters() { - _presetParameterMap = new HashMap(); - _presetParameterList = new ArrayList(); - loadDestinationParameters(); - } - - - protected void addPresetParameter( String name, String value ) { - _presetParameterMap.put( name, HttpUnitUtils.withNewValue( (String[]) _presetParameterMap.get( name ), value ) ); - _presetParameterList.add( new LinkParameter( name, value ) ); - } - - -} - - -class LinkParameter { - private String _name; - private String _value; - - - public LinkParameter( String name, String value ) { - _name = name; - _value = value; - } - - - public String getName() { - return _name; - } - - - public String getValue() { - return _value; - } -} - - -class IllegalLinkParametersRequest extends IllegalRequestParameterException { - - public IllegalLinkParametersRequest() { - } - - public String getMessage() { - return "May not modify parameters for a request derived from a link with parameter checking enabled."; - } } |