You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by vs...@apache.org on 2009/08/23 14:37:11 UTC
svn commit: r806960 - in
/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src:
main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
Author: vsiveton
Date: Sun Aug 23 12:37:11 2009
New Revision: 806960
URL: http://svn.apache.org/viewvc?rev=806960&view=rev
Log:
DOXIA-343: FO: links broken if link target contains dot
o fixed links with dot and several soldius
o updated test cases
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java?rev=806960&r1=806959&r2=806960&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java Sun Aug 23 12:37:11 2009
@@ -266,14 +266,19 @@
String idName = name.replace( '\\', '/' );
// prepend "./" and strip extension
+ while ( idName.indexOf( "//" ) != -1 )
+ {
+ idName = StringUtils.replace( idName, "//", "/" );
+ }
+
if ( !idName.startsWith( "./" ) )
{
idName = "./" + idName;
}
- if ( idName.indexOf( ".", 2 ) != -1 )
+ if ( idName.substring( 2 ).lastIndexOf( "." ) != -1 )
{
- idName = idName.substring( 0, idName.indexOf( ".", 2 ) );
+ idName = idName.substring( 0, idName.lastIndexOf( "." ) );
}
return idName;
@@ -360,11 +365,17 @@
// external links
writeStartTag( BASIC_LINK_TAG, "external-destination", HtmlTools.escapeHTML( name ) );
writeStartTag( INLINE_TAG, "href.external" );
+ return;
}
- else if ( DoxiaUtils.isInternalLink( name ) )
+
+ while ( name.indexOf( "//" ) != -1 )
{
- // internal link (ie anchor is in the same source document)
+ name = StringUtils.replace( name, "//", "/" );
+ }
+ if ( DoxiaUtils.isInternalLink( name ) )
+ {
+ // internal link (ie anchor is in the same source document)
String anchor = name.substring( 1 );
if ( !DoxiaUtils.isValidId( anchor ) )
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java?rev=806960&r1=806959&r2=806960&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java Sun Aug 23 12:37:11 2009
@@ -140,10 +140,27 @@
{
sink = new FoAggregateSink( writer );
sink.link( "http://www.example.com/" );
+ sink.text( "http://www.example.com/" );
+ sink.link_();
sink.setDocumentName( "./folder\\docName.xml" );
sink.link( "#anchor" );
+ sink.text( "#anchor" );
+ sink.link_();
sink.link( "./././index.html" );
+ sink.text( "./././index.html" );
+ sink.link_();
sink.link( "./../download.html" );
+ sink.text( "./../download.html" );
+ sink.link_();
+ sink.link( ".///test.html" );
+ sink.text( "./test.html" );
+ sink.link_();
+ sink.link( "./whatsnew-1.1.html" );
+ sink.text( "./whatsnew-1.1.html" );
+ sink.link_();
+ sink.setDocumentName( ".///whatsnew-1.1.html" );
+ sink.body();
+ sink.body_();
}
finally
{
@@ -156,5 +173,8 @@
assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/docName#anchor\">" ) != -1 );
assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/index\">" ) != -1 );
assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./download\">" ) != -1 );
+ assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/test\">" ) != -1 );
+ assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/whatsnew-1.1\">" ) != -1 );
+ assertTrue( result.indexOf( "<fo:block id=\"./whatsnew-1.1\">" ) != -1 );
}
}