<?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 for the use of a 'last' conditional-page-master-reference 
      for a first/only page (see: https://issues.apache.org/bugzilla/show_bug.cgi?id=40798)
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
           font-family="Times" font-size="20pt">
    
       <fo:layout-master-set>
         <fo:simple-page-master master-name="only-page-layout"
                             page-height="297mm" page-width="210mm"
                             margin-top="15mm" margin-bottom="15mm"
                             margin-left="15mm" margin-right="15mm">
           <fo:region-body region-name="frame-body" margin-top="10mm"/>
           <fo:region-before region-name="only-region" extent="10mm"/>
         </fo:simple-page-master>
         <fo:simple-page-master master-name="first-page-layout"
                             page-height="297mm" page-width="210mm"
                             margin-top="15mm" margin-bottom="15mm"
                             margin-left="15mm" margin-right="15mm">
           <fo:region-body region-name="frame-body" margin-top="10mm"/>
           <fo:region-before region-name="first-region" extent="10mm"/>
         </fo:simple-page-master>
         <fo:simple-page-master master-name="last-page-layout"
                             page-height="297mm" page-width="210mm"
                             margin-top="15mm" margin-bottom="15mm"
                             margin-left="15mm" margin-right="15mm">
           <fo:region-body region-name="frame-body" margin-top="10mm"/>
           <fo:region-before region-name="last-region" extent="10mm"/>
         </fo:simple-page-master>
         <fo:simple-page-master master-name="rest-page-layout"
                             page-height="297mm" page-width="210mm"
                             margin-top="15mm" margin-bottom="15mm"
                             margin-left="15mm" margin-right="15mm">
           <fo:region-body region-name="frame-body" margin-top="10mm"/>
           <fo:region-before region-name="rest-region" extent="10mm"/>
         </fo:simple-page-master>
    
       <fo:page-sequence-master master-name="whatever">
         <fo:repeatable-page-master-alternatives maximum-repeats="1">
           <fo:conditional-page-master-reference master-reference="only-page-layout"
                                              page-position="last"/>
           <fo:conditional-page-master-reference master-reference="first-page-layout"
                                              page-position="first"/>
         </fo:repeatable-page-master-alternatives>
         <fo:repeatable-page-master-alternatives maximum-repeats="no-limit">
           <fo:conditional-page-master-reference master-reference="last-page-layout"
                                              page-position="last"/>
           <fo:conditional-page-master-reference master-reference="rest-page-layout"
                                              page-position="rest"/>
         </fo:repeatable-page-master-alternatives>
       </fo:page-sequence-master>
    
       </fo:layout-master-set>
    
       <fo:page-sequence master-reference="whatever">
         <fo:static-content flow-name="first-region">
           <fo:block id="header.first.1" text-align="center">first</fo:block>
         </fo:static-content>
         <fo:static-content flow-name="only-region">
           <fo:block id="header.only.1" text-align="center">only</fo:block>
         </fo:static-content>
         <fo:flow flow-name="frame-body">
           <fo:block>This is the only page</fo:block>
         </fo:flow>
       </fo:page-sequence>
       <fo:page-sequence master-reference="whatever">
         <fo:static-content flow-name="only-region">
           <fo:block id="header.only.2" text-align="center">only</fo:block>
         </fo:static-content>
         <fo:static-content flow-name="first-region">
           <fo:block id="header.first.2" text-align="center">first</fo:block>
         </fo:static-content>
         <fo:static-content flow-name="last-region">
           <fo:block id="header.last.2" text-align="center">last</fo:block>
         </fo:static-content>
         <fo:static-content flow-name="rest-region">
           <fo:block id="header.rest.2" text-align="center">rest</fo:block>
         </fo:static-content>
         <fo:flow flow-name="frame-body">
           <fo:block>This is the first page</fo:block>
           <fo:block break-before="page">This is a middle page</fo:block>
           <fo:block break-before="page">This is a middle page</fo:block>
           <fo:block break-before="page">This is the last page</fo:block>
         </fo:flow>
       </fo:page-sequence>
      
    </fo:root>
  </fo>
  <checks>
    <eval expected="header.only.1" xpath="(/areaTree/pageSequence[1]//regionBefore)[1]/block[1]/@prod-id" />
    <eval expected="header.first.2" xpath="(/areaTree/pageSequence[2]//regionBefore)[1]/block[1]/@prod-id" />
    <eval expected="header.rest.2" xpath="(/areaTree/pageSequence[2]//regionBefore)[2]/block[1]/@prod-id" />
    <eval expected="header.rest.2" xpath="(/areaTree/pageSequence[2]//regionBefore)[3]/block[1]/@prod-id" />
    <eval expected="header.last.2" xpath="(/areaTree/pageSequence[2]//regionBefore)[4]/block[1]/@prod-id" />
  </checks>
</testcase>
