Author: bentmann Date: Thu Apr 24 13:29:27 2008 New Revision: 651401 URL: http://svn.apache.org/viewvc?rev=651401&view=rev Log: [MSITE-319] DefaultSiteTools fails on paths with prefix "../"
Added: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java (with props) Modified: maven/shared/trunk/maven-doxia-tools/pom.xml maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Modified: maven/shared/trunk/maven-doxia-tools/pom.xml URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/pom.xml?rev=651401&r1=651400&r2=651401&view=diff ============================================================================== --- maven/shared/trunk/maven-doxia-tools/pom.xml (original) +++ maven/shared/trunk/maven-doxia-tools/pom.xml Thu Apr 24 13:29:27 2008 @@ -63,6 +63,12 @@ </build> <dependencies> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.4</version> + </dependency> + <!-- maven --> <dependency> <groupId>org.apache.maven</groupId> Modified: maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java?rev=651401&r1=651400&r2=651401&view=diff ============================================================================== --- maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java (original) +++ maven/shared/trunk/maven-doxia-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java Thu Apr 24 13:29:27 2008 @@ -19,6 +19,7 @@ * under the License. */ +import org.apache.commons.io.FilenameUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -192,12 +193,12 @@ */ protected String getNormalizedPath( String path ) { - String normalized = null; - if ( path != null ) + String normalized = FilenameUtils.normalize( path ); + if ( normalized == null ) { - normalized = FileUtils.normalize( path.replace( '\\', '/' ) ); + normalized = path; } - return ( normalized == null ) ? path : normalized; + return ( normalized == null ) ? null : normalized.replace( '\\', '/' ); } /** [EMAIL PROTECTED] */ Added: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java?rev=651401&view=auto ============================================================================== --- maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java (added) +++ maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java Thu Apr 24 13:29:27 2008 @@ -0,0 +1,65 @@ +package org.apache.maven.doxia.tools; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import junit.framework.TestCase; + +/** + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Siveton</a> + * @version $Id$ + */ +public class DefaultSiteToolTest + extends TestCase +{ + /** [EMAIL PROTECTED] */ + protected void setUp() + throws Exception + { + super.setUp(); + } + + /** [EMAIL PROTECTED] */ + protected void tearDown() + throws Exception + { + super.tearDown(); + } + + /** + * @throws Exception + */ + public void testGetNormalizedPath() + throws Exception + { + DefaultSiteTool tool = new DefaultSiteTool(); + + assertEquals( null, tool.getNormalizedPath( null ) ); + assertEquals( "", tool.getNormalizedPath( "" ) ); + assertEquals( "foo", tool.getNormalizedPath( "foo" ) ); + assertEquals( "foo/bar", tool.getNormalizedPath( "foo/bar" ) ); + assertEquals( "foo/bar", tool.getNormalizedPath( "foo\\bar" ) ); + assertEquals( "foo/bar", tool.getNormalizedPath( "foo/./bar" ) ); + assertEquals( "bar", tool.getNormalizedPath( "foo/../bar" ) ); + assertEquals( "foo", tool.getNormalizedPath( "./foo" ) ); + assertEquals( "../foo", tool.getNormalizedPath( "../foo" ) ); + assertEquals( "../../foo", tool.getNormalizedPath( "../../foo" ) ); + } + +} Propchange: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/DefaultSiteToolTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java?rev=651401&r1=651400&r2=651401&view=diff ============================================================================== --- maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java (original) +++ maven/shared/trunk/maven-doxia-tools/src/test/java/org/apache/maven/doxia/tools/SiteToolTest.java Thu Apr 24 13:29:27 2008 @@ -174,6 +174,8 @@ assertEquals( ".." + File.separator + ".." + File.separator + ".." + File.separator + "project-parent", tool.getRelativePath( "Z:\\dir\\project\\project-module-1\\..\\project-parent", "Z:\\dir\\project\\project-module-1\\src\\site" ) ); + + assertEquals( ".." + File.separator + "foo", tool.getRelativePath( "../../foo/foo", "../../foo/bar" ) ); } /**