<?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 keep-with-previous works on tables.
    </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="1cm" margin-bottom="0" margin-left="1cm" margin-right="1cm">
          <fo:region-body/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="page" font-family="serif" font-size="14pt">
        <fo:flow flow-name="xsl-region-body">
          <fo:block space-after="100pt">First line</fo:block>
          <fo:block>Before the table</fo:block>
          <fo:table width="100%" table-layout="fixed" border-collapse="separate" border="4pt solid black"
            keep-with-previous="always">
            <fo:table-column number-columns-repeated="2" column-width="proportional-column-width(1)"/>
            <fo:table-body>
              <fo:table-row>
                <fo:table-cell border="2pt solid blue">
                  <fo:block>Cell 1.1 Line 1</fo:block>
                  <fo:block>Cell 1.1 Line 2</fo:block>
                </fo:table-cell>
                <fo:table-cell border="2pt solid teal">
                  <fo:block>Cell 1.2 Line 1</fo:block>
                  <fo:block>Cell 1.2 Line 2</fo:block>
                </fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell border="2pt solid green">
                  <fo:block>Cell 2.1 Line 1</fo:block>
                  <fo:block>Cell 2.1 Line 2</fo:block>
                </fo:table-cell>
                <fo:table-cell border="2pt solid olive">
                  <fo:block>Cell 2.1 Line 1</fo:block>
                  <fo:block>Cell 2.1 Line 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)"/>
    <!-- Only one line on the first page -->
    <eval expected="1" xpath="count(//pageViewport[@nr=1]//flow/block)"/>
    <eval expected="First line" xpath="//pageViewport[@nr=1]//flow/block[1]/lineArea/text[1]"/>
    <!-- Line "Before the table" plus the table itself on the second page -->
    <eval expected="2" xpath="count(//pageViewport[@nr=2]//flow/block)"/>
    <eval expected="Before the table" xpath="//pageViewport[@nr=2]//flow/block[1]/lineArea/text[1]"/>
    <!-- table -->
    <eval expected="75200"                xpath="//pageViewport[@nr=2]//flow/block[2]/@bpd"/>
    <eval expected="83200"                xpath="//pageViewport[@nr=2]//flow/block[2]/@bpda"/>
    <eval expected="(solid,#000000,4000)" xpath="//pageViewport[@nr=2]//flow/block[2]/@border-before"/>
    <eval expected="(solid,#000000,4000)" xpath="//pageViewport[@nr=2]//flow/block[2]/@border-after"/>
    <!-- cell 1.1 -->
    <eval expected="33600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[1]/@bpd"/>
    <eval expected="37600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[1]/@bpda"/>
    <eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[1]/@border-before"/>
    <eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[1]/@border-after"/>
    <!-- cell 1.2 -->
    <eval expected="33600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[2]/@bpd"/>
    <eval expected="37600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[2]/@bpda"/>
    <eval expected="(solid,#008080,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[2]/@border-before"/>
    <eval expected="(solid,#008080,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[2]/@border-after"/>
    <!-- cell 2.1 -->
    <eval expected="33600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[3]/@bpd"/>
    <eval expected="37600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[3]/@bpda"/>
    <eval expected="(solid,#008000,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[3]/@border-before"/>
    <eval expected="(solid,#008000,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[3]/@border-after"/>
    <!-- cell 2.2 -->
    <eval expected="33600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[4]/@bpd"/>
    <eval expected="37600"                xpath="//pageViewport[@nr=2]//flow/block[2]/block[4]/@bpda"/>
    <eval expected="(solid,#808000,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[4]/@border-before"/>
    <eval expected="(solid,#808000,2000)" xpath="//pageViewport[@nr=2]//flow/block[2]/block[4]/@border-after"/>
  </checks>
</testcase>
