<?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 that a change of IPD between two blocks is correctly handled.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="narrow"
          page-height="300pt" page-width="400pt" margin="50pt">
          <fo:region-body background-color="#F0F0F0"/>
        </fo:simple-page-master>
        <fo:simple-page-master master-name="wide"
          page-height="300pt" page-width="600pt" margin="50pt">
          <fo:region-body background-color="#F0F0F0"/>
        </fo:simple-page-master>
        <fo:page-sequence-master master-name="pages">
          <fo:single-page-master-reference master-reference="narrow"/>
          <fo:repeatable-page-master-reference master-reference="wide"/>
        </fo:page-sequence-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="pages">
        <fo:flow flow-name="xsl-region-body">
          <fo:block text-align="justify" id="surrounding"
            space-before.minimum="10pt"
            space-before.optimum="12pt"
            space-before.maximum="50pt">
            <fo:block space-before="inherit" id="b1">In olden times when wishing still helped one, 
              there lived a king whose daughters were all beautiful, but the youngest was so 
              beautiful that the sun itself, which has seen so much, was astonished whenever it 
              shone in her face.</fo:block>
            <fo:block space-before="inherit" id="b2">In olden times when wishing still helped one, 
              there lived a king whose daughters were all beautiful, but the youngest was so 
              beautiful that the sun itself, which has seen so much, was astonished whenever it 
              shone in her face.</fo:block>
            <fo:block space-before="inherit" id="b3">In olden times when wishing still helped one, 
              there lived a king whose daughters were all beautiful, but the youngest was so 
              beautiful that the sun itself, which has seen so much, was astonished whenever it 
              shone in her face.</fo:block>
            <fo:block border-top="1pt solid black" space-before.minimum="10pt" 
              space-before.optimum="12pt" space-before.maximum="50pt" 
              space-before.conditionality="retain" id="b4">In olden times when wishing still helped 
              one, there lived a king whose daughters were all beautiful, but the youngest was so 
              beautiful that the sun itself, which has seen so much, was astonished whenever it 
              shone in her face.</fo:block>
            <fo:block space-before="inherit" id="b5">In olden times when wishing still helped one, 
              there lived a king whose daughters were all beautiful, but the youngest was so 
              beautiful that the sun itself, which has seen so much, was astonished whenever it 
              shone in her face.</fo:block>
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <eval expected="face."  xpath="//pageViewport[1]//flow/block/block[3]/lineArea[4]/text/word[position()=last()]"/>
    <eval expected="12000"  xpath="//pageViewport[2]//flow/block/block[1]/@space-before"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[1]/@ipd"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[1]/lineArea[1]/@ipd"/>
    <eval expected="(solid,#000000,1000)"
                            xpath="//pageViewport[2]//flow/block/block[1]/@border-before"/>
    <eval expected="In"     xpath="//pageViewport[2]//flow/block/block[1]/lineArea[1]/text/word[1]"/>
    <eval expected="olden"  xpath="//pageViewport[2]//flow/block/block[1]/lineArea[1]/text/word[2]"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[2]/@ipd"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block[2]/lineArea[1]/@ipd"/>
  </checks>
</testcase>
