You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2019/05/29 09:32:15 UTC

[maven-doxia] branch DOXIA-570 updated (de93c00 -> b654bb6)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch DOXIA-570
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git.


 discard de93c00  [DOXIA-570] Escape links to xml based figureGraphics image elements
     new b654bb6  [DOXIA-570] Escape links to xml based figureGraphics image elements

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (de93c00)
            \
             N -- N -- N   refs/heads/DOXIA-570 (b654bb6)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:


[maven-doxia] 01/01: [DOXIA-570] Escape links to xml based figureGraphics image elements

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch DOXIA-570
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git

commit b654bb6e75c8ff2d608ff902f7a5f2f92ac7c6cd
Author: Sylwester Lachiewicz <sl...@gmail.com>
AuthorDate: Sun Feb 11 21:48:36 2018 +0100

    [DOXIA-570] Escape links to xml based figureGraphics image elements
---
 .../maven/doxia/sink/impl/Xhtml5BaseSink.java      |  2 +-
 .../maven/doxia/sink/impl/XhtmlBaseSink.java       |  2 +-
 .../maven/doxia/sink/impl/AbstractSinkTest.java    | 21 +++++++++++++++++++++
 .../maven/doxia/module/docbook/DocBookSink.java    | 22 +++++++++++-----------
 .../doxia/module/docbook/DocBookSinkTest.java      |  4 +++-
 .../org/apache/maven/doxia/module/fo/FoSink.java   |  6 ++++--
 .../apache/maven/doxia/module/fo/FoSinkTest.java   |  6 ++++--
 .../maven/doxia/module/xdoc/XdocSinkTest.java      |  6 ++++--
 .../maven/doxia/module/xhtml/XhtmlSinkTest.java    |  4 +++-
 .../maven/doxia/module/xhtml5/Xhtml5SinkTest.java  |  4 +++-
 10 files changed, 55 insertions(+), 22 deletions(-)

diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
index 6be2d56..b927234 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
@@ -1103,7 +1103,7 @@ public class Xhtml5BaseSink
 
         MutableAttributeSet atts = new SinkEventAttributeSet( count );
 
-        atts.addAttribute( Attribute.SRC, escapeHTML( src ) );
+        atts.addAttribute( Attribute.SRC, HtmlTools.escapeHTML( src, true ) );
         atts.addAttributes( filtered );
 
         if ( atts.getAttribute( Attribute.ALT.toString() ) == null )
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
index 74dcc60..c53e439 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
@@ -967,7 +967,7 @@ public class XhtmlBaseSink
 
         MutableAttributeSet atts = new SinkEventAttributeSet( count );
 
-        atts.addAttribute( Attribute.SRC, escapeHTML( src ) );
+        atts.addAttribute( Attribute.SRC, HtmlTools.escapeHTML( src, true ) );
         atts.addAttributes( filtered );
 
         if ( atts.getAttribute( Attribute.ALT.toString() ) == null )
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
index df84ffe..ff5cb2c 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
@@ -618,6 +618,27 @@ public abstract class AbstractSinkTest
             assertEquals( actual, expected );
         }
     }
