<?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 the definition of a special page-master for the last page with a
      different width that the previous "rest" page causes FOP to redo the line breaking layout.
    </p>
  </info>
  <fo>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">
  <fo:layout-master-set>
    <fo:simple-page-master margin-bottom="8mm" master-name="PageFront" page-width="210mm" page-height="297mm" margin-right="20mm" margin-top="15mm" margin-left="20mm">
      <fo:region-body margin-right="58mm" margin-top="35mm" margin-bottom="20mm" margin-left="0mm" region-name="PageBody"/>
    </fo:simple-page-master>
    <fo:simple-page-master margin-bottom="8mm" master-name="PageRest" page-width="210mm" page-height="297mm" margin-right="20mm" margin-top="15mm" margin-left="20mm">
      <fo:region-body margin-bottom="0mm" margin-top="0mm" margin-right="0mm" margin-left="0mm" region-name="PageBody"/>
    </fo:simple-page-master>
    <fo:page-sequence-master master-name="LetterPages">
      <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference page-position="first" master-reference="PageFront"/>
        <fo:conditional-page-master-reference page-position="rest" master-reference="PageRest"/>
        <fo:conditional-page-master-reference page-position="last" master-reference="PageRest"/>
      </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
  </fo:layout-master-set>
  <fo:page-sequence format="1" id="th_default_sequence1" initial-page-number="auto" force-page-count="auto" master-reference="LetterPages">
    <fo:flow flow-name="PageBody">
      <fo:block-container height="210mm">
        <fo:block>test</fo:block>
      </fo:block-container>
      <fo:block font-size="9pt" line-height="11pt">
        <fo:inline>Step 2 – Finance<fo:block/>
        </fo:inline>
        If there is any Hire Purchase (HP) / Finance agreement associated with this vehicle, please contact the finance company to provide your authorisation for Bank Box to liaise with them in order to obtain the early settlement figure.</fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>
</fo>
  <checks>
    <eval expected="test" xpath="//pageViewport[1]//lineArea[1]//text[1]/word[1]"/>
    <eval expected="Step" xpath="//pageViewport[2]//lineArea[1]//text[1]/word[1]"/>
    <eval expected="2" xpath="count(//pageViewport)"/>
  </checks>
</testcase>
