<?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 surrounded by a block-container is 
      correctly handled.
    </p>
    <!-- NOTE: This test case is a copy of flow_changing-ipd_3.xml, with the surrounding block 
    replaced with a block-container. -->
  </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-container 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-container>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <eval expected="face."  xpath="//pageViewport[1]//flow/block/block/block[3]/lineArea[4]/text/word[position()=last()]"/>
    <eval expected="12000"  xpath="//pageViewport[2]//flow/block/block/block[1]/@space-before"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block/block[1]/@ipd"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block/block[1]/lineArea[1]/@ipd"/>
    <eval expected="(solid,#000000,1000)"                       
                            xpath="//pageViewport[2]//flow/block/block/block[1]/@border-before"/>
    <eval expected="In"     xpath="//pageViewport[2]//flow/block/block/block[1]/lineArea[1]/text/word[1]"/>
    <eval expected="olden"  xpath="//pageViewport[2]//flow/block/block/block[1]/lineArea[1]/text/word[2]"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block/block[2]/@ipd"/>
    <eval expected="500000" xpath="//pageViewport[2]//flow/block/block/block[2]/lineArea[1]/@ipd"/>
  </checks>
</testcase>
