<?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">
      <fo:layout-master-set>
        <fo:simple-page-master margin-left="0mm" margin-right="10mm" margin-bottom="6mm" master-name="PageFront" page-width="210mm" page-height="297mm" margin-top="0mm">
          <fo:region-body margin-right="60mm" margin-left="25mm" margin-top="44mm" margin-bottom="15mm" region-name="letterPageBody"/>

        </fo:simple-page-master>
        <fo:simple-page-master master-name="PageRest" page-width="210mm" page-height="297mm" margin-bottom="6mm" margin-right="25mm" margin-top="0mm" margin-left="25mm">
          <fo:region-body margin-top="44mm" margin-bottom="15mm" margin-right="0mm" margin-left="0mm" region-name="letterPageBody"/>

        </fo:simple-page-master>
        <fo:simple-page-master master-name="PageFrontLogoRight" margin-right="10mm" margin-left="25mm" margin-bottom="6mm" page-width="210mm" page-height="297mm" margin-top="0mm">
          <fo:region-body margin-right="60mm" margin-top="44mm" margin-left="0" margin-bottom="15mm" region-name="letterPageBody"/>

        </fo:simple-page-master>
        <fo:simple-page-master master-name="PageFrontRestMediaType" margin-left="0mm" margin-right="10mm" margin-bottom="6mm" page-width="210mm" page-height="297mm" margin-top="0mm">
          <fo:region-body margin-right="60mm" margin-top="44mm" margin-left="25mm" margin-bottom="15mm" region-name="letterPageBody"/>

        </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:page-sequence-master master-name="LetterPagesMYLocal">
          <fo:repeatable-page-master-alternatives>
            <fo:conditional-page-master-reference master-reference="PageFrontRestMediaType" page-position="first"/>
            <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="letterPageBody">
          <fo:block>

            <fo:block page-break-after="always">
              <fo:leader/>
            </fo:block>

            <fo:block>
          test
        </fo:block>

          </fo:block>
        </fo:flow>
      </fo:page-sequence>
      <fo:page-sequence format="1" id="th_default_sequence4" master-reference="LetterPagesMYLocal" initial-page-number="auto" force-page-count="auto">

        <fo:flow flow-name="letterPageBody">

          <fo:block>

            <fo:block page-break-after="always">
              <fo:leader/>
            </fo:block>
            <fo:block page-break-after="always">
              <fo:leader/>
            </fo:block>
            <fo:table table-layout="fixed" width="100%">
              <fo:table-column column-width="proportional-column-width(100)" column-number="1"/>
              <fo:table-body>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                      <fo:table table-layout="fixed" width="100%">
                        <fo:table-column column-width="proportional-column-width(1)" column-number="1"/>
                        <fo:table-column column-width="proportional-column-width(28.49)" column-number="2"/>
                        <fo:table-column column-width="proportional-column-width(21.55)" column-number="3"/>
                        <fo:table-column column-width="proportional-column-width(47.96)" column-number="4"/>
                        <fo:table-column column-width="proportional-column-width(1)" column-number="5"/>
                        <fo:table-body>
                          <fo:table-row height="16px">
                            <fo:table-cell>
                              <fo:block>
                                <fo:block>
                                  <fo:leader/>
                                </fo:block>
                              </fo:block>
                            </fo:table-cell>
                            <fo:table-cell number-columns-spanned="3">
                              <fo:block>
                            test
                          </fo:block>
                            </fo:table-cell>
                            <fo:table-cell>
                              <fo:block>
                                <fo:block>
                                  <fo:leader/>
                                </fo:block>
                              </fo:block>
                            </fo:table-cell>
                          </fo:table-row>
                          <fo:table-row>
                            <fo:table-cell>
                              <fo:block>
                                <fo:block>
                                  <fo:leader/>
                                </fo:block>
                              </fo:block>
                            </fo:table-cell>

                          </fo:table-row>


                        </fo:table-body>
                      </fo:table>

                    </fo:block>
                  </fo:table-cell>
                </fo:table-row>
              </fo:table-body>
            </fo:table>
          </fo:block>

        </fo:flow>
      </fo:page-sequence>
    </fo:root>

  </fo>
  <checks>
    <eval expected="test" xpath="//word"/>
  </checks>
</testcase>