+    public void testFigureFromUrl()
+    {
+        String source = "http://www.gravatar.com/avatar/cdbe99fe3d6af6a18dd8c35b0687a50b?d=mm&s=60";
+        sink.figure();
+        sink.figureGraphics( source );
+        sink.figure_();
+        sink.flush();
+        sink.close();
+
+        String actual = testWriter.toString();
+        String expected = getFigureBlock( source, null );
+
+        if ( isXmlSink() )
+        {
+            assertThat ( wrapXml( actual ), CompareMatcher.isIdenticalTo( wrapXml( expected ) ));
+        }
+        else
+        {
+            assertEquals( actual, expected );
+        }
+    }
 
     /**
      * Checks that the sequence <code>[table(),
diff --git a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
index 57d3eb2..fb6cae7 100644
--- a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
+++ b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
@@ -40,9 +40,10 @@ import org.apache.maven.doxia.sink.SinkEventAttributes;
 import org.apache.maven.doxia.sink.impl.AbstractXmlSink;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
 import org.apache.maven.doxia.util.DoxiaUtils;
-import org.apache.maven.doxia.util.HtmlTools;
 import org.codehaus.plexus.util.FileUtils;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * <a href="http://www.oasis-open.org/docbook">Docbook</a> Sink implementation.
  * <br>
@@ -219,7 +220,7 @@ public class DocBookSink
      */
     public static String escapeSGML( String text, boolean xmlMode )
     {
-        return HtmlTools.escapeHTML( text, xmlMode );
+        return escapeHTML( text, xmlMode );
     }
 
     /**
@@ -1176,9 +1177,8 @@ public class DocBookSink
             writeStartTag( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG );
 
             MutableAttributeSet att = new SimpleAttributeSet();
-            att.addAttribute( SimplifiedDocbookMarkup.FORMAT_ATTRIBUTE, format );
-            att.addAttribute( SimplifiedDocbookMarkup.FILEREF_ATTRIBUTE,
-                    HtmlTools.escapeHTML( graphicsFileName, true ) );
+            att.addAttribute( SimplifiedDocbookMarkup.FORMAT_ATTRIBUTE, escapeHTML( format, true ) );
+            att.addAttribute( SimplifiedDocbookMarkup.FILEREF_ATTRIBUTE, escapeHTML( graphicsFileName, true ) );
 
             writeSimpleTag( SimplifiedDocbookMarkup.IMAGEDATA_TAG, att );
 
@@ -1196,8 +1196,8 @@ public class DocBookSink
         writeStartTag( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG );
 
         MutableAttributeSet att = new SimpleAttributeSet();
-        att.addAttribute( SimplifiedDocbookMarkup.FORMAT_ATTRIBUTE, format );
-        att.addAttribute( SimplifiedDocbookMarkup.FILEREF_ATTRIBUTE, HtmlTools.escapeHTML( name, true ) );
+        att.addAttribute( SimplifiedDocbookMarkup.FORMAT_ATTRIBUTE, escapeHTML( format, true ) );
+        att.addAttribute( SimplifiedDocbookMarkup.FILEREF_ATTRIBUTE, escapeHTML( name, true ) );
 
         writeSimpleTag( SimplifiedDocbookMarkup.IMAGEDATA_TAG, att );
 
@@ -1503,7 +1503,7 @@ public class DocBookSink
         {
             String linkend = name.substring( 1 );
             MutableAttributeSet att = new SimpleAttributeSet();
-            att.addAttribute( SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE, HtmlTools.escapeHTML( linkend ) );
+            att.addAttribute( SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE, escapeHTML( linkend ) );
 
             writeStartTag( SimplifiedDocbookMarkup.LINK_TAG, att );
         }
@@ -1511,7 +1511,7 @@ public class DocBookSink
         {
             externalLinkFlag = true;
             MutableAttributeSet att = new SimpleAttributeSet();
-            att.addAttribute( SimplifiedDocbookMarkup.URL_ATTRIBUTE, HtmlTools.escapeHTML( name, true ) );
+            att.addAttribute( SimplifiedDocbookMarkup.URL_ATTRIBUTE, escapeHTML( name, true ) );
 
             writeStartTag( SimplifiedDocbookMarkup.ULINK_TAG, att );
         }
@@ -1716,7 +1716,7 @@ public class DocBookSink
     {
         if ( !skip )
         {
-            out.write( HtmlTools.escapeHTML( text, true ) );
+            out.write( escapeHTML( text, true ) );
         }
     }
 
@@ -1729,7 +1729,7 @@ public class DocBookSink
     {
         if ( !skip )
         {
-            out.write( HtmlTools.escapeHTML( text, true ) );
+            out.write( escapeHTML( text, true ) );
         }
     }
 
diff --git a/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java b/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
index c862f3d..f7235fc 100644
--- a/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
+++ b/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
@@ -31,6 +31,8 @@ import org.apache.maven.doxia.sink.impl.SinkUtils;
 import org.apache.maven.doxia.util.DoxiaUtils;
 import org.codehaus.plexus.util.FileUtils;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @version $Id$
@@ -185,7 +187,7 @@ public class DocBookSinkTest extends AbstractSinkTest
     {
         String format = FileUtils.extension( source ).toUpperCase( Locale.ENGLISH );
         String figureBlock = "<mediaobject><imageobject>"
-                + "<imagedata fileref=\"" + source + "\" format=\"" + format + "\" />"
+                + "<imagedata fileref=\"" + escapeHTML( source ) + "\" format=\"" + escapeHTML( format ) + "\" />"
                 + "</imageobject>";
         if ( caption != null )
         {
diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
index 8949fce..b5af267 100644
--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
+++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
@@ -47,6 +47,8 @@ import org.apache.maven.doxia.util.HtmlTools;
 
 import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * A Doxia Sink that produces a FO model. The usage is similar to the following:
  *
@@ -784,9 +786,9 @@ public class FoSink
     public void figureGraphics( String src, SinkEventAttributes attributes )
     {
         MutableAttributeSet atts = config.getAttributeSet( "figure.graphics" );
-        atts.addAttribute( Attribute.SRC.toString(), src );
+        atts.addAttribute( Attribute.SRC.toString(), escapeHTML( src ) );
 
-        // http://xmlgraphics.apache.org/fop/graphics.html#resolution
+        // https://xmlgraphics.apache.org/fop/trunk/graphics.html#resolution
 
         final String[] valids = new String[] {"content-height", "content-width", "height", "width"};
         final MutableAttributeSet filtered = SinkUtils.filterAttributes( attributes, valids );
diff --git a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
index 7d78aca..9166362 100644
--- a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
+++ b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoSinkTest.java
@@ -32,6 +32,8 @@ import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.impl.AbstractSinkTest;
 import org.apache.maven.doxia.sink.impl.SinkTestDocument;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * <code>FO Sink</code> Test case.
  *
@@ -321,8 +323,8 @@ public class FoSinkTest
         String dtAtts = getConfig().getAttributeString( "figure.graphics" );
         String ddAtts = getConfig().getAttributeString( "figure.caption" );
 
-        String figureBlock = EOL + EOL + "<fo:block" + dlAtts + "><fo:external-graphic" + " src=\"" + source + "\"" + dtAtts
-            + "/>" + EOL;
+        String figureBlock = EOL + EOL + "<fo:block" + dlAtts + ">" +
+                "<fo:external-graphic" + " src=\"" + escapeHTML( source ) + "\"" + dtAtts + "/>" + EOL;
         if ( caption != null )
         {
             figureBlock += EOL + "<fo:block" + ddAtts + ">" + caption + "</fo:block>" + EOL;
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
index f465831..38b0402 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
@@ -27,6 +27,8 @@ import org.apache.maven.doxia.util.HtmlTools;
 import java.io.StringWriter;
 import java.io.Writer;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @version $Id$
@@ -180,7 +182,7 @@ public class XdocSinkTest
     /** {@inheritDoc} */
     protected String getFigureBlock( String source, String caption )
     {
-        String figureBlock = "<img src=\"" + source + "\"";
+        String figureBlock = "<img src=\"" + escapeHTML( source ) + "\"";
         if ( caption != null )
         {
             figureBlock += " alt=\"" + caption + "\"";
@@ -330,7 +332,7 @@ public class XdocSinkTest
     protected String getTextBlock( String text )
     {
         // TODO: need to be able to retreive those from outside the sink
-        return HtmlTools.escapeHTML( text );
+        return escapeHTML( text );
     }
 
     /** {@inheritDoc} */
diff --git a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
index cc96103..27f7d93 100644
--- a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
+++ b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
@@ -27,6 +27,8 @@ import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.impl.AbstractSinkTest;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 /**
  * @author Jason van Zyl
  * @version $Id$
@@ -214,7 +216,7 @@ public class XhtmlSinkTest
     /** {@inheritDoc} */
     protected String getFigureBlock( String source, String caption )
     {
-        String figureBlock = "<img src=\"" + source + "\"";
+        String figureBlock = "<img src=\"" + escapeHTML( source, true ) + "\"";
         if( caption != null )
         {
             figureBlock += " alt=\"" + caption + "\"";
diff --git a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
index 54ce04a..ea42b53 100644
--- a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
+++ b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
@@ -28,6 +28,8 @@ import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.impl.AbstractSinkTest;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
 
+import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
+
 public class Xhtml5SinkTest
     extends AbstractSinkTest
 {
@@ -210,7 +212,7 @@ public class Xhtml5SinkTest
     /** {@inheritDoc} */
     protected String getFigureBlock( String source, String caption )
     {
-        String figureBlock = "<figure><img src=\"" + source + "\" alt=\"\" />";
+        String figureBlock = "<figure><img src=\"" + escapeHTML( source, true ) + "\" alt=\"\" />";
         if( caption != null )
         {
             figureBlock += "<figcaption>" + caption + "</figcaption>";