oglueck     2002/12/19 02:23:39

  Modified:    httpclient/src/java/org/apache/commons/httpclient
                        HttpClient.java HttpMethod.java HttpMethodBase.java
                        HttpUrlMethod.java
               httpclient/src/java/org/apache/commons/httpclient/methods
                        DeleteMethod.java GetMethod.java HeadMethod.java
                        MultipartPostMethod.java OptionsMethod.java
                        PostMethod.java PutMethod.java TraceMethod.java
                        UrlDeleteMethod.java UrlGetMethod.java
                        UrlHeadMethod.java UrlOptionsMethod.java
                        UrlPostMethod.java UrlPutMethod.java
               httpclient/src/test/org/apache/commons/httpclient
                        TestHttpUrlMethod.java
  Log:
  HttpMethod constructors now accept urls
  Deprecated the URL*Methods
  
  Patch contributed by: Michael Becke
  
  Revision  Changes    Path
  1.65      +11 -5     
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpClient.java
  
  Index: HttpClient.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpClient.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- HttpClient.java   17 Dec 2002 01:36:41 -0000      1.64
  +++ HttpClient.java   19 Dec 2002 10:23:34 -0000      1.65
  @@ -469,7 +469,13 @@
           throws IOException, HttpException  {
               
           log.trace("enter HttpClient.executeMethod(HttpMethod)");
  -        return executeMethod(getHostConfiguration(), method);
  +        // execute this method and use its host configuration, if it has one
  +        return executeMethod(
  +            method.getHostConfiguration() != null 
  +            ? method.getHostConfiguration()
  +            : getHostConfiguration(), 
  +            method
  +        );
           
       }
       
  
  
  
  1.21      +21 -4     
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethod.java
  
  Index: HttpMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethod.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- HttpMethod.java   3 Dec 2002 05:46:15 -0000       1.20
  +++ HttpMethod.java   19 Dec 2002 10:23:35 -0000      1.21
  @@ -89,6 +89,13 @@
       public String getName();
   
       /**
  +     * Gets the host configuration for this method.
  +     * 
  +     * @return the HostConfiguration or <code>null</code> if none is set
  +     */
  +    public HostConfiguration getHostConfiguration();
  +
  +    /**
        * Set the path part of my request.
        * @param path the path to request
        */
  @@ -105,6 +112,16 @@
        * @return the path to request
        */
       public String getPath();
  +
  +    /**
  +     * Gets the URI for this method.  The URI will be absolute if the host
  +     * configuration has been set or relative otherwise.
  +     * 
  +     * @return URI 
  +     * 
  +     * @throws URIException if a URI cannot be constructed
  +     */
  +    public URI getURI() throws URIException;
   
       /**
        * Turns strict mode on or off.  In strict mode (the default)
  
  
  
  1.91      +89 -13    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java
  
  Index: HttpMethodBase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v
  retrieving revision 1.90
  retrieving revision 1.91
  diff -u -r1.90 -r1.91
  --- HttpMethodBase.java       16 Dec 2002 05:16:04 -0000      1.90
  +++ HttpMethodBase.java       19 Dec 2002 10:23:35 -0000      1.91
  @@ -238,6 +238,9 @@
       /** How many times did this transparently handle a recoverable exception? */
       private int recoverableExceptionCount = 0;
   
  +    /** the host configuration for this method, can be null */
  +    private HostConfiguration hostConfiguration;
  +
       /**
        * The maximum number of attempts to attempt recovery from an
        * HttpRecoverableException.
  @@ -263,18 +266,47 @@
       }
   
       /**
  -     * Path-specifying constructor.
  +     * Constructor specifying a URI.
        *
  -     * @param path my path which can include a query
  +     * @param uri either an absolute or relative URI
        */
  -    public HttpMethodBase(String path) {
  -        int pa = path.indexOf("?");
  -        if (pa < 0) { //its just a path
  -            setPath(path);
  -        } else { //its a path with a query
  -            setPath(path.substring(0, pa));
  -            setQueryString(path.substring(pa+1, path.length()));
  +    public HttpMethodBase(String uri) {
  +        
  +        try {
  +            // is this an absolute URI?
  +            URL url = new URL( uri );
  +            
  +            // set the path, defaulting to root
  +            setPath( 
  +                url.getPath() == null
  +                ? "/"
  +                : url.getPath()
  +            );
  +            setQueryString( url.getQuery() );
  +            hostConfiguration = new HostConfiguration();
  +            hostConfiguration.setHost( 
  +                url.getHost(), 
  +                url.getPort(), 
  +                url.getProtocol() 
  +            );
  +            
  +        } catch ( MalformedURLException e ) {
  +            // this is not a URL
  +            int pa = uri.indexOf("?");
  +            
  +            if ( !uri.startsWith("/") ) {
  +                // this path must be relative to root
  +                uri = "/" + uri;
  +            }
  +            
  +            if (pa < 0) { //its just a path
  +                setPath(uri);
  +            } else { //its a path with a query
  +                setPath(path.substring(0, pa));
  +                setQueryString(uri.substring(pa+1, uri.length()));
  +            }
           }
  +        
       }
   
       //~ Methods ································································
  @@ -290,6 +322,34 @@
       public abstract String getName();
   
       /**
  +     * @see org.apache.commons.httpclient.HttpMethod#getURI()
  +     */
  +    public URI getURI() throws URIException {
  +        
  +        if ( hostConfiguration == null ) {
  +            // just use a relative URI, the host hasn't been set
  +            return new URI( null, null, path, queryString, null );
  +        } else {
  +            
  +            // we only want to include the port if it's not the default
  +            int port = hostConfiguration.getPort();
  +            if ( port == hostConfiguration.getProtocol().getDefaultPort() ) {
  +                port = -1;
  +            }
  +            
  +            return new URI( 
  +                hostConfiguration.getProtocol().getScheme(),
  +                null,
  +                hostConfiguration.getHost(),
  +                port,
  +                path,
  +                queryString
  +            );
  +        }
  +        
  +    }
  +
  +    /**
        * Set whether or not I should automatically follow HTTP redirects (status
        * code 302, etc.)
        *
  @@ -2401,5 +2461,21 @@
               responseBodyConsumed();
           }
       };
  +
  +    /**
  +     * Returns the hostConfiguration.
  +     * @return HostConfiguration
  +     */
  +    public HostConfiguration getHostConfiguration() {
  +        return hostConfiguration;
  +    }
  +
  +    /**
  +     * Sets the hostConfiguration.
  +     * @param hostConfiguration The hostConfiguration to set
  +     */
  +    public void setHostConfiguration(HostConfiguration hostConfiguration) {
  +        this.hostConfiguration = hostConfiguration;
  +    }
   
   }
  
  
  
  1.7       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpUrlMethod.java
  
  Index: HttpUrlMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpUrlMethod.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- HttpUrlMethod.java        3 Dec 2002 05:46:15 -0000       1.6
  +++ HttpUrlMethod.java        19 Dec 2002 10:23:36 -0000      1.7
  @@ -71,6 +71,8 @@
    * HttpConnectoin (via MultiThreadedHttpConnectionManager) based on the host and 
port in
    * the URL.
    * 
  + * @deprecated use HttpMethod
  + * 
    * @author Marc A. Saegesser
    */
   public interface HttpUrlMethod extends HttpMethod {
  
  
  
  1.8       +8 -7      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/DeleteMethod.java
  
  Index: DeleteMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/DeleteMethod.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DeleteMethod.java 8 Aug 2002 21:51:36 -0000       1.7
  +++ DeleteMethod.java 19 Dec 2002 10:23:37 -0000      1.8
  @@ -91,13 +91,14 @@
   
   
       /**
  -     * Path-setting constructor.
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        *
        * @since 1.0
        */
  -    public DeleteMethod(String path) {
  -        super(path);
  +    public DeleteMethod(String uri) {
  +        super(uri);
       }
   
   
  
  
  
  1.20      +8 -8      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/GetMethod.java
  
  Index: GetMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/GetMethod.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- GetMethod.java    9 Dec 2002 09:16:17 -0000       1.19
  +++ GetMethod.java    19 Dec 2002 10:23:37 -0000      1.20
  @@ -124,14 +124,14 @@
       }
   
       /**
  -     * Path-setting constructor.
  -     * 
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        * 
        * @since 1.0
        */
  -    public GetMethod(String path) {
  -        super(path);
  +    public GetMethod(String uri) {
  +        super(uri);
           log.trace("enter GetMethod(String)");
           setFollowRedirects(true);
       }
  
  
  
  1.13      +8 -8      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/HeadMethod.java
  
  Index: HeadMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/HeadMethod.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- HeadMethod.java   9 Dec 2002 09:16:17 -0000       1.12
  +++ HeadMethod.java   19 Dec 2002 10:23:37 -0000      1.13
  @@ -94,14 +94,14 @@
       }
   
       /**
  -     * Path-setting constructor.
  -     * 
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        * 
        * @since 1.0
        */
  -    public HeadMethod(String path) {
  -        super(path);
  +    public HeadMethod(String uri) {
  +        super(uri);
           setFollowRedirects(true);
       }
   
  
  
  
  1.5       +18 -15    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java
  
  Index: MultipartPostMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MultipartPostMethod.java  17 Nov 2002 03:11:27 -0000      1.4
  +++ MultipartPostMethod.java  19 Dec 2002 10:23:37 -0000      1.5
  @@ -99,30 +99,33 @@
       }
   
       /**
  -     * Path-setting constructor.
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        */
  -    public MultipartPostMethod(String path) {
  -        super(path);
  +    public MultipartPostMethod(String uri) {
  +        super(uri);
       }
   
       /**
  -     * Constructor.
  -     * @param path the path to request
  +     * Constructor specifying a URI and tempDir.
  +     *
  +     * @param uri either an absolute or relative URI
        * @param tempDir directory to store temp files in
        */
  -    public MultipartPostMethod(String path, String tempDir) {
  -        super(path, tempDir);
  +    public MultipartPostMethod(String uri, String tempDir) {
  +        super(uri, tempDir);
       }
   
       /**
  -     * Constructor.
  -     * @param path the path to request
  +     * Constructor specifying a URI, tempDir and tempFile.
  +     *
  +     * @param uri either an absolute or relative URI
        * @param tempDir directory to store temp files in
        * @param tempFile file to store temporary data in
        */
  -    public MultipartPostMethod(String path, String tempDir, String tempFile) {
  -        super(path, tempDir, tempFile);
  +    public MultipartPostMethod(String uri, String tempDir, String tempFile) {
  +        super(uri, tempDir, tempFile);
       }
   
   
  
  
  
  1.9       +8 -6      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/OptionsMethod.java
  
  Index: OptionsMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/OptionsMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- OptionsMethod.java        8 Aug 2002 21:51:36 -0000       1.8
  +++ OptionsMethod.java        19 Dec 2002 10:23:37 -0000      1.9
  @@ -103,12 +103,14 @@
   
   
       /**
  -     * Method constructor.
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        *
        * @since 1.0
        */
  -    public OptionsMethod(String path) {
  -        super(path);
  +    public OptionsMethod(String uri) {
  +        super(uri);
       }
   
   
  
  
  
  1.31      +15 -15    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java
  
  Index: PostMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- PostMethod.java   16 Dec 2002 15:19:37 -0000      1.30
  +++ PostMethod.java   19 Dec 2002 10:23:37 -0000      1.31
  @@ -171,41 +171,41 @@
       }
   
       /**
  -     * Path-setting constructor.
  +     * Constructor specifying a URI.
        *
  -     * @param path the path to request
  +     * @param uri either an absolute or relative URI
        *
        * @since 1.0
        */
  -    public PostMethod(String path) {
  -        super(path);
  +    public PostMethod(String uri) {
  +        super(uri);
           setFollowRedirects(false);
       }
   
       /**
  -     * Path and temp directory constructor.
  +     * Constructor specifying a URI and a tempDir.
        *
  -     * @param path the path to request
  +     * @param uri either an absolute or relative URI
        * @param tempDir directory to store temp files in
        *
        * @since 1.0
        */
  -    public PostMethod(String path, String tempDir) {
  -        super(path, tempDir);
  +    public PostMethod(String uti, String tempDir) {
  +        super(uti, tempDir);
           setFollowRedirects(false);
       }
   
       /**
  -     * Path, temp directory and temp file constructor.
  +     * Constructor specifying a URI, tempDir and tempFile.
        *
  -     * @param path the path to request
  +     * @param uri either an absolute or relative URI
        * @param tempDir directory to store temp files in
        * @param tempFile file to store temporary data in
        *
        * @since 1.0
        */
  -    public PostMethod(String path, String tempDir, String tempFile) {
  -        super(path, tempDir, tempFile);
  +    public PostMethod(String uri, String tempDir, String tempFile) {
  +        super(uri, tempDir, tempFile);
           setFollowRedirects(false);
       }
   
  
  
  
  1.17      +8 -7      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PutMethod.java
  
  Index: PutMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/PutMethod.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- PutMethod.java    25 Oct 2002 10:15:52 -0000      1.16
  +++ PutMethod.java    19 Dec 2002 10:23:38 -0000      1.17
  @@ -104,13 +104,14 @@
   
   
       /**
  -     * Path-setting constructor.
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        *
        * @since 1.0
        */
  -    public PutMethod(String path) {
  -        super(path);
  +    public PutMethod(String uri) {
  +        super(uri);
           setFollowRedirects(false);
       }
   
  
  
  
  1.6       +5 -6      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/TraceMethod.java
  
  Index: TraceMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/TraceMethod.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- TraceMethod.java  3 Sep 2002 03:05:34 -0000       1.5
  +++ TraceMethod.java  19 Dec 2002 10:23:38 -0000      1.6
  @@ -96,16 +96,15 @@
       //~ Constructors ···························································
   
       /**
  -     * 
  -     * Path-setting constructor.
  -     * 
  -     * @param path the path to request
  +     * Constructor specifying a URI.
  +     *
  +     * @param uri either an absolute or relative URI
        * 
        * @since 2.0
        * 
        */
  -    public TraceMethod(String path) {
  -        super(path);
  +    public TraceMethod(String uri) {
  +        super(uri);
           setFollowRedirects(false);
       }
   
  
  
  
  1.9       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlDeleteMethod.java
  
  Index: UrlDeleteMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlDeleteMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UrlDeleteMethod.java      20 Oct 2002 13:38:34 -0000      1.8
  +++ UrlDeleteMethod.java      19 Dec 2002 10:23:38 -0000      1.9
  @@ -70,6 +70,8 @@
   /**
    * HttpUrlMethod version of DeleteMethod.
    *
  + * @deprecated use DeleteMethod
  + *
    * @author Marc A. Saegesser
    */
   public class UrlDeleteMethod extends DeleteMethod implements HttpUrlMethod
  
  
  
  1.9       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlGetMethod.java
  
  Index: UrlGetMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlGetMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UrlGetMethod.java 20 Oct 2002 13:38:34 -0000      1.8
  +++ UrlGetMethod.java 19 Dec 2002 10:23:38 -0000      1.9
  @@ -73,6 +73,8 @@
    * same purpose as GetMethod but it takes  URL instead of
    * a path.  
    *
  + * @deprecated use GetMethod
  + *
    * @author Marc A. Saegesser
    */
   public class UrlGetMethod extends GetMethod implements HttpUrlMethod
  
  
  
  1.9       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlHeadMethod.java
  
  Index: UrlHeadMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlHeadMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UrlHeadMethod.java        20 Oct 2002 13:38:34 -0000      1.8
  +++ UrlHeadMethod.java        19 Dec 2002 10:23:38 -0000      1.9
  @@ -70,6 +70,8 @@
   /**
    * HttpUrlMethod version of HeadMethod.
    *
  + * @deprecated use HeadMethod
  + *
    * @author Marc A. Saegesser
    */
   public class UrlHeadMethod extends HeadMethod implements HttpUrlMethod
  
  
  
  1.9       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlOptionsMethod.java
  
  Index: UrlOptionsMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlOptionsMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UrlOptionsMethod.java     20 Oct 2002 13:38:34 -0000      1.8
  +++ UrlOptionsMethod.java     19 Dec 2002 10:23:38 -0000      1.9
  @@ -70,6 +70,8 @@
   /**
    * HttpUrlMethod version of Options method.
    *
  + * @deprecated use OptionsMethod
  + *
    * @author Marc A. Saegesser 
    */
   public class UrlOptionsMethod extends OptionsMethod implements HttpUrlMethod
  
  
  
  1.8       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlPostMethod.java
  
  Index: UrlPostMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlPostMethod.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- UrlPostMethod.java        20 Oct 2002 13:38:34 -0000      1.7
  +++ UrlPostMethod.java        19 Dec 2002 10:23:38 -0000      1.8
  @@ -70,6 +70,8 @@
   /**
    * HttpUrlMethod version of PostMethod.
    *
  + * @deprecated use PostMethod
  + *
    * @author Marc A. Saegesser
    */
   public class UrlPostMethod extends PostMethod implements HttpUrlMethod
  
  
  
  1.9       +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlPutMethod.java
  
  Index: UrlPutMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/UrlPutMethod.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- UrlPutMethod.java 20 Oct 2002 13:38:34 -0000      1.8
  +++ UrlPutMethod.java 19 Dec 2002 10:23:38 -0000      1.9
  @@ -70,6 +70,8 @@
   /**
    * HttpUrlMethod version of PutMethod.
    *
  + * @deprecated use PutMethod
  + *
    * @author Marc A. Saegesser
    */
   public class UrlPutMethod extends PutMethod implements HttpUrlMethod
  
  
  
  1.3       +48 -186   
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttpUrlMethod.java
  
  Index: TestHttpUrlMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttpUrlMethod.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestHttpUrlMethod.java    22 Apr 2002 03:14:47 -0000      1.2
  +++ TestHttpUrlMethod.java    19 Dec 2002 10:23:39 -0000      1.3
  @@ -62,16 +62,17 @@
   
   package org.apache.commons.httpclient;
   
  -import junit.framework.*;
  -import java.net.MalformedURLException;
  -import java.lang.reflect.*;
  +import junit.framework.Test;
  +import junit.framework.TestCase;
  +import junit.framework.TestSuite;
   
  -import org.apache.commons.httpclient.methods.*;
  +import org.apache.commons.httpclient.methods.GetMethod;
   
   /**
    *
  - * Unit tests for {@link HttpUrlMethod} based methods.  These tests
  - * do not require any network connection or web app.
  + * Unit tests for {@link org.apache.commons.httpclient.HttpMethod}
  + * constructors that take URLs. These tests do not require any network
  + * connection or web app.
    *
    * @author Marc A. Saegesser
    * @version $Id$
  @@ -99,192 +100,53 @@
       // ----------------------------------------------------------- Test Methods
   
       // Test constructors
  -    public void testUrlDeleteMethodConstructor() {
  -        try{
  -            UrlDeleteMethod method = new 
UrlDeleteMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
  -    }
  -
  -    public void testUrlGetMethodConstructor() {
  -        try{
  -            UrlGetMethod method = new 
UrlGetMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
  -    }
  -
  -    public void testUrlHeadMethodConstructor() {
  -        try{
  -            UrlHeadMethod method = new 
UrlHeadMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
  -    }
   
  -    public void testUrlOptionsMethodConstructor() {
  -        try{
  -            UrlOptionsMethod method = new 
UrlOptionsMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  +    public void testUrlGetMethodWithPathQuery() {
  +        GetMethod method = new 
GetMethod("http://www.fubar.com/path1/path2?query=string";);
  +        try {
  +            assertEquals(
  +                "Get URL",
  +                "http://www.fubar.com/path1/path2?query=string";,
  +                method.getURI().toString()
  +            );
  +        } catch ( URIException e ) {
  +            fail( "trouble getting URI: " + e );
           }
  -    }
  -
  -    public void testUrlPostMethodConstructor() {
  -        try{
  -            UrlPostMethod method = new 
UrlPostMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
  -    }
  -
  -    public void testUrlPutMethodConstructor() {
  -        try{
  -            UrlPutMethod method = new 
UrlPutMethod("http://www.fubar.com/path1/path2?query=string";);
  -            validateConstructorResults(method);
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
  -    }
  -
  -    private void validateConstructorResults(HttpUrlMethod method)
  -    {
  -        assertEquals("Get URL", "http://www.fubar.com/path1/path2?query=string";, 
method.getUrl());
           assertEquals("Get Path", "/path1/path2", method.getPath());
           assertEquals("Get query string", "query=string", method.getQueryString());
  +     
       }
   
  -
  -    // Test UrlDeleteMethod
  -    public void testUrlDeleteMethodAccessorsValidPath() {
  -        UrlDeleteMethod method = new UrlDeleteMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlDeleteMethodAccessorsNoPath() {
  -        UrlDeleteMethod method = new UrlDeleteMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlDeleteMethodAccessorsWithQuery() {
  -        UrlDeleteMethod method = new UrlDeleteMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    // Test UrlGetMethod
  -    public void testUrlGetMethodAccessorsValidPath() {
  -        UrlGetMethod method = new UrlGetMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlGetMethodAccessorsNoPath() {
  -        UrlGetMethod method = new UrlGetMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlGetMethodAccessorsWithQuery() {
  -        UrlGetMethod method = new UrlGetMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    // Test UrlHeadMethod
  -    public void testUrlHeadMethodAccessorsValidPath() {
  -        UrlHeadMethod method = new UrlHeadMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlHeadMethodAccessorsNoPath() {
  -        UrlHeadMethod method = new UrlHeadMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlHeadMethodAccessorsWithQuery() {
  -        UrlHeadMethod method = new UrlHeadMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    // Test UrlOptionsMethod
  -    public void testUrlOptionsMethodAccessorsValidPath() {
  -        UrlOptionsMethod method = new UrlOptionsMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlOptionsMethodAccessorsNoPath() {
  -        UrlOptionsMethod method = new UrlOptionsMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlOptionsMethodAccessorsWithQuery() {
  -        UrlOptionsMethod method = new UrlOptionsMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    // Test UrlPostMethod
  -    public void testUrlPostMethodAccessorsValidPath() {
  -        UrlPostMethod method = new UrlPostMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlPostMethodAccessorsNoPath() {
  -        UrlPostMethod method = new UrlPostMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlPostMethodAccessorsWithQuery() {
  -        UrlPostMethod method = new UrlPostMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    // Test UrlPutMethod
  -    public void testUrlPutMethodAccessorsValidPath() {
  -        UrlPutMethod method = new UrlPutMethod();
  -        testAccessorsValidPath(method);
  -    }
  -
  -    public void testUrlPutMethodAccessorsNoPath() {
  -        UrlPutMethod method = new UrlPutMethod();
  -        testAccessorsNoPath(method);
  -    }
  -
  -    public void testUrlPutMethodAccessorsWithQuery() {
  -        UrlPutMethod method = new UrlPutMethod();
  -        testAccessorsWithQuery(method);
  -    }
  -
  -    private void testAccessorsValidPath(HttpUrlMethod method) {
  -        try{
  -            method.setUrl("http://www.fubar.com/path1/path2";);
  -            assertEquals("Get URL", "http://www.fubar.com/path1/path2";, 
method.getUrl());
  -            assertEquals("Get Path", "/path1/path2", method.getPath());
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  +    public void testUrlGetMethodWithPath() {
  +        GetMethod method = new GetMethod("http://www.fubar.com/path1/path2";);
  +        try {
  +            assertEquals(
  +                "Get URL",
  +                "http://www.fubar.com/path1/path2";,
  +                method.getURI().toString()
  +            );
  +        } catch ( URIException e ) {
  +            fail( "trouble getting URI: " + e );
           }
  -    }
  +        assertEquals("Get Path", "/path1/path2", method.getPath());
  +        assertEquals("Get query string", null, method.getQueryString());
   
  -    private void testAccessorsNoPath(HttpUrlMethod method) {
  -        try{
  -            method.setUrl("http://www.fubar.com";);
  -            assertEquals("Get URL", "http://www.fubar.com";, method.getUrl());
  -            assertEquals("Get Path", "/", method.getPath());
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  -        }
       }
   
  -    private void testAccessorsWithQuery(HttpUrlMethod method) {
  -        try{
  -            method.setUrl("http://www.fubar.com/path1/path2?query=string";);
  -            assertEquals("Get URL", 
"http://www.fubar.com/path1/path2?query=string";, method.getUrl());
  -            assertEquals("Get Path", "/path1/path2", method.getPath());
  -            assertEquals("Get query string", "query=string", 
method.getQueryString());
  -        }catch(MalformedURLException e){
  -            fail("Caught unexpected exception " + e.toString());
  +    public void testUrlGetMethod() {
  +        GetMethod method = new GetMethod("http://www.fubar.com/";);
  +        try {
  +            assertEquals(
  +                "Get URL",
  +                "http://www.fubar.com/";,
  +                method.getURI().toString()
  +            );
  +        } catch ( URIException e ) {
  +            fail( "trouble getting URI: " + e );
           }
  +        assertEquals("Get Path", "/", method.getPath());
  +        assertEquals("Get query string", null, method.getQueryString());
  +
       }
  +    
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to