You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2003/10/31 22:42:00 UTC

cvs commit: cocoon-2.1/src/test/org/apache/cocoon/util/test NetUtilsTestCase.java

vgritsenko    2003/10/31 13:42:00

  Modified:    src/blocks/scratchpad/java/org/apache/cocoon/ant
                        UriType.java
               src/java/org/apache/cocoon/bean Target.java
               src/java/org/apache/cocoon/util NetUtils.java
               src/test/org/apache/cocoon/util/test NetUtilsTestCase.java
  Log:
  NetUtils.absolutize: Support null or empty resource path
  
  Revision  Changes    Path
  1.2       +5 -5      cocoon-2.1/src/blocks/scratchpad/java/org/apache/cocoon/ant/UriType.java
  
  Index: UriType.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/scratchpad/java/org/apache/cocoon/ant/UriType.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UriType.java	4 Sep 2003 12:42:41 -0000	1.1
  +++ UriType.java	31 Oct 2003 21:41:59 -0000	1.2
  @@ -254,7 +254,7 @@
   
   
       /**
  -     *   Gets the parameterizedURI attribute of the UriType object
  +     * Gets the parameterizedURI attribute of the UriType object
        *
        * @param  addOriginalParameters    Description of Parameter
        * @param  addAdditionalParameters  Description of Parameter
  @@ -262,8 +262,8 @@
        * @return                          The parameterizedURI value
        */
       public String getParameterizedUri(boolean addOriginalParameters,
  -            boolean addAdditionalParameters,
  -            Map additionalParameters) {
  +                                      boolean addAdditionalParameters,
  +                                      Map additionalParameters) {
           Map mergedParameters = new HashMap();
           if (addOriginalParameters) {
               mergedParameters.putAll(parameters);
  @@ -356,7 +356,7 @@
   
   
       /**
  -     *   Calculate all member values depending on the uri member value
  +     * Calculate all member values depending on the uri member value
        */
       protected void init() {
           if (uri != null) {
  
  
  
  1.9       +7 -7      cocoon-2.1/src/java/org/apache/cocoon/bean/Target.java
  
  Index: Target.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/bean/Target.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Target.java	17 Oct 2003 14:22:15 -0000	1.8
  +++ Target.java	31 Oct 2003 21:41:59 -0000	1.9
  @@ -93,14 +93,14 @@
       private transient int _hashCode;
       private transient String _toString;
   
  -    public Target(
  -        String type,
  -        String root,
  -        String sourceURI,
  -        String destURI)
  -        throws IllegalArgumentException {
  +    public Target(String type,
  +                  String root,
  +                  String sourceURI,
  +                  String destURI)
  +    throws IllegalArgumentException {
           this.type = type;
           this.root = root;
  +        
           if (destURI == null || destURI.length() == 0) {
               throw new IllegalArgumentException("You must specify a destination directory when defining a target");
           }
  
  
  
  1.6       +66 -38    cocoon-2.1/src/java/org/apache/cocoon/util/NetUtils.java
  
  Index: NetUtils.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/util/NetUtils.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NetUtils.java	24 Sep 2003 21:41:11 -0000	1.5
  +++ NetUtils.java	31 Oct 2003 21:41:59 -0000	1.6
  @@ -242,19 +242,20 @@
        */
       public static String getPath(String uri) {
           int i = uri.lastIndexOf('/');
  -        if(i > -1)
  +        if (i > -1) {
               return uri.substring(0, i);
  +        }
           i = uri.indexOf(':');
  -        return (i > -1) ? uri.substring(i+1,uri.length()) : "";
  +        return (i > -1) ? uri.substring(i + 1, uri.length()) : "";
       }
   
  -   /**
  -    * Remove path and file information from a filename returning only its
  -    * extension  component
  -    *
  -    * @param uri The filename
  -    * @return The filename extension (with starting dot!)
  -    */
  +    /**
  +     * Remove path and file information from a filename returning only its
  +     * extension  component
  +     *
  +     * @param uri The filename
  +     * @return The filename extension (with starting dot!)
  +     */
       public static String getExtension(String uri) {
           int dot = uri.lastIndexOf('.');
           if (dot > -1) {
  @@ -283,26 +284,38 @@
       }
   
       /**
  -     * Absolutize a relative resource on the given absolute path.
  +     * Absolutize a relative resource path on the given absolute base path.
        *
  -     * @param path The absolute path
  -     * @param relativeResource The relative resource
  -     * @return the absolutized resource
  -     */
  -    public static String absolutize(String path, String relativeResource) {
  -        if (("".equals(path)) || (path == null)) return relativeResource;
  -        if (relativeResource.charAt(0) != '/') {
  -            int length = path.length() - 1;
  -            boolean slashPresent = (path.charAt(length) == '/');
  -            StringBuffer b = new StringBuffer();
  -            b.append(path);
  -            if (!slashPresent) b.append('/');
  -            b.append(relativeResource);
  -            return b.toString();
  -        } else {
  -            // resource is already absolute
  -            return relativeResource;
  -        }
  +     * @param path The absolute base path
  +     * @param resource The relative resource path
  +     * @return The absolutized resource path
  +     */
  +    public static String absolutize(String path, String resource) {
  +        if (path == null || path.length() == 0) {
  +            // Base path is empty
  +            return resource;
  +        }
  +        
  +        if (resource == null || resource.length() == 0) {
  +            // Resource path is empty
  +            return path;
  +        }
  +
  +        if (resource.charAt(0) == '/') {
  +            // Resource path is already absolute
  +            return resource;
  +        }
  +        
  +        int length = path.length() - 1;
  +        boolean slash = (path.charAt(length) == '/');
  +        
  +        StringBuffer b = new StringBuffer();
  +        b.append(path);
  +        if (!slash) {
  +            b.append('/');
  +        } 
  +        b.append(resource);
  +        return b.toString();
       }
   
       /**
  @@ -313,8 +326,14 @@
        * @return the resource relative to the given path
        */
       public static String relativize(String path, String absoluteResource) {
  -        if (("".equals(path)) || (path == null)) return absoluteResource;
  -        if (path.charAt(path.length() - 1) != '/') path += "/";
  +        if (path == null || "".equals(path)) {
  +            return absoluteResource;
  +        }
  +        
  +        if (path.charAt(path.length() - 1) != '/') {
  +            path += "/";
  +        }
  +        
           if (absoluteResource.startsWith(path)) {
               // resource is direct descentant
               return absoluteResource.substring(path.length());
  @@ -395,12 +414,17 @@
        */
       public static String deparameterize(String uri, Map parameters) {
           int i = uri.lastIndexOf('?');
  -        if (i == -1) return uri;
  -        String[] params = StringUtils.split(uri.substring(i+1), "&");
  +        if (i == -1) {
  +            return uri;
  +        }
  +        
  +        String[] params = StringUtils.split(uri.substring(i + 1), "&");
           for (int j = 0; j < params.length; j++) {
               String p = params[j];
               int k = p.indexOf('=');
  -            if (k == -1) break;
  +            if (k == -1) {
  +                break;
  +            }
               String name = p.substring(0, k);
               String value = p.substring(k+1);
               parameters.put(name, value);
  @@ -412,6 +436,7 @@
           if (parameters.size() == 0) {
               return uri;
           }
  +        
           StringBuffer buffer = new StringBuffer(uri);
           buffer.append('?');
           for (Iterator i = parameters.entrySet().iterator(); i.hasNext();) {
  @@ -432,18 +457,20 @@
        */
       public static SourceParameters createParameters(Request request) {
           final SourceParameters pars = new SourceParameters();
  -        if ( null != request ) {
  +
  +        if (null != request) {
               final Enumeration names = request.getParameterNames();
  -            while ( names.hasMoreElements() ) {
  +            while (names.hasMoreElements()) {
                   final String current = (String)names.nextElement();
  -                final String[] values = request.getParameterValues( current );
  -                if ( null != values ) {
  +                final String[] values = request.getParameterValues(current);
  +                if (null != values) {
                       for(int i=0; i < values.length; i++) {
  -                        pars.setParameter( current, values[i]);
  +                        pars.setParameter(current, values[i]);
                       }
                   }
               }
           }
  +
           return pars;
       }
   
  @@ -454,6 +481,7 @@
           if (uri.indexOf("@")!=-1 && (uri.startsWith("ftp://") || uri.startsWith("http://"))) {
               return uri.substring(0, uri.indexOf(":")+2)+uri.substring(uri.indexOf("@")+1);
           } 
  +
           return uri;
       }
   }
  
  
  
  1.4       +22 -14    cocoon-2.1/src/test/org/apache/cocoon/util/test/NetUtilsTestCase.java
  
  Index: NetUtilsTestCase.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/test/org/apache/cocoon/util/test/NetUtilsTestCase.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NetUtilsTestCase.java	16 Mar 2003 18:03:56 -0000	1.3
  +++ NetUtilsTestCase.java	31 Oct 2003 21:42:00 -0000	1.4
  @@ -153,10 +153,17 @@
       public void testAbsolutize() throws Exception {
   
           Object[] test_values = {
  -                new String[]{"http://xml.apache.org", "foo.bar", "http://xml.apache.org/foo.bar"},
  -                new String[]{"http://xml.apache.org/", "foo.bar", "http://xml.apache.org/foo.bar"},
  -                new String[]{"http://xml.apache.org", "/foo.bar", "/foo.bar"},
  -                };
  +            new String[]{"/base/path",  "foo.bar",  "/base/path/foo.bar"},
  +            new String[]{"/base/path/", "foo.bar",  "/base/path/foo.bar"},
  +            new String[]{"/base/path",  "/foo.bar", "/foo.bar"},
  +            
  +            new String[]{"/base/path", "",   "/base/path"},
  +            new String[]{"/base/path", null, "/base/path"},
  +            
  +            new String[]{"",   "foo.bar", "foo.bar"},
  +            new String[]{null, "foo.bar", "foo.bar"},
  +        };
  +        
           for (int i = 0; i < test_values.length; i++) {
               String tests[] = (String[]) test_values[i];
               String test_path = tests[0];
  @@ -259,10 +266,12 @@
        */
       public void testDeparameterize() throws Exception {
           Map parameters = new HashMap();
  +
           Object[] test_values = {
  -                new String[]{"/foo/bar", "/foo/bar"},
  -                new String[]{"bar?a=b&c=d", "bar"},
  -                };
  +            new String[]{"/foo/bar", "/foo/bar"},
  +            new String[]{"bar?a=b&c=d", "bar"},
  +        };
  +
           for (int i = 0; i < test_values.length; i++) {
               String tests[] = (String[]) test_values[i];
               String test = tests[0];
  @@ -289,8 +298,9 @@
           Map parameters1 = new HashMap();
   
           Object[] test_values = {
  -                new Object[]{"/foo/bar", parameters1, "/foo/bar"},
  -                };
  +            new Object[]{"/foo/bar", parameters1, "/foo/bar"},
  +        };
  +
           for (int i = 0; i < test_values.length; i++) {
               Object tests[] = (Object[]) test_values[i];
               String test = (String) tests[0];
  @@ -314,12 +324,10 @@
                       
           String result = NetUtils.parameterize(test, parameters2);        
   
  -        if(expected1.equals(result)){
  +        if (expected1.equals(result)) {
             assertEquals(message, expected1, result);  
  -        }
  -        else{
  +        } else {
             assertEquals(message, expected2, result);  
           }
  -                              
       }
   }