<?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 block content in fo:inline. It stresses the nesting by letting the fo:inline have a background color.
    </p>
  </info>
  <fo>
    <fo:root
      xmlns:fo="http://www.w3.org/1999/XSL/Format"
      xmlns:svg="http://www.w3.org/2000/svg">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="simpleA4"
          page-height="29.7cm" page-width="21cm"
          margin-top="2cm" margin-bottom="2cm"
          margin-left="2cm" margin-right="2cm">
          <fo:region-body
            margin-top="1.2in" margin-bottom="1in"
            margin-left="1in" margin-right="1in"/>
        </fo:simple-page-master>
      </fo:layout-master-set>

      <fo:page-sequence master-reference="simpleA4">
        <fo:flow flow-name="xsl-region-body">
          <fo:block language="en" country="US"
            hyphenate="true" text-align="justify">
            The appropriate values of the parameters can be obtained from <fo:inline background-color="lightgray">the following equations:
            <fo:block>
              w1 + w2 + w3 = W,
            </fo:block>
            <fo:block>
              y1 + y2 + y3 = Y,
            </fo:block>where W and Y follow from the previous rule</fo:inline>. This completes our argument.
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <element-list category="breaker">
      <box w="14400"/>
      <box w="14400"/>
      <penalty w="0" p="0"/>
      <box w="14400"/>
      <penalty w="0" p="0"/>
      <box w="14400"/>
      <penalty w="0" p="0"/>
      <box w="14400"/>
      <box w="14400"/>
      <skip>3</skip>
    </element-list>
    
    <!-- the following check sequence verifies background traits caused by the inline element. -->
    <true xpath="not(boolean(//flow/block/@background))"/>
    <true xpath="not(boolean(//flow/block/lineArea[1]/child::*[1]/@background))"/>
    
    <true xpath="boolean(//flow/block/lineArea[2]/inlineparent[1])"/>
    <eval expected="color=#d3d3d3" xpath="//flow/block/lineArea[2]/child::*[1]/@background"/>

    <true xpath="boolean(//flow/block/lineArea[3]/inlineblockparent[1])"/>
    <eval expected="color=#d3d3d3" xpath="//flow/block/lineArea[3]/child::*[1]/@background"/>
    <true xpath="not(boolean(//flow/block/lineArea[3]/inlineblockparent[1]/block/@background))"/>

    <true xpath="boolean(//flow/block/lineArea[4]/inlineblockparent[1])"/>
    <eval expected="color=#d3d3d3" xpath="//flow/block/lineArea[4]/child::*[1]/@background"/>
    <true xpath="not(boolean(//flow/block/lineArea[4]/inlineblockparent[1]/block/@background))"/>

    <eval expected="inlineparent" xpath="local-name(//flow/block/lineArea[5]/child::*[1])"/>
    <eval expected="text" xpath="local-name(//flow/block/lineArea[5]/child::*[2])"/>
    <eval expected="color=#d3d3d3" xpath="//flow/block/lineArea[5]/child::*[1]/@background"/>

    <true xpath="not(boolean(//flow/block/lineArea[6]/child::*[1]/@background))"/>

    <!-- the following check sequence verifies size traits so the background is actually painted correctly. -->
    <eval expected="86400" xpath="//flow/block/@bpd"/>
    <eval expected="337891" xpath="//flow/block/@ipd"/>
    <eval expected="14400" xpath="//flow/block/lineArea[3]/inlineblockparent[1]/@bpd"/>
    <eval expected="337891" xpath="//flow/block/lineArea[3]/inlineblockparent[1]/@ipd"/>
    <eval expected="14400" xpath="//flow/block/lineArea[4]/inlineblockparent[1]/@bpd"/>
    <eval expected="337891" xpath="//flow/block/lineArea[4]/inlineblockparent[1]/@ipd"/>

  </checks>
</testcase>
