diff options
author | Jeremias Maerki <jeremias@apache.org> | 2005-06-29 13:20:16 +0000 |
---|---|---|
committer | Jeremias Maerki <jeremias@apache.org> | 2005-06-29 13:20:16 +0000 |
commit | 5d2ba96530eff8c8cb7a0f70b30104a603dd895b (patch) | |
tree | e9bb099d142ec02ae6b999e38e374b86fad52409 | |
parent | f384710ff92f06f51f86b22ce3ec91fd3d3c8fea (diff) | |
download | xmlgraphics-fop-5d2ba96530eff8c8cb7a0f70b30104a603dd895b.tar.gz xmlgraphics-fop-5d2ba96530eff8c8cb7a0f70b30104a603dd895b.zip |
More extensive multi-column layout testing.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@202372 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | test/layoutengine/disabled-testcases.txt | 2 | ||||
-rw-r--r-- | test/layoutengine/testcases/multi-column1.xml | 75 | ||||
-rw-r--r-- | test/layoutengine/testcases/multi-column1a.xml | 98 | ||||
-rw-r--r-- | test/layoutengine/testcases/multi-column2.xml | 36 | ||||
-rw-r--r-- | test/layoutengine/testcases/multi-column3.xml | 67 |
5 files changed, 246 insertions, 32 deletions
diff --git a/test/layoutengine/disabled-testcases.txt b/test/layoutengine/disabled-testcases.txt index d3f3703b1..a5146d8cd 100644 --- a/test/layoutengine/disabled-testcases.txt +++ b/test/layoutengine/disabled-testcases.txt @@ -6,6 +6,8 @@ keep-with-previous3.xml keep-with-previous4.xml keep-with-previous5.xml list4.xml +multi-column2.xml +multi-column3.xml normal-breaking4.xml table-border-collapse1.xml table-border-collapse2.xml diff --git a/test/layoutengine/testcases/multi-column1.xml b/test/layoutengine/testcases/multi-column1.xml index af1741210..451d7141c 100644 --- a/test/layoutengine/testcases/multi-column1.xml +++ b/test/layoutengine/testcases/multi-column1.xml @@ -30,43 +30,54 @@ </fo:layout-master-set> <fo:page-sequence master-reference="normal" white-space-collapse="true"> <fo:flow flow-name="xsl-region-body"> - <fo:block> - <fo:block>line1</fo:block> - <fo:block>line2</fo:block> - <fo:block background-color="orange">line3</fo:block> - <fo:block>line4</fo:block> - <fo:block>line5</fo:block> - <fo:block>line6</fo:block> - <fo:block>line7</fo:block> - <fo:block>line8</fo:block> - <fo:block>line9</fo:block> - <fo:block>line10</fo:block> - <fo:block>line11</fo:block> - <fo:block>line12</fo:block> - <fo:block>line13</fo:block> - <fo:block>line14</fo:block> - <fo:block>line15</fo:block> - <fo:block>line16</fo:block> - <fo:block>line17</fo:block> - <fo:block>line18</fo:block> - <fo:block>line19</fo:block> - <fo:block>line20</fo:block> - <fo:block>line21</fo:block> - <fo:block>line22</fo:block> - <fo:block>line23</fo:block> - <fo:block>line24</fo:block> - <fo:block>line25</fo:block> - <fo:block>line26</fo:block> - <fo:block>line27</fo:block> - <fo:block>line28</fo:block> - <fo:block>line29</fo:block> - <fo:block>line30</fo:block> - </fo:block> + <fo:block>line1</fo:block> + <fo:block>line2</fo:block> + <fo:block background-color="orange">line3</fo:block> + <fo:block>line4</fo:block> + <fo:block>line5</fo:block> + <fo:block>line6</fo:block> + <fo:block>line7</fo:block> + <fo:block>line8</fo:block> + <fo:block>line9</fo:block> + <fo:block>line10</fo:block> + <fo:block>line11</fo:block> + <fo:block>line12</fo:block> + <fo:block>line13</fo:block> + <fo:block>line14</fo:block> + <fo:block>line15</fo:block> + <fo:block>line16</fo:block> + <fo:block>line17</fo:block> + <fo:block>line18</fo:block> + <fo:block>line19</fo:block> + <fo:block>line20</fo:block> + <fo:block>line21</fo:block> + <fo:block>line22</fo:block> + <fo:block>line23</fo:block> + <fo:block>line24</fo:block> + <fo:block>line25</fo:block> + <fo:block>line26</fo:block> + <fo:block>line27</fo:block> + <fo:block>line28</fo:block> + <fo:block>line29</fo:block> + <fo:block>line30</fo:block> </fo:flow> </fo:page-sequence> </fo:root> </fo> <checks> <eval expected="1" xpath="count(//pageViewport)"/> + + <eval expected="1" xpath="count(//regionBody/mainReference/span)"/> + <!-- room for 20 lines --> + <eval expected="20" xpath="//regionBody/mainReference/span/@bpd div 14400"/> + + <!-- 2 columns --> + <eval expected="2" xpath="count(//regionBody/mainReference/span/flow)"/> + <!-- 20 lines in first column --> + <eval expected="20" xpath="count(//regionBody/mainReference/span/flow[1]/block)"/> + <eval expected="20" xpath="//regionBody/mainReference/span/flow[1]/@bpd div 14400"/> + <!-- 10 lines in second column --> + <eval expected="10" xpath="count(//regionBody/mainReference/span/flow[2]/block)"/> + <eval expected="10" xpath="//regionBody/mainReference/span/flow[2]/@bpd div 14400"/> </checks> </testcase> diff --git a/test/layoutengine/testcases/multi-column1a.xml b/test/layoutengine/testcases/multi-column1a.xml new file mode 100644 index 000000000..3c7b48137 --- /dev/null +++ b/test/layoutengine/testcases/multi-column1a.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed 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 multi-column documents. Normal multi-column document breaking over more than one page.
+ </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="360pt" page-height="2in">
+ <fo:region-body column-count="2" column-gap="20pt"/>
+ </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>line1</fo:block>
+ <fo:block>line2</fo:block>
+ <fo:block background-color="orange">line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5</fo:block>
+ <fo:block>line6</fo:block>
+ <fo:block>line7</fo:block>
+ <fo:block>line8</fo:block>
+ <fo:block>line9</fo:block>
+ <fo:block>line10</fo:block>
+ <fo:block>line11</fo:block>
+ <fo:block>line12</fo:block>
+ <fo:block>line13</fo:block>
+ <fo:block>line14</fo:block>
+ <fo:block>line15</fo:block>
+ <fo:block>line16</fo:block>
+ <fo:block>line17</fo:block>
+ <fo:block>line18</fo:block>
+ <fo:block>line19</fo:block>
+ <fo:block>line20</fo:block>
+ <fo:block>line21</fo:block>
+ <fo:block>line22</fo:block>
+ <fo:block>line23</fo:block>
+ <fo:block>line24</fo:block>
+ <fo:block>line25</fo:block>
+ <fo:block>line26</fo:block>
+ <fo:block>line27</fo:block>
+ <fo:block>line28</fo:block>
+ <fo:block>line29</fo:block>
+ <fo:block>line30</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <eval expected="2" xpath="count(//pageViewport)"/>
+
+ <!-- *** page 1 *** -->
+ <eval expected="1" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span)"/>
+ <!-- room for 10 lines -->
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/>
+
+ <!-- 2 columns -->
+ <eval expected="2" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow)"/>
+ <!-- 10 lines in first column -->
+ <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/>
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/>
+ <!-- 10 lines in second column -->
+ <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/>
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/>
+
+ <!-- *** page 2 *** -->
+ <eval expected="1" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span)"/>
+ <!-- room for 10 lines -->
+ <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/>
+
+ <!-- 2 columns -->
+ <eval expected="2" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow)"/>
+ <!-- 10 lines in first column -->
+ <eval expected="10" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/>
+ <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/>
+ <!-- 0 lines in second column -->
+ <eval expected="0" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/>
+ <eval expected="0" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/>
+ </checks>
+</testcase>
diff --git a/test/layoutengine/testcases/multi-column2.xml b/test/layoutengine/testcases/multi-column2.xml index a05d515e9..77f522a93 100644 --- a/test/layoutengine/testcases/multi-column2.xml +++ b/test/layoutengine/testcases/multi-column2.xml @@ -72,5 +72,41 @@ </fo> <checks> <eval expected="1" xpath="count(//pageViewport)"/> + + <!-- *** page 1 *** --> + <eval expected="3" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span)"/> + + <!-- column balancing should produce 5 lines (ceil(13 / 3)) --> + <eval expected="5" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/@bpd div 14400"/> + <!-- 3 columns in span 1 --> + <eval expected="3" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow)"/> + <!-- 5 lines in first column --> + <eval expected="5" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[1]/block)"/> + <eval expected="5" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[1]/@bpd div 14400"/> + <!-- 5 lines in second column --> + <eval expected="5" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[2]/block)"/> + <eval expected="5" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[2]/@bpd div 14400"/> + <!-- 3 lines in third column --> + <eval expected="3" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[3]/block)"/> + <eval expected="3" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[1]/flow[3]/@bpd div 14400"/> + + <!-- second span should produce 4 lines --> + <eval expected="4" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[2]/@bpd div 14400"/> + <!-- 1 column in span 2 --> + <eval expected="1" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[2]/flow)"/> + <eval expected="4" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[2]/flow[1]/block)"/> + <eval expected="4" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[2]/flow[1]/@bpd div 14400"/> + + <!-- no column balancing in the last span --> + <eval expected="3" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/@bpd div 14400"/> + <!-- 3 columns in span 3 --> + <eval expected="3" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/flow)"/> + <!-- 11 lines in first column --> + <eval expected="11" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/flow[1]/block)"/> + <eval expected="11" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/flow[1]/@bpd div 14400"/> + <!-- 2 lines in second column (no column balancing here)--> + <eval expected="2" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/flow[2]/block)"/> + <eval expected="2" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span[3]/flow[2]/@bpd div 14400"/> + </checks> </testcase> diff --git a/test/layoutengine/testcases/multi-column3.xml b/test/layoutengine/testcases/multi-column3.xml new file mode 100644 index 000000000..255ef256b --- /dev/null +++ b/test/layoutengine/testcases/multi-column3.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed 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 multi-column documents. This test: footnotes in multi-column documents (no spans).
+ </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="360pt" page-height="2in">
+ <fo:region-body column-count="2" column-gap="20pt"/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="normal" white-space-collapse="true">
+ <fo:static-content flow-name="xsl-footnote-separator">
+ <fo:block border-top="solid 5pt red"/>
+ </fo:static-content>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block>line1</fo:block>
+ <fo:block>line2</fo:block>
+ <fo:block>line3</fo:block>
+ <fo:block>line4</fo:block>
+ <fo:block>line5<fo:footnote><fo:inline>x</fo:inline><fo:footnote-body><fo:block background-color="orange">A footnote</fo:block></fo:footnote-body></fo:footnote></fo:block>
+ <fo:block>line6</fo:block>
+ <fo:block>line7</fo:block>
+ <fo:block>line8</fo:block>
+ <fo:block>line9</fo:block>
+ <fo:block>line10</fo:block>
+ <fo:block>line11<fo:footnote><fo:inline>x</fo:inline><fo:footnote-body><fo:block background-color="orange">Another footnote on the second column</fo:block></fo:footnote-body></fo:footnote></fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
+ </fo>
+ <checks>
+ <eval expected="1" xpath="count(//pageViewport)"/>
+
+ <eval expected="1" xpath="count(//regionBody/mainReference/span)"/>
+ <!-- room for 7 lines -->
+ <eval expected="7" xpath="//regionBody/mainReference/span/@bpd div 14400"/>
+
+ <!-- 2 columns -->
+ <eval expected="2" xpath="count(//regionBody/mainReference/span/flow)"/>
+ <!-- 7 lines in first column -->
+ <eval expected="7" xpath="count(//regionBody/mainReference/span/flow[1]/block)"/>
+ <eval expected="7" xpath="//regionBody/mainReference/span/flow[1]/@bpd div 14400"/>
+ <!-- 4 lines in second column -->
+ <eval expected="4" xpath="count(//regionBody/mainReference/span/flow[2]/block)"/>
+ <eval expected="4" xpath="//regionBody/mainReference/span/flow[2]/@bpd div 14400"/>
+ </checks>
+</testcase>
|