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
</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>
--- /dev/null
+<?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 multi-column documents. Normal multi-column document breaking over more than one page.\r
+ </p>\r
+ </info>\r
+ <fo>\r
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">\r
+ <fo:layout-master-set>\r
+ <fo:simple-page-master master-name="normal" page-width="360pt" page-height="2in">\r
+ <fo:region-body column-count="2" column-gap="20pt"/>\r
+ </fo:simple-page-master>\r
+ </fo:layout-master-set>\r
+ <fo:page-sequence master-reference="normal" white-space-collapse="true">\r
+ <fo:flow flow-name="xsl-region-body">\r
+ <fo:block>line1</fo:block>\r
+ <fo:block>line2</fo:block>\r
+ <fo:block background-color="orange">line3</fo:block>\r
+ <fo:block>line4</fo:block>\r
+ <fo:block>line5</fo:block>\r
+ <fo:block>line6</fo:block>\r
+ <fo:block>line7</fo:block>\r
+ <fo:block>line8</fo:block>\r
+ <fo:block>line9</fo:block>\r
+ <fo:block>line10</fo:block>\r
+ <fo:block>line11</fo:block>\r
+ <fo:block>line12</fo:block>\r
+ <fo:block>line13</fo:block>\r
+ <fo:block>line14</fo:block>\r
+ <fo:block>line15</fo:block>\r
+ <fo:block>line16</fo:block>\r
+ <fo:block>line17</fo:block>\r
+ <fo:block>line18</fo:block>\r
+ <fo:block>line19</fo:block>\r
+ <fo:block>line20</fo:block>\r
+ <fo:block>line21</fo:block>\r
+ <fo:block>line22</fo:block>\r
+ <fo:block>line23</fo:block>\r
+ <fo:block>line24</fo:block>\r
+ <fo:block>line25</fo:block>\r
+ <fo:block>line26</fo:block>\r
+ <fo:block>line27</fo:block>\r
+ <fo:block>line28</fo:block>\r
+ <fo:block>line29</fo:block>\r
+ <fo:block>line30</fo:block>\r
+ </fo:flow>\r
+ </fo:page-sequence>\r
+ </fo:root>\r
+ </fo>\r
+ <checks>\r
+ <eval expected="2" xpath="count(//pageViewport)"/>\r
+ \r
+ <!-- *** page 1 *** -->\r
+ <eval expected="1" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span)"/>\r
+ <!-- room for 10 lines -->\r
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/>\r
+ \r
+ <!-- 2 columns -->\r
+ <eval expected="2" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow)"/>\r
+ <!-- 10 lines in first column -->\r
+ <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/>\r
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/>\r
+ <!-- 10 lines in second column -->\r
+ <eval expected="10" xpath="count(//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/>\r
+ <eval expected="10" xpath="//pageViewport[@nr=1]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/>\r
+\r
+ <!-- *** page 2 *** -->\r
+ <eval expected="1" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span)"/>\r
+ <!-- room for 10 lines -->\r
+ <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/@bpd div 14400"/>\r
+ \r
+ <!-- 2 columns -->\r
+ <eval expected="2" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow)"/>\r
+ <!-- 10 lines in first column -->\r
+ <eval expected="10" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/block)"/>\r
+ <eval expected="10" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[1]/@bpd div 14400"/>\r
+ <!-- 0 lines in second column -->\r
+ <eval expected="0" xpath="count(//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/block)"/>\r
+ <eval expected="0" xpath="//pageViewport[@nr=2]/page/regionViewport/regionBody/mainReference/span/flow[2]/@bpd div 14400"/>\r
+ </checks>\r
+</testcase>\r
</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>
--- /dev/null
+<?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 multi-column documents. This test: footnotes in multi-column documents (no spans).\r
+ </p>\r
+ </info>\r
+ <fo>\r
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">\r
+ <fo:layout-master-set>\r
+ <fo:simple-page-master master-name="normal" page-width="360pt" page-height="2in">\r
+ <fo:region-body column-count="2" column-gap="20pt"/>\r
+ </fo:simple-page-master>\r
+ </fo:layout-master-set>\r
+ <fo:page-sequence master-reference="normal" white-space-collapse="true">\r
+ <fo:static-content flow-name="xsl-footnote-separator">\r
+ <fo:block border-top="solid 5pt red"/>\r
+ </fo:static-content>\r
+ <fo:flow flow-name="xsl-region-body">\r
+ <fo:block>line1</fo:block>\r
+ <fo:block>line2</fo:block>\r
+ <fo:block>line3</fo:block>\r
+ <fo:block>line4</fo:block>\r
+ <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>\r
+ <fo:block>line6</fo:block>\r
+ <fo:block>line7</fo:block>\r
+ <fo:block>line8</fo:block>\r
+ <fo:block>line9</fo:block>\r
+ <fo:block>line10</fo:block>\r
+ <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>\r
+ </fo:flow>\r
+ </fo:page-sequence>\r
+ </fo:root>\r
+ </fo>\r
+ <checks>\r
+ <eval expected="1" xpath="count(//pageViewport)"/>\r
+ \r
+ <eval expected="1" xpath="count(//regionBody/mainReference/span)"/>\r
+ <!-- room for 7 lines -->\r
+ <eval expected="7" xpath="//regionBody/mainReference/span/@bpd div 14400"/>\r
+ \r
+ <!-- 2 columns -->\r
+ <eval expected="2" xpath="count(//regionBody/mainReference/span/flow)"/>\r
+ <!-- 7 lines in first column -->\r
+ <eval expected="7" xpath="count(//regionBody/mainReference/span/flow[1]/block)"/>\r
+ <eval expected="7" xpath="//regionBody/mainReference/span/flow[1]/@bpd div 14400"/>\r
+ <!-- 4 lines in second column -->\r
+ <eval expected="4" xpath="count(//regionBody/mainReference/span/flow[2]/block)"/>\r
+ <eval expected="4" xpath="//regionBody/mainReference/span/flow[2]/@bpd div 14400"/>\r
+ </checks>\r
+</testcase>\r