123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- 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.
- -->
- <!-- $Id$ -->
- <testcase>
- <info>
- <p>
- This test checks if the element list is generated correctly if space-before.optimum is used
- instead of space-before directly in the case where a nested block needs to shrink.
- This tests bug #38102.
- </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="5in" page-height="1.5in">
- <fo:region-body/>
- </fo:simple-page-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="normal" id="block">
- <fo:flow flow-name="xsl-region-body">
- <fo:block>
- <fo:block>line1</fo:block>
- <fo:block space-before="16pt">line2</fo:block>
- <fo:block space-before.optimum="16pt">line3</fo:block>
- <fo:block>line4</fo:block>
- <fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
- </fo:block>
- </fo:flow>
- </fo:page-sequence>
- <fo:page-sequence master-reference="normal" id="b-c-1">
- <fo:flow flow-name="xsl-region-body">
- <fo:block-container>
- <fo:block>line1</fo:block>
- <fo:block space-before="16pt">line2</fo:block>
- <fo:block space-before.optimum="16pt">line3</fo:block>
- <fo:block>line4</fo:block>
- <fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
- </fo:block-container>
- </fo:flow>
- </fo:page-sequence>
- <fo:page-sequence master-reference="normal" id="b-c-2">
- <fo:flow flow-name="xsl-region-body">
- <fo:block-container height="1.5in">
- <fo:block>line1</fo:block>
- <fo:block space-before="16pt">line2</fo:block>
- <fo:block space-before.optimum="16pt">line3</fo:block>
- <fo:block>line4</fo:block>
- <fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
- </fo:block-container>
- </fo:flow>
- </fo:page-sequence>
- <!-- Spaces inside tables don't get adjusted. The element list combination process is not that advanced, yet.
- <fo:page-sequence master-reference="normal" id="table">
- <fo:flow flow-name="xsl-region-body">
- <fo:table table-layout="fixed" width="100%">
- <fo:table-column column-width="100%"/>
- <fo:table-body>
- <fo:table-row>
- <fo:table-cell>
- <fo:block>line1</fo:block>
- <fo:block space-before="16pt">line2</fo:block>
- <fo:block space-before.optimum="16pt">line3</fo:block>
- <fo:block>line4</fo:block>
- <fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
- </fo:table-cell>
- </fo:table-row>
- </fo:table-body>
- </fo:table>
- </fo:flow>
- </fo:page-sequence-->
- <!-- The same applies to lists, too.
- <fo:page-sequence master-reference="normal" id="list">
- <fo:flow flow-name="xsl-region-body">
- <fo:list-block>
- <fo:list-item>
- <fo:list-item-label>
- <fo:block/>
- </fo:list-item-label>
- <fo:list-item-body>
- <fo:block>line1</fo:block>
- <fo:block space-before="16pt">line2</fo:block>
- <fo:block space-before.optimum="16pt">line3</fo:block>
- <fo:block>line4</fo:block>
- <fo:block>line5</fo:block>
- <fo:block>line6</fo:block>
- </fo:list-item-body>
- </fo:list-item>
- </fo:list-block>
- </fo:flow>
- </fo:page-sequence-->
- </fo:root>
- </fo>
- <checks>
- <element-list category="breaker" id="block">
- <box w="14400"/>
-
- <penalty w="0" p="0"/>
-
- <glue w="16000" y="0" z="0"/>
- <box w="14400"/>
-
- <penalty w="0" p="0"/>
-
- <glue w="16000" y="0" z="16000"/>
- <box w="14400"/>
-
- <penalty w="0" p="0"/>
- <box w="14400"/>
- <penalty w="0" p="0"/>
- <box w="14400"/>
- <penalty w="0" p="0"/>
- <box w="14400"/>
-
- <skip>3</skip>
- </element-list>
-
- <!-- page-sequence 1 with fo:block -->
- <eval expected="1" xpath="count(//pageSequence[1]//pageViewport)"/>
- <eval expected="16000" xpath="//pageSequence[1]//flow/block[1]/block[2]/@space-before"/>
- <!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
- <eval expected="5600" xpath="//pageSequence[1]//flow/block[1]/block[3]/@space-before"/>
- <true xpath="//pageSequence[1]//flow/@bpd = //pageSequence[1]//regionBody/@bpd"/>
-
- <!-- page-sequence 2 with fo:block-container (auto-height)-->
- <eval expected="1" xpath="count(//pageSequence[2]//pageViewport)"/>
- <eval expected="16000" xpath="//pageSequence[2]//flow/block[1]/block[1]/block[2]/@space-before"/>
- <!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
- <eval expected="5600" xpath="//pageSequence[2]//flow/block[1]/block[1]/block[3]/@space-before"/>
- <true xpath="//pageSequence[2]//flow/@bpd = //pageSequence[2]//regionBody/@bpd"/>
-
- <!-- page-sequence 3 with fo:block-container (fixed height)-->
- <eval expected="1" xpath="count(//pageSequence[3]//pageViewport)"/>
- <eval expected="16000" xpath="//pageSequence[3]//flow/block[1]/block[1]/block[2]/@space-before"/>
- <!-- The breaker needs to shrink the optimal 1600mpt to 5600mpt to fit everything into the one page -->
- <eval expected="5600" xpath="//pageSequence[3]//flow/block[1]/block[1]/block[3]/@space-before"/>
- <true xpath="//pageSequence[3]//flow/@bpd = //pageSequence[3]//regionBody/@bpd"/>
- </checks>
- </testcase>
|