<?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 that tables with empty cells are handled correctly. There was a bug (#43766)
      which caused every break possibility of a row containing an empty cell to have a 900 penalty.
    </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="6cm" page-width="15cm"
          margin-top="5mm" margin-bottom="5mm" margin-left="2cm" margin-right="2cm">
          <fo:region-body margin-top="5mm" margin-bottom="5mm"/>
          <fo:region-before extent="5mm" display-align="after"/>
          <fo:region-after extent="5mm"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="page" font-family="serif" font-size="12pt">
        <fo:static-content flow-name="xsl-region-before">
          <fo:block border-bottom="0.5pt solid black"/>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-after">
          <fo:block border-top="0.5pt solid black"/>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
          <fo:block space-after="60pt">Before the table</fo:block>
          <fo:table width="100%" table-layout="fixed"
            border-collapse="separate" border="1pt solid black">
            <fo:table-column column-width="proportional-column-width(1)" number-columns-repeated="2"/>
            <fo:table-body>
              <fo:table-row>
                <fo:table-cell border="1pt solid black">
                  <fo:block>Cell 1.1</fo:block>
                  <fo:block>Cell 1.1</fo:block>
                  <fo:block>Cell 1.1</fo:block>
                </fo:table-cell>
                <fo:table-cell border="1pt solid blue">
                  <fo:block/>
                </fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 2.1</fo:block></fo:table-cell>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 2.2</fo:block></fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 3.1</fo:block></fo:table-cell>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 3.2</fo:block></fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 4.1</fo:block></fo:table-cell>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 4.2</fo:block></fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 5.1</fo:block></fo:table-cell>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 5.2</fo:block></fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 6.1</fo:block></fo:table-cell>
                <fo:table-cell border="1pt solid black"><fo:block>Cell 6.2</fo:block></fo:table-cell>
              </fo:table-row>
            </fo:table-body>
          </fo:table>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <!-- Two pages -->
    <eval expected="2" xpath="count(//pageViewport)"/>
    <element-list category="breaker">
      <skip>6</skip>
      <box w="15400"/>
      <penalty p="0" w="0"/>
      <box w="14400"/>
      <penalty p="0" w="0"/>
      <box w="15400"/>
      <penalty p="0" w="0"/>
      <box w="16400"/>
      <penalty p="0" w="0"/>
      <box w="16400"/>
      <penalty p="0" w="0"/>
      <box w="16400"/>
      <penalty p="0" w="0"/>
      <skip>10</skip>
    </element-list>
  </checks>
</testcase>
