<?xml version="1.0" standalone="no"?>
<!--
  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.
-->
<testcase>
  <info>
    <p>
      This test checks that IDs coming from a block properly appear in the IF output.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="page"
          page-height="320pt" page-width="420pt" margin="10pt">
          <fo:region-body/>
        </fo:simple-page-master>
      </fo:layout-master-set>

      <fo:page-sequence master-reference="page">
        <fo:flow flow-name="xsl-region-body" text-align="justify">
          <fo:block>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rutrum leo a diam 
            bibendum auctor. Vivamus porttitor sollicitudin tortor eu vulputate.</fo:block>
          <fo:block id="block" space-before="10pt" color="purple" font-family="serif">In vel libero 
            libero, a semper est. Vivamus dapibus ante id lorem mattis eget mattis urna sodales. 
            Vestibulum nec dui urna, in porta mi.</fo:block>
          <fo:block space-before="10pt">Proin varius egestas erat. Proin ante eros, consequat eget 
            semper a, molestie non arcu. Praesent hendrerit dolor vel leo luctus dapibus.</fo:block>
        </fo:flow>
      </fo:page-sequence>

    </fo:root>
  </fo>
  <if-checks xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">

    <eval expected="8"         xpath="count(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'])"/>

    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][1])"/>
    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][2])"/>
    <eval expected="id"   xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][3])"/>
    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][4])"/>
    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][5])"/>
    <eval expected="id"   xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][6])"/>
    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][7])"/>
    <eval expected="text" xpath="local-name(//if:page-sequence/descendant::*[local-name() = 'text' or local-name() = 'id'][8])"/>

    <eval expected="block" xpath="//if:page-sequence/descendant::*[local-name() = 'id'][1]/@name"/>
    <eval expected=""      xpath="//if:page-sequence/descendant::*[local-name() = 'id'][2]/@name"/>
  </if-checks>
</testcase>
