]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Extended fotree test facility to allow testing of sub-properties.
authorJeremias Maerki <jeremias@apache.org>
Mon, 17 Oct 2005 08:56:05 +0000 (08:56 +0000)
committerJeremias Maerki <jeremias@apache.org>
Mon, 17 Oct 2005 08:56:05 +0000 (08:56 +0000)
Test for border-separation and border-spacing.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_SpaceResolution@325862 13f79535-47bb-0310-9956-ffa450edef68

test/fotree/testcases/table_border-separation.fo [new file with mode: 0644]
test/java/org/apache/fop/fotreetest/ext/AssertElement.java

diff --git a/test/fotree/testcases/table_border-separation.fo b/test/fotree/testcases/table_border-separation.fo
new file mode 100644 (file)
index 0000000..9d73cce
--- /dev/null
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!--\r
+  Copyright 2005 The Apache Software Foundation\r
+\r
+  Licensed under the Apache License, Version 2.0 (the "License");\r
+  you may not use this file except in compliance with the License.\r
+  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+  Unless required by applicable law or agreed to in writing, software\r
+  distributed under the License is distributed on an "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  See the License for the specific language governing permissions and\r
+  limitations under the License.\r
+-->\r
+<!-- $Id$ -->\r
+<!-- This test verifies the correct values of border-separation and its shorthand, border-spacing. -->\r
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:test="http://xmlgraphics.apache.org/fop/test">\r
+  <fo:layout-master-set>\r
+    <fo:simple-page-master master-name="A4" page-height="29.7cm" page-width="21cm">\r
+      <fo:region-body/>\r
+    </fo:simple-page-master>\r
+  </fo:layout-master-set>\r
+  <fo:page-sequence master-reference="A4">\r
+    <fo:flow flow-name="xsl-region-body">\r
+      <fo:table table-layout="fixed" border-collapse="separate" border-spacing="5pt 2pt">\r
+        <test:assert property="border-separation.inline-progression-direction" expected="5000mpt"/>\r
+        <test:assert property="border-separation.block-progression-direction" expected="2000mpt"/>\r
+        <fo:table-column column-width="160pt"/>\r
+        <fo:table-column column-width="160pt"/>\r
+        <fo:table-body>\r
+          <fo:table-row>\r
+            <fo:table-cell>\r
+              <fo:block>cell1</fo:block>\r
+            </fo:table-cell>\r
+            <fo:table-cell border="solid 5pt black">\r
+              <fo:block>cell2</fo:block>\r
+            </fo:table-cell>\r
+          </fo:table-row>\r
+          <fo:table-row>\r
+            <fo:table-cell border="solid 5pt">\r
+              <fo:block>cell3</fo:block>\r
+            </fo:table-cell>\r
+            <fo:table-cell height="20pt" border="solid 10pt red">\r
+              <fo:block>cell4</fo:block>\r
+            </fo:table-cell>\r
+          </fo:table-row>\r
+        </fo:table-body>\r
+      </fo:table>\r
+      <fo:table table-layout="fixed" border-collapse="separate" \r
+            border-separation.inline-progression-direction="5pt" \r
+            border-separation.block-progression-direction="2pt">\r
+        <test:assert property="border-separation.inline-progression-direction" expected="5000mpt"/>\r
+        <test:assert property="border-separation.block-progression-direction" expected="2000mpt"/>\r
+        <fo:table-column column-width="160pt"/>\r
+        <fo:table-column column-width="160pt"/>\r
+        <fo:table-body start-indent="0pt" end-indent="0pt">\r
+          <fo:table-row>\r
+            <fo:table-cell>\r
+              <fo:block>cell1</fo:block>\r
+            </fo:table-cell>\r
+            <fo:table-cell border="solid 5pt black">\r
+              <fo:block>cell2</fo:block>\r
+            </fo:table-cell>\r
+          </fo:table-row>\r
+          <fo:table-row>\r
+            <fo:table-cell border="solid 5pt">\r
+              <fo:block>cell3</fo:block>\r
+            </fo:table-cell>\r
+            <fo:table-cell height="20pt" border="solid 10pt red">\r
+              <fo:block>cell4</fo:block>\r
+            </fo:table-cell>\r
+          </fo:table-row>\r
+        </fo:table-body>\r
+      </fo:table>\r
+    </fo:flow>\r
+  </fo:page-sequence>\r
+</fo:root>\r
index ebd8335c16eefb7c57bc8fac4ff19fc3d1530e5f..f773c76a670810fedb8f180d0fe896624d6fb854 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.fop.apps.FOPException;
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FOPropertyMapping;
 import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.properties.LengthPairProperty;
 import org.apache.fop.fo.properties.Property;
 import org.apache.fop.fotreetest.ResultCollector;
 
@@ -51,13 +52,29 @@ public class AssertElement extends TestObj {
         //super.processNode(elementName, locator, attlist, propertyList);
 
         ResultCollector collector = ResultCollector.getInstance();
-        String propName = attlist.getValue("property"); 
+        String propName = attlist.getValue("property");
+        String component = null;
+        int dotIndex = propName.indexOf('.');
+        if (dotIndex >= 0) {
+            component = propName.substring(dotIndex + 1);
+            propName = propName.substring(0, dotIndex);
+        }
         int propID = FOPropertyMapping.getPropertyId(propName);
         if (propID < 0) {
             collector.notifyException(new IllegalArgumentException(
                     "Property not found: " + propName));
         } else {
-            Property prop = propertyList.getParentPropertyList().get(propID);
+            Property prop;
+            prop = propertyList.getParentPropertyList().get(propID);
+            if (component != null) {
+                //Access subcomponent
+                Property mainProp = prop;
+                prop = null;
+                LengthPairProperty lpp = mainProp.getLengthPair();
+                if (lpp != null) {
+                    prop = lpp.getComponent(FOPropertyMapping.getSubPropertyId(component));
+                }
+            }
             String s = String.valueOf(prop);
             String expected = attlist.getValue("expected");
             if (!expected.equals(s)) {