]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Some tests for text-align (not comprehensive!).
authorJeremias Maerki <jeremias@apache.org>
Tue, 30 Aug 2005 12:54:59 +0000 (12:54 +0000)
committerJeremias Maerki <jeremias@apache.org>
Tue, 30 Aug 2005 12:54:59 +0000 (12:54 +0000)
text-align2 test for a special constellation which currently results in a ClassPathException.

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

test/layoutengine/testcases/text-align1.xml [new file with mode: 0644]
test/layoutengine/testcases/text-align2.xml [new file with mode: 0644]

diff --git a/test/layoutengine/testcases/text-align1.xml b/test/layoutengine/testcases/text-align1.xml
new file mode 100644 (file)
index 0000000..563c837
--- /dev/null
@@ -0,0 +1,123 @@
+<?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
+<testcase>\r
+  <info>\r
+    <p>\r
+      This test checks text-align and text-align-last.\r
+    </p>\r
+  </info>\r
+  <fo>\r
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">\r
+      <fo:layout-master-set>\r
+        <fo:simple-page-master master-name="simple" page-height="10in" page-width="5in">\r
+          <fo:region-body/>\r
+        </fo:simple-page-master>\r
+      </fo:layout-master-set>\r
+      <fo:page-sequence master-reference="simple">\r
+        <fo:flow flow-name="xsl-region-body">\r
+          <fo:block>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="start" background-color="yellow">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="justify">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="center" background-color="yellow">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="end">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="justify" text-align-last="center" background-color="yellow">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+          <fo:block text-align="justify" text-align-last="end">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi suscipit, risus ac congue suscipit, tortor nibh cursus mauris, quis feugiat nunc ante sit amet ante.</fo:block>\r
+        </fo:flow>\r
+      </fo:page-sequence>\r
+    </fo:root>\r
+  </fo>\r
+  <checks>\r
+    <!-- default settings for text-align -->\r
+    <true xpath="not(boolean(//flow/block[1]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[1]/lineArea[2]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[1]/lineArea[3]/@start-indent))"/>\r
+    <true xpath="//flow/block[1]/lineArea[1]/text/@ipd != //flow/block[1]/lineArea[2]/text/@ipd"/>\r
+    <true xpath="//flow/block[1]/lineArea[2]/text/@ipd != //flow/block[1]/lineArea[3]/text/@ipd"/>\r
+\r
+    <!-- text-align="start" -->\r
+    <true xpath="not(boolean(//flow/block[2]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[2]/lineArea[2]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[2]/lineArea[3]/@start-indent))"/>\r
+    <true xpath="//flow/block[2]/lineArea[1]/text/@ipd != //flow/block[2]/lineArea[2]/text/@ipd"/>\r
+    <true xpath="//flow/block[2]/lineArea[2]/text/@ipd != //flow/block[2]/lineArea[3]/text/@ipd"/>\r
+    \r
+    <!-- block 1 and 2 must have the same result -->\r
+    <true xpath="//flow/block[1]/lineArea[1]/text/@ipd = //flow/block[2]/lineArea[1]/text/@ipd"/>\r
+    <true xpath="//flow/block[1]/lineArea[2]/text/@ipd = //flow/block[2]/lineArea[2]/text/@ipd"/>\r
+    <true xpath="//flow/block[1]/lineArea[3]/text/@ipd = //flow/block[2]/lineArea[3]/text/@ipd"/>\r
+\r
+    <!-- text-align="justify" -->\r
+    <true xpath="not(boolean(//flow/block[3]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[3]/lineArea[2]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[3]/lineArea[3]/@start-indent))"/>\r
+    <!-- Some tolerance seems to be necessary here. Why is that exactly? -->\r
+    <true xpath="(360000 - //flow/block[3]/lineArea[1]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[3]/lineArea[1]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="(360000 - //flow/block[3]/lineArea[2]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[3]/lineArea[2]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="//flow/block[3]/lineArea[3]/text/@ipd &lt; 350000"/>\r
+\r
+    <!-- text-align="center" -->\r
+    <true xpath="//flow/block[4]/lineArea[1]/@start-indent &gt; 10000"/>\r
+    <true xpath="//flow/block[4]/lineArea[2]/@start-indent &gt; 10000"/>\r
+    <true xpath="//flow/block[4]/lineArea[3]/@start-indent &gt; 10000"/>\r
+    <!-- Some tolerance seems to be necessary here. Why is that exactly? -->\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[1]/text/@ipd - (2 * //flow/block[4]/lineArea[1]/@start-indent)) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[1]/text/@ipd - (2 * //flow/block[4]/lineArea[1]/@start-indent)) &gt; -4000"/>\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[2]/text/@ipd - (2 * //flow/block[4]/lineArea[2]/@start-indent)) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[2]/text/@ipd - (2 * //flow/block[4]/lineArea[2]/@start-indent)) &gt; -4000"/>\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[3]/text/@ipd - (2 * //flow/block[4]/lineArea[3]/@start-indent)) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[4]/lineArea[3]/text/@ipd - (2 * //flow/block[4]/lineArea[3]/@start-indent)) &gt; -4000"/>\r
+\r
+    <!-- text-align="end" -->\r
+    <true xpath="//flow/block[5]/lineArea[1]/@start-indent &gt; 10000"/>\r
+    <true xpath="//flow/block[5]/lineArea[2]/@start-indent &gt; 10000"/>\r
+    <true xpath="//flow/block[5]/lineArea[3]/@start-indent &gt; 10000"/>\r
+    <!-- Some tolerance seems to be necessary here. Why is that exactly? -->\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[1]/text/@ipd - //flow/block[5]/lineArea[1]/@start-indent) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[1]/text/@ipd - //flow/block[5]/lineArea[1]/@start-indent) &gt; -4000"/>\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[2]/text/@ipd - //flow/block[5]/lineArea[2]/@start-indent) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[2]/text/@ipd - //flow/block[5]/lineArea[2]/@start-indent) &gt; -4000"/>\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[3]/text/@ipd - //flow/block[5]/lineArea[3]/@start-indent) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[5]/lineArea[3]/text/@ipd - //flow/block[5]/lineArea[3]/@start-indent) &gt; -4000"/>\r
+\r
+    <!-- text-align="justify" text-align-last="center" -->\r
+    <true xpath="not(boolean(//flow/block[6]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[6]/lineArea[2]/@start-indent))"/>\r
+    <true xpath="//flow/block[6]/lineArea[3]/@start-indent &gt; 10000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[1]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[1]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[2]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[2]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[3]/text/@ipd - (2 * //flow/block[6]/lineArea[3]/@start-indent)) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[6]/lineArea[3]/text/@ipd - (2 * //flow/block[6]/lineArea[3]/@start-indent)) &gt; -4000"/>\r
+\r
+    <!-- text-align="justify" text-align-last="end" -->\r
+    <true xpath="not(boolean(//flow/block[7]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[7]/lineArea[2]/@start-indent))"/>\r
+    <true xpath="//flow/block[7]/lineArea[3]/@start-indent &gt; 10000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[1]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[1]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[2]/text/@ipd) &lt; 3000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[2]/text/@ipd) &gt; -3000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[3]/text/@ipd - //flow/block[7]/lineArea[3]/@start-indent) &lt; 4000"/>\r
+    <true xpath="(360000 - //flow/block[7]/lineArea[3]/text/@ipd - //flow/block[7]/lineArea[3]/@start-indent) &gt; -4000"/>\r
+\r
+    <!-- TODO Check element list -->\r
+  </checks>\r
+</testcase>\r
diff --git a/test/layoutengine/testcases/text-align2.xml b/test/layoutengine/testcases/text-align2.xml
new file mode 100644 (file)
index 0000000..607dd6e
--- /dev/null
@@ -0,0 +1,48 @@
+<?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
+<testcase>\r
+  <info>\r
+    <p>\r
+      This test checks text-align and text-align-last in special conditions.\r
+    </p>\r
+  </info>\r
+  <fo>\r
+    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">\r
+      <fo:layout-master-set>\r
+        <fo:simple-page-master master-name="simple" page-height="10in" page-width="5in">\r
+          <fo:region-body/>\r
+        </fo:simple-page-master>\r
+      </fo:layout-master-set>\r
+      <fo:page-sequence master-reference="simple" id="bla1">\r
+        <fo:flow flow-name="xsl-region-body">\r
+          <fo:block text-align-last="justify">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</fo:block>\r
+          <!-- The next block is pretty much like the previous but there is a linefeed that is converted to a space which is then\r
+               removed by LineLM.removeElementsForTrailingSpaces(). There used to be a ClassCastException here. -->\r
+          <fo:block text-align-last="justify" background-color="yellow">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
+          </fo:block>\r
+        </fo:flow>\r
+      </fo:page-sequence>\r
+    </fo:root>\r
+  </fo>\r
+  <checks>\r
+    <!-- first and second block must be identical -->\r
+    <true xpath="not(boolean(//flow/block[1]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="not(boolean(//flow/block[2]/lineArea[1]/@start-indent))"/>\r
+    <true xpath="//flow/block[1]/lineArea[1]/text/@ipd = //flow/block[2]/lineArea[1]/text/@ipd"/>\r
+  </checks>\r
+</testcase>\r