<?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 fox:external-document with multi-page images.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
        xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="dummy" page-width="5in" page-height="5in">
          <fo:region-body reference-orientation="90"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fox:external-document id="img2" src="../resources/images/multi-page.tiff"/>
    </fo:root>
  </fo>
  <checks>
    <eval expected="1" xpath="count(/areaTree/pageSequence)"/>
    <eval expected="5" xpath="count(//pageViewport)"/>
    
    <eval expected="1" xpath="//pageViewport[@nr = '1']/@formatted-nr"/>
    <eval expected="2" xpath="//pageViewport[@nr = '2']/@formatted-nr"/>
    <eval expected="3" xpath="//pageViewport[@nr = '3']/@formatted-nr"/>
    <eval expected="4" xpath="//pageViewport[@nr = '4']/@formatted-nr"/>
    <eval expected="5" xpath="//pageViewport[@nr = '5']/@formatted-nr"/>
    
    <eval expected="0 0 142000 142000" xpath="//pageViewport[@nr = '1']/@bounds"/>
    <eval expected="0 0 142000 142000" xpath="//pageViewport[@nr = '2']/@bounds"/>
    <eval expected="0 0 142000 142000" xpath="//pageViewport[@nr = '3']/@bounds"/>
    <eval expected="0 0 227000 227000" xpath="//pageViewport[@nr = '4']/@bounds"/>
    <eval expected="0 0 142000 142000" xpath="//pageViewport[@nr = '5']/@bounds"/>
    
  </checks>
</testcase>
