]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Minor fix to make footnotes easier to track while debugging. Added disabled layout...
authorAndreas L. Delmelle <adelmelle@apache.org>
Fri, 15 May 2015 10:22:23 +0000 (10:22 +0000)
committerAndreas L. Delmelle <adelmelle@apache.org>
Fri, 15 May 2015 10:22:23 +0000 (10:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1679533 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/fo/flow/Footnote.java
src/java/org/apache/fop/fo/flow/FootnoteBody.java
test/java/org/apache/fop/fo/extract-events.xsl
test/layoutengine/disabled-testcases.xml
test/layoutengine/standard-testcases/footnote_id.xml [new file with mode: 0644]

index e997cee672c009bab40ee208b68202787334d927..521e8b081c03676149bc3f49e85494a8aa81068b 100644 (file)
@@ -52,11 +52,13 @@ public class Footnote extends FObj implements CommonAccessibilityHolder {
 
     /** {@inheritDoc} */
     public void bind(PropertyList pList) throws FOPException {
+        super.bind(pList);
         commonAccessibility = CommonAccessibility.getInstance(pList);
     }
 
     /** {@inheritDoc} */
     public void startOfNode() throws FOPException {
+        super.startOfNode();
         getFOEventHandler().startFootnote(this);
     }
 
index af2bc2bcf57e334b7e38149665bea2b6a6169018..ab2434c472485a6c48b5ebf22706c663d3733565 100644 (file)
@@ -50,11 +50,13 @@ public class FootnoteBody extends FObj implements CommonAccessibilityHolder {
 
     /** {@inheritDoc} */
     public void bind(PropertyList pList) throws FOPException {
+        super.bind(pList);
         commonAccessibility = CommonAccessibility.getInstance(pList);
     }
 
     /** {@inheritDoc} */
     public void startOfNode() throws FOPException {
+        super.startOfNode();
         getFOEventHandler().startFootnoteBody(this);
     }
 
index 6cf42c98464ce91e4b0e2647744038a701fea033..eae794754e2c9669129d31c3aee0773460cf8f64 100644 (file)
     </xsl:call-template>
   </xsl:template>
 
-  <!-- Those elements do not retrieve the id property.
-    This will have to be fixed at some point. -->
-  <xsl:template match="fo:footnote|fo:footnote-body">
-    <xsl:call-template name="process.node"/>
-  </xsl:template>
-
   <xsl:template name="process.node">
     <xsl:param name="id" select="''"/>
     <event>
index b96ee1b77b545c4787640baf77367a9011822af4..b211b5bf5e3740614b8a4c7a0539a892f42cdb71 100644 (file)
     <name>Soft hyphen with normal hyphenation enabled</name>
     <file>block_shy_linebreaking_hyph.xml</file>
     <description>A soft hyphen should be a preferred as break compared to a
-    normal hyphenation point but is not.</description>
+    normal hyphenation point but is not. Background info: see JIRA FOP-2466.</description>
   </testcase>
   <testcase>
     <name>Page-keep not respected in multi-column layout</name>
     <description>Test erroneously depends upon incorrect implementation of writing-mode trait
     derivation on fo:region-*.</description>
   </testcase>
+  <testcase>
+    <name>Footnotes and "id" property</name>
+    <file>footnote_id.xml</file>
+    <description>The "id" for fo:footnote and fo:footnote-body is properly
+    processed, but implementation in the layout engine remains incomplete/</description>
+  </testcase>
 </disabled-testcases>
diff --git a/test/layoutengine/standard-testcases/footnote_id.xml b/test/layoutengine/standard-testcases/footnote_id.xml
new file mode 100644 (file)
index 0000000..84593df
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<!-- $Id$ -->
+<testcase>
+  <info>
+    <p>
+      This test checks registration of the "id" of fo:footnote and fo:footnote-body, 
+      so that they can be referenced in other places in the document.
+    </p>
+  </info>
+  <fo>
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
+      <fo:layout-master-set>
+        <fo:simple-page-master master-name="normal" page-width="5in" page-height="3in">
+          <fo:region-body/>
+        </fo:simple-page-master>
+      </fo:layout-master-set>
+      <fo:page-sequence master-reference="normal" white-space-collapse="true">
+        <fo:flow flow-name="xsl-region-body">
+          <fo:block text-align="center">
+            Blah
+            <fo:footnote id="fn1">
+              <fo:inline font-size="6.95pt" vertical-align="super">1) </fo:inline>
+                <fo:footnote-body id="fnb1">
+                  <fo:block text-align="left">
+                    <fo:inline font-size="6.95pt" vertical-align="super">1) </fo:inline>http://xmlgrapics.apache.org/fop/</fo:block>
+                </fo:footnote-body>
+            </fo:footnote>
+          </fo:block>
+          <fo:block text-align="center" break-before="page">
+            <fo:basic-link internal-destination="fn1">This should link to previous page</fo:basic-link>
+          </fo:block>
+          <fo:block text-align="center">
+            <fo:basic-link internal-destination="fn1">This should link to previous page</fo:basic-link>
+          </fo:block>
+        </fo:flow>
+      </fo:page-sequence>
+    </fo:root>
+  </fo>
+  <checks>
+    <!-- Check fo:footnote @id -->
+    <!-- First two checks based on the assumption that fix is to add an empty inline
+         area to hold the @prod-id -->
+    <true xpath="((//page)[1]//block)[1]/lineArea[1]/inline[1]/@prod-id" />
+    <eval expected="fn1" xpath="((//page)[1]//block)[1]/lineArea[1]/inline[1]/@prod-id"/>
+    <true xpath="((//page)[2]//block)[1]/lineArea[1]/inlineparent[1]/@internal-link" />
+    <eval expected="(P1,fn1)" xpath="((//page)[2]//block)[1]/lineArea[1]/inlineparent[1]/@internal-link"/>
+    <!-- Check fo:footnote-body @id -->
+    <!-- TODO - figure out where @prod-id should go -->
+    <true xpath="((//page)[2]//block)[2]/lineArea[1]/inlineparent[1]/@internal-link" />
+    <eval expected="(P1,fnb1)" xpath="((//page)[2]//block)[1]/lineArea[1]/inlineparent[2]/@internal-link"/>
+  </checks>
+</testcase>