<?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 table:
            <fo:block>
          <fo:table table-layout="fixed" border-collapse="separate" margin="0pt" border="solid 5pt" padding="5pt" width="4in + 10pt + 10pt" background-color="gray">
            <fo:table-column column-width="2in"/>
            <fo:table-column column-width="2in"/>
            <fo:table-body start-indent="0pt" end-indent="0pt">
              <fo:table-row>
                <fo:table-cell>
                  <fo:block>w1 + w2 + w3</fo:block>
                </fo:table-cell>
                <fo:table-cell background-color="yellow">
                  <fo:block>W</fo:block>
                </fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell background-color="orange">
                  <fo:block>y1 + y2 + y3</fo:block>
                </fo:table-cell>
                <fo:table-cell>
                  <fo:block>Y</fo:block>
                </fo:table-cell>
              </fo:table-row>
            </fo:table-body>
          </fo:table>
            </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="10000" aux="true"/>
      <box w="14400"/>
      <penalty w="20000" p="0"/>
      <box w="14400"/>
      <box w="10000" aux="true"/>
      <penalty w="0" p="0"/>
      <box w="14400"/>
      <box w="14400"/>
      <skip>3</skip>
    </element-list>
  </checks>
</testcase>
