<?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 floats.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="simple" page-height="5in" page-width="5in" margin="0.2in">
          <fo:region-body />
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="simple">
        <fo:flow flow-name="xsl-region-body">
          <fo:block font-size="12pt" space-before="3pt" text-indent="0.75cm" text-align="justify">
            Footnote in normal block before a float.<fo:footnote>
              <fo:inline font-size="60%" baseline-shift="super">1)</fo:inline>
              <fo:footnote-body>
                <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                  <fo:inline font-size="60%" baseline-shift="super">1)</fo:inline> The footnote from the normal block before the float.</fo:block>
              </fo:footnote-body>
            </fo:footnote>.
          </fo:block>
          <fo:list-block provisional-distance-between-starts="30pt" provisional-label-separation="10pt">
            <fo:list-item>
              <fo:list-item-label end-indent="label-end()">
                <fo:block>(a)</fo:block>
              </fo:list-item-label>
              <fo:list-item-body start-indent="body-start()">
                <fo:block>
                  Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. (see box)
        <fo:float float="end">
          <fo:block border="1pt solid red" padding="5pt" end-indent="0pt" start-indent="0pt">
            <fo:block-container inline-progression-dimension="120pt">
              <fo:block background-color="yellow">
The former dean's house at the University of Wisconsin (this is the alt text of the image in the Wikipedia page)
              </fo:block>
            </fo:block-container>
          </fo:block>
        </fo:float>
                  Test for float and footnote inside a list. Test for float and footnote inside a list.
                </fo:block>
              </fo:list-item-body>
            </fo:list-item>
            <fo:list-item>
              <fo:list-item-label end-indent="label-end()">
                <fo:block>(b)</fo:block>
              </fo:list-item-label>
              <fo:list-item-body start-indent="body-start()">
                <fo:block>
                  Footnote in list that is being wrapped around a float.<fo:footnote>
                  <fo:inline font-size="60%" baseline-shift="super">2)</fo:inline>
                    <fo:footnote-body>
                      <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                        <fo:inline font-size="60%" baseline-shift="super">2)</fo:inline> The footnote from the list that is being wrapped around a float.</fo:block>
                    </fo:footnote-body>
                  </fo:footnote>.
                  Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list.
                </fo:block>
              </fo:list-item-body>
            </fo:list-item>
          </fo:list-block>
          <fo:block font-size="12pt" space-before="3pt" text-indent="0.75cm" text-align="justify">
            Footnote in normal block after the float.<fo:footnote>
              <fo:inline font-size="60%" baseline-shift="super">3)</fo:inline>
              <fo:footnote-body>
                <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                  <fo:inline font-size="60%" baseline-shift="super">3)</fo:inline> The footnote from the normal block after the float.</fo:block>
              </fo:footnote-body>
            </fo:footnote>.
          </fo:block>
          <fo:block>
Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <!-- footnotes -->
    <eval expected="265113" xpath="//pageViewport[1]/page/regionViewport[1]//footnote[1]/@top-offset" />
    <eval expected="1) The footnote from the normal block before the float." xpath="//pageViewport[1]/page/regionViewport[1]//footnote[1]/block[1]/lineArea[1]" />
    <eval expected="2) The footnote from the list that is being wrapped around a" xpath="//pageViewport[1]/page/regionViewport[1]//footnote[1]/block[2]/lineArea[1]" />
    <eval expected="3) The footnote from the normal block after the float." xpath="//pageViewport[1]/page/regionViewport[1]//footnote[1]/block[3]/lineArea[1]" />
   <!-- last line in second page -->
    <eval expected="text. Some filler text. Some filler text. Some filler text." xpath="//pageViewport[2]/page/regionViewport[1]//flow[1]/block[1]/lineArea[11]" />
  </checks>
</testcase>
