FOP-2663: AFP tag-logical-element encoding missing from IF xml

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1768506 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/fop-core/src/main/java/org/apache/fop/render/afp/extensions/AFPPageSetup.java b/fop-core/src/main/java/org/apache/fop/render/afp/extensions/AFPPageSetup.java
index 27db41d..12ca5ef 100644
--- a/fop-core/src/main/java/org/apache/fop/render/afp/extensions/AFPPageSetup.java
+++ b/fop-core/src/main/java/org/apache/fop/render/afp/extensions/AFPPageSetup.java
@@ -32,6 +32,7 @@
 
     /** value attribute */
     protected static final String ATT_VALUE = "value";
+    protected static final String ATT_ENCODING = "encoding";
 
     /** placement attribute */
     protected static final String ATT_PLACEMENT = "placement";
@@ -145,6 +146,9 @@
         if (this.placement != ExtensionPlacement.DEFAULT) {
             atts.addAttribute(null, ATT_PLACEMENT, ATT_PLACEMENT, "CDATA", placement.getXMLValue());
         }
+        if (encoding != TagLogicalElement.State.ENCODING_NONE) {
+            atts.addAttribute(null, ATT_ENCODING, ATT_ENCODING, "CDATA", String.valueOf(encoding));
+        }
         handler.startElement(CATEGORY, elementName, elementName, atts);
         if (content != null && content.length() > 0) {
             char[] chars = content.toCharArray();
diff --git a/fop/test/intermediate/afp.xml b/fop/test/intermediate/afp.xml
new file mode 100644
index 0000000..fd4dbfb
--- /dev/null
+++ b/fop/test/intermediate/afp.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" standalone="no"?>
+<!--
+  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.
+-->
+<testcase>
+  <info>
+    <p>
+      This test checks that encoding coming from a afp element appear in the IF output.
+    </p>
+  </info>
+  <fo>
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:afp="http://xmlgraphics.apache.org/fop/extensions/afp">
+      <fo:layout-master-set>
+        <fo:simple-page-master master-name="page"
+          page-height="320pt" page-width="420pt" margin="10pt">
+          <fo:region-body/>
+        </fo:simple-page-master>
+      </fo:layout-master-set>
+
+      <fo:page-sequence master-reference="page">
+        <fo:flow flow-name="xsl-region-body" text-align="justify">
+          <fo:block>test</fo:block>
+        </fo:flow>
+        <afp:tag-logical-element encoding="870" value="value" name="TestName"/>
+      </fo:page-sequence>
+
+    </fo:root>
+  </fo>
+  <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+    <eval expected="870" xpath="//if:page-sequence/descendant::*[local-name() = 'tag-logical-element'][1]/@encoding"/>
+  </if-checks>
+</testcase>