<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
  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$ -->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:test="http://xmlgraphics.apache.org/fop/test">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="normal" page-width="5in" page-height="2in" 
          margin="20pt">
      <fo:region-body background-color="yellow"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="normal">
    <fo:flow flow-name="xsl-region-body">
      <!-- table with explicit columns -->
      <fo:table table-layout="fixed" border-collapse="separate">
        <fo:table-column column-width="proportional-column-width(1)">
          <test:assert property="column-number" expected="1" />
        </fo:table-column>
        <fo:table-column column-width="proportional-column-width(2)">
          <test:assert property="column-number" expected="2" />
        </fo:table-column>
        <fo:table-column column-width="proportional-column-width(1)">
          <test:assert property="column-number" expected="3" />
        </fo:table-column>
        <fo:table-header>
          <fo:table-row>
            <fo:table-cell number-columns-spanned="3">
              <test:assert property="column-number" expected="1" />
              <fo:block>header cell</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-row>
            <fo:table-cell>
              <test:assert property="column-number" expected="1" />
              <fo:block>footer cell 1</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="2" />
              <fo:block>footer cell 2</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>footer cell 3</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-row>
            <fo:table-cell number-columns-spanned="2">
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell number-rows-spanned="2">
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="2" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell number-rows-spanned="2">
              <test:assert property="column-number" expected="2" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell>
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-body>
      </fo:table>
      <!-- table with implicit columns -->
      <fo:table table-layout="fixed" border-collapse="separate">
        <fo:table-header>
          <fo:table-row>
            <fo:table-cell number-columns-spanned="3">
              <test:assert property="column-number" expected="1" />
              <fo:block>header cell</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-row>
            <fo:table-cell>
              <test:assert property="column-number" expected="1" />
              <fo:block>footer cell 1</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="2" />
              <fo:block>footer cell 2</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>footer cell 3</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-row>
            <fo:table-cell number-columns-spanned="2">
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell number-rows-spanned="2">
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="2" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell number-rows-spanned="2">
              <test:assert property="column-number" expected="2" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row>
            <fo:table-cell>
              <test:assert property="column-number" expected="1" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
            <fo:table-cell>
              <test:assert property="column-number" expected="3" />
              <fo:block>cell-content</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-body>
      </fo:table>
      <fo:block column-number="4">
        <test:assert property="column-number" expected="4" />
        Test column-number when specified on fo:block
      </fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>
