blob: 3662b726f1288759e2a8f255061c639d4cd41939 [file] [log] [blame]
package org.apache.maven.doxia.site.decoration.inheritance;
/*
* 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 java.io.File;
import org.codehaus.plexus.util.Os;
import org.codehaus.plexus.util.StringUtils;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Test the PathDescriptor creation under various circumstances.
*
* @author <a href="mailto:henning@apache.org">Henning P. Schmiedehausen</a>
*/
public class PathDescriptorTest
{
/** @throws Exception */
@Test
public void testAbsPath()
throws Exception
{
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( "/" + path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testRelPath()
throws Exception
{
String path = "relativePath";
PathDescriptor desc = new PathDescriptor( path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testEmptyAbsPath()
throws Exception
{
String path = "";
PathDescriptor desc = new PathDescriptor( "/" + path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testEmptyRelPath()
throws Exception
{
String path = "";
PathDescriptor desc = new PathDescriptor( path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullPath()
throws Exception
{
String path = null;
PathDescriptor desc = new PathDescriptor( path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNull( desc.getPath() );
assertNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullBaseAbsPath()
throws Exception
{
String base = null;
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullBaseRelPath()
throws Exception
{
String base = null;
String path = "relativePath";
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullBaseEmptyAbsPath()
throws Exception
{
String base = null;
String path = "";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullBaseEmptyRelPath()
throws Exception
{
String base = null;
String path = "";
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testNullBaseNullPath()
throws Exception
{
String base = null;
String path = null;
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertTrue( desc.isRelative() );
assertNull( desc.getBaseUrl() );
assertNull( desc.getPathUrl() );
assertNull( desc.getPath() );
assertNull( desc.getLocation() );
assertEquals( "wrong path", path, desc.getPath() );
assertEquals( "wrong location", path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testUrlBaseAbsPath()
throws Exception
{
String base = "http://maven.apache.org/";
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/" + path, desc.getPath() );
assertEquals( "wrong location", base + path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testUrlBaseRelPath()
throws Exception
{
String base = "http://maven.apache.org/";
String path = "relativePath";
PathDescriptor desc = new PathDescriptor( base, path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/" + path, desc.getPath() );
assertEquals( "wrong location", base + path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testUrlBaseEmptyAbsPath()
throws Exception
{
String base = "http://maven.apache.org/";
String path = "";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/" + path, desc.getPath() );
assertEquals( "wrong location", base + path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testUrlBaseEmptyRelPath()
throws Exception
{
String base = "http://maven.apache.org/";
String path = "";
PathDescriptor desc = new PathDescriptor( base, path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/" + path, desc.getPath() );
assertEquals( "wrong location", base + path, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testUrlBaseNullPath()
throws Exception
{
String base = "http://maven.apache.org/";
String path = null;
PathDescriptor desc = new PathDescriptor( base, path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/", desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
/** @throws Exception */
@Test
public void testFileBaseAbsPath()
throws Exception
{
String base = "/tmp/foo";
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( "file://" + base, "/" + path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base + "/" + path ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base + "/" + path, desc.getPath() );
assertEquals( "wrong location", base + "/" + path, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testFileBaseRelPath()
throws Exception
{
String base = "/tmp/foo";
String path = "relativePath";
PathDescriptor desc = new PathDescriptor( "file://" + base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base + "/" + path ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base + "/" + path, desc.getPath() );
assertEquals( "wrong location", base + "/" + path, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testFileBaseEmptyAbsPath()
throws Exception
{
String base = "/tmp/foo";
String path = "";
PathDescriptor desc = new PathDescriptor( "file://" + base, "/" + path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testFileBaseEmptyRelPath()
throws Exception
{
String base = "/tmp/foo";
String path = "";
PathDescriptor desc = new PathDescriptor( "file://" + base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testFileBaseNullPath()
throws Exception
{
String base = "/tmp/foo";
String path = null;
PathDescriptor desc = new PathDescriptor( "file://" + base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
/*
// same as testUrlBaseAbsPath with scp, this fails!? DOXIASITETOOLS-47
public void testUriBaseAbsPath()
throws Exception
{
String base = "scp://people.apache.org/";
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertFalse( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( "wrong path", "/" + path, desc.getPath() );
assertEquals( "wrong location", base + path, desc.getLocation() );
}
*/
/** @throws Exception */
@Test
public void testPathBaseAbsPath()
throws Exception
{
String base = "/tmp/foo";
String path = "absolutePath";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base + "/" + path ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base + "/" + path, desc.getPath() );
assertEquals( "wrong location", base + "/" + path, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testPathBaseRelPath()
throws Exception
{
String base = "/tmp/foo";
String path = "relativePath";
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base + "/" + path ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base + "/" + path, desc.getPath() );
assertEquals( "wrong location", base + "/" + path, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testPathBaseEmptyAbsPath()
throws Exception
{
String base = "/tmp/foo";
String path = "";
PathDescriptor desc = new PathDescriptor( base, "/" + path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testPathBaseEmptyRelPath()
throws Exception
{
String base = "/tmp/foo";
String path = "";
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testPathBaseNullPath()
throws Exception
{
String base = "/tmp/foo";
String path = null;
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
String s = StringUtils.replace( new File( base ).toURI().toURL().toString(), "file:", "" );
assertEquals( "wrong path", s, desc.getPath() );
assertEquals( "wrong location", s, desc.getLocation() );
}
else
{
assertEquals( "wrong path", base, desc.getPath() );
assertEquals( "wrong location", base, desc.getLocation() );
}
}
/** @throws Exception */
@Test
public void testPathRelBase()
throws Exception
{
String base = "../msite-404";
String path = "index.html";
PathDescriptor desc = new PathDescriptor( base, path );
assertTrue( desc.isFile() );
assertFalse( desc.isRelative() );
assertNotNull( desc.getBaseUrl() );
assertNotNull( desc.getPathUrl() );
assertNotNull( desc.getPath() );
assertNotNull( desc.getLocation() );
assertEquals( desc.getPath(), desc.getLocation() );
// Hudson doesn't like this?
//assertEquals( desc.getPathUrl().toString(), desc.getBaseUrl().toString() + "/" + path );
}
}