Author: ltheussl
Date: Mon Mar 14 15:23:31 2011
New Revision: 1081421

URL: http://svn.apache.org/viewvc?rev=1081421&view=rev
Log:
add further tests to clarify leading slashes

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/URIPathDescriptorTest.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/URIPathDescriptorTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/URIPathDescriptorTest.java?rev=1081421&r1=1081420&r2=1081421&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/URIPathDescriptorTest.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-decoration-model/src/test/java/org/apache/maven/doxia/site/decoration/inheritance/URIPathDescriptorTest.java
 Mon Mar 14 15:23:31 2011
@@ -59,11 +59,23 @@ public class URIPathDescriptorTest
         assertEquals( expected + "/", compare.toString() );
 
         compare = new URIPathDescriptor( "file:///C:\\Foo\\bar1", "" );
+        assertEquals( "file:///C:/Foo/bar1/", compare.getBaseURI().toString() 
);
+        // toString() calls resolve() which removes two slashes because 
authority is empty
         assertEquals( "file:/C:/Foo/bar1/", compare.toString() );
 
         compare = new URIPathDescriptor( 
"file:///C:/Documents%20and%20Settings/foo/", "bar" );
         assertEquals( "file:/C:/Documents%20and%20Settings/foo/bar", 
compare.toString() );
 
+        compare = new URIPathDescriptor( 
"file:/C:/Documents%20and%20Settings/foo/", "bar" );
+        assertEquals( "file:/C:/Documents%20and%20Settings/foo/bar", 
compare.toString() );
+
+        compare = new URIPathDescriptor( 
"file://C:/Documents%20and%20Settings/foo/", "bar" );
+        // toString() calls resolve() which removes the colon if port is 
empty, C is the host here!
+        assertEquals( "file://C/Documents%20and%20Settings/foo/bar", 
compare.toString() );
+
+        compare = new URIPathDescriptor( 
"file://C:8080/Documents%20and%20Settings/foo/", "bar" );
+        assertEquals( "file://C:8080/Documents%20and%20Settings/foo/bar", 
compare.toString() );
+
         compare = new URIPathDescriptor( "C:\\Foo\\bar", "bar" );
         assertEquals( "C:/Foo/bar/bar", compare.toString() ); // NOTE: C: is 
the scheme here!
 
@@ -98,6 +110,17 @@ public class URIPathDescriptorTest
 
         oldPath = new URIPathDescriptor( maven, 
"source/index.html?var=foo&var2=bar" );
         assertEquals( expected + "/index.html?var=foo&var2=bar", 
oldPath.resolveLink().toString() );
+
+        oldPath = new URIPathDescriptor( 
"file:///C:/Documents%20and%20Settings/", "source" );
+        // resolve() removes two slashes because authority is empty
+        assertEquals( "file:/C:/Documents%20and%20Settings/source", 
oldPath.resolveLink().toString() );
+
+        oldPath = new URIPathDescriptor( 
"file://C:/Documents%20and%20Settings/", "source" );
+        // resolve() removes the colon if port is empty
+        assertEquals( "file://C/Documents%20and%20Settings/source", 
oldPath.resolveLink().toString() );
+
+        oldPath = new URIPathDescriptor( 
"file:/C:/Documents%20and%20Settings/", "source" );
+        assertEquals( "file:/C:/Documents%20and%20Settings/source", 
oldPath.resolveLink().toString() );
     }
 
     /**
@@ -126,8 +149,21 @@ public class URIPathDescriptorTest
         oldPath = new URIPathDescriptor( maven, "banner/left" );
         assertEquals( "../banner/left", oldPath.rebaseLink( 
"http://maven.apache.org/doxia/"; ).toString() );
 
+        oldPath = new URIPathDescriptor( maven, 
"index.html?var=foo&var2=bar" );
+        assertEquals( "../index.html?var=foo&var2=bar",
+            oldPath.rebaseLink( "http://maven.apache.org/doxia/"; ).toString() 
);
+
         oldPath = new URIPathDescriptor( "http://jakarta.apache.org/";, 
"banner/left" );
         assertEquals( "http://jakarta.apache.org/banner/left";, 
oldPath.rebaseLink( maven ).toString() );
+
+        oldPath = new URIPathDescriptor( 
"file:///C:/Documents%20and%20Settings/", "source" );
+        assertEquals( "../source", oldPath.rebaseLink( 
"file:///C:/Documents%20and%20Settings/target" ).toString() );
+
+        oldPath = new URIPathDescriptor( 
"file://C:/Documents%20and%20Settings/", "source" );
+        assertEquals( "../source", oldPath.rebaseLink( 
"file://C:/Documents%20and%20Settings/target" ).toString() );
+
+        oldPath = new URIPathDescriptor( 
"file:/C:/Documents%20and%20Settings/", "source" );
+        assertEquals( "../source", oldPath.rebaseLink( 
"file:/C:/Documents%20and%20Settings/target" ).toString() );
     }
 
     /**
@@ -155,6 +191,15 @@ public class URIPathDescriptorTest
 
         path = new URIPathDescriptor( maven, 
"http://maven.apache.org/index.html?var=foo&var2=bar"; );
         assertEquals( "index.html?var=foo&var2=bar", 
path.relativizeLink().toString() );
+
+        path = new URIPathDescriptor( 
"file:///C:/Documents%20and%20Settings/", "index.html" );
+        assertEquals( "index.html", path.relativizeLink().toString() );
+
+        path = new URIPathDescriptor( "file://C:/Documents%20and%20Settings/", 
"index.html" );
+        assertEquals( "index.html", path.relativizeLink().toString() );
+
+        path = new URIPathDescriptor( "file:/C:/Documents%20and%20Settings/", 
"index.html" );
+        assertEquals( "index.html", path.relativizeLink().toString() );
     }
 
     /**
@@ -183,6 +228,12 @@ public class URIPathDescriptorTest
         final URIPathDescriptor nullHost = new URIPathDescriptor( 
"http:///maven.apache.org/";, "doxia" );
         assertTrue( nullHost.sameSite( new URI( "http:///maven.apache.org/"; ) 
) );
         assertFalse( nullHost.sameSite( new URI( "http://maven.apache.org/"; ) 
) );
+
+        URIPathDescriptor newPath = new URIPathDescriptor( 
"file:///C:/Documents%20and%20Settings/", "source" );
+        assertTrue( newPath.sameSite( new URI( 
"file:///C:/Documents%20and%20Settings/" ) ) );
+        assertFalse( newPath.sameSite( new URI( 
"file://C:/Documents%20and%20Settings/" ) ) );
+        // authority is empty
+        assertTrue( newPath.sameSite( new URI( 
"file:/C:/Documents%20and%20Settings/" ) ) );
     }
 
     private static void assertFailure( final String base, final String link )


Reply via email to