spepping    2005/02/20 11:52:18

  Modified:    test/layoutengine disabled-testcases.txt
  Added:       test/layoutengine/testcases markers5c.xml markers5d.xml
                        markers6a.xml markers6b.xml
  Log:
  Test case markers5a now works correctly. Added four testcases.
  
  Revision  Changes    Path
  1.1                  xml-fop/test/layoutengine/testcases/markers5c.xml
  
  Index: markers5c.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
    Copyright 2005 The Apache Software Foundation
  
    Licensed 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: markers5c.xml,v 1.1 2005/02/20 19:52:18 spepping Exp $ -->
  <testcase>
    <info>
      <p>
        This test checks markers, especially the behaviour of block being 
broken over pages.
      </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="normal" page-width="5in" 
page-height="1.8in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in"/>
            <fo:region-after extent="0.5in"/>
          </fo:simple-page-master>
        </fo:layout-master-set>
        <fo:page-sequence master-reference="normal" white-space-collapse="true">
          <fo:static-content flow-name="xsl-region-before">
            <fo:block>
              page <fo:page-number/>
            </fo:block>
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="previous-total" 
retrieve-boundary="page-sequence" 
retrieve-position="first-including-carryover"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="xsl-region-after">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="total" 
retrieve-boundary="page-sequence" retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:flow flow-name="xsl-region-body">
            <fo:block id="id1">
              <fo:marker marker-class-name="previous-total">0.00</fo:marker>
              <fo:marker marker-class-name="total">1.00</fo:marker>
              1: 1.00
            </fo:block>
            <fo:block id="id2">
              <fo:marker marker-class-name="previous-total">1.00</fo:marker>
              <fo:marker marker-class-name="total">2.00</fo:marker>
              2: 1.00
            </fo:block>
            <fo:block id="id3">
              <fo:marker marker-class-name="previous-total">2.00</fo:marker>
              <fo:marker marker-class-name="total">3.00</fo:marker>
              3: 1.00
            </fo:block>
            <fo:block id="id4">
              <fo:marker marker-class-name="previous-total">3.00</fo:marker>
              <fo:marker marker-class-name="total">4.00</fo:marker>
              4: This is a special case. It must take two lines. It must take 
two lines. 1.00
            </fo:block>
            <fo:block id="id5">
              <fo:marker marker-class-name="previous-total">4.00</fo:marker>
              <fo:marker marker-class-name="total">5.00</fo:marker>
              5: 1.00
            </fo:block>
            <fo:block id="id6">
              <fo:marker marker-class-name="previous-total">5.00</fo:marker>
              <fo:marker marker-class-name="total">6.00</fo:marker>
              6: 1.00
            </fo:block>
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </fo>
    <checks>
      <!-- page 1 -->
      <eval expected="0.00" 
xpath="//pageViewport[1]/page/regionViewport[1]/regionBefore/block[2]/lineArea"/>
      <eval expected="3.00" 
xpath="//pageViewport[1]/page/regionViewport[2]/regionAfter/block[1]/lineArea"/>
      <eval expected="1: 1.00" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/lineArea"/>
      <eval expected="2: 1.00" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[2]/lineArea"/>
      <eval expected="3: 1.00" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[3]/lineArea"/>
  
      <!-- page 2 -->
      <eval expected="3.00" 
xpath="//pageViewport[2]/page/regionViewport[1]/regionBefore/block[2]/lineArea"/>
      <eval expected="6.00" 
xpath="//pageViewport[2]/page/regionViewport[2]/regionAfter/block[1]/lineArea"/>
      <eval expected="5: 1.00" 
xpath="//pageViewport[2]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[2]/lineArea"/>
      <eval expected="6: 1.00" 
xpath="//pageViewport[2]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[3]/lineArea"/>
    </checks>
  </testcase>
  
  
  
  1.1                  xml-fop/test/layoutengine/testcases/markers5d.xml
  
  Index: markers5d.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
    Copyright 2005 The Apache Software Foundation
  
    Licensed 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: markers5d.xml,v 1.1 2005/02/20 19:52:18 spepping Exp $ -->
  <testcase>
    <info>
      <p>
        This test checks markers, especially the behaviour of block being 
broken over pages. This is almost the same 
        as markers5a except that tables are used instead of plain blocks.
      </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="normal" page-width="5in" 
page-height="1.8in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in"/>
            <fo:region-after extent="0.5in"/>
          </fo:simple-page-master>
        </fo:layout-master-set>
        <fo:page-sequence master-reference="normal" white-space-collapse="true">
          <fo:static-content flow-name="xsl-region-before">
            <fo:block>
              page <fo:page-number/>
            </fo:block>
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="previous-total" 
retrieve-boundary="page-sequence" 
retrieve-position="first-starting-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="xsl-region-after">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="total" 
retrieve-boundary="page-sequence" retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:flow flow-name="xsl-region-body">
            <fo:table table-layout="fixed">
              <fo:table-column column-width="2in"/>
              <fo:table-column column-width="2in"/>
              <fo:table-body>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">0.00</fo:marker>
                  <fo:marker marker-class-name="total">1.00</fo:marker>
                    1</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">1.00</fo:marker>
                  <fo:marker marker-class-name="total">2.00</fo:marker>
                    2</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">2.00</fo:marker>
                  <fo:marker marker-class-name="total">3.00</fo:marker>
                    3</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">3.00</fo:marker>
                  <fo:marker marker-class-name="total">4.00</fo:marker>
                    4</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">4.00</fo:marker>
                  <fo:marker marker-class-name="total">5.00</fo:marker>
                    5</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
                <fo:table-row>
                  <fo:table-cell>
                    <fo:block>
                  <fo:marker marker-class-name="previous-total">5.00</fo:marker>
                  <fo:marker marker-class-name="total">6.00</fo:marker>
                    6</fo:block>
                  </fo:table-cell>
                  <fo:table-cell>
                    <fo:block>1.00</fo:block>
                  </fo:table-cell>
                </fo:table-row>
              </fo:table-body>
            </fo:table>
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </fo>
    <checks>
      <!-- page 1 -->
      <eval expected="0.00" 
xpath="//pageViewport[1]/page/regionViewport[1]/regionBefore/block[2]/lineArea"/>
      <eval expected="4.00" 
xpath="//pageViewport[1]/page/regionViewport[2]/regionAfter/block[1]/lineArea"/>
      <eval expected="1" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/lineArea"/>
      <eval expected="2" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[3]/block[1]/lineArea"/>
      <eval expected="3" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[5]/block[1]/lineArea"/>
      <eval expected="4" 
xpath="//pageViewport[1]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[7]/block[1]/lineArea"/>
  
      <!-- page 2 -->
      <eval expected="4.00" 
xpath="//pageViewport[2]/page/regionViewport[1]/regionBefore/block[2]/lineArea"/>
      <eval expected="6.00" 
xpath="//pageViewport[2]/page/regionViewport[2]/regionAfter/block[1]/lineArea"/>
      <eval expected="5" 
xpath="//pageViewport[2]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[1]/block[1]/lineArea"/>
      <eval expected="6" 
xpath="//pageViewport[2]/page/regionViewport[3]/regionBody/mainReference/span/flow/block[1]/block[3]/block[1]/lineArea"/>
    </checks>
  </testcase>
  
  
  
  1.1                  xml-fop/test/layoutengine/testcases/markers6a.xml
  
  Index: markers6a.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
    Copyright 2005 The Apache Software Foundation
  
    Licensed 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: markers6a.xml,v 1.1 2005/02/20 19:52:18 spepping Exp $ -->
  <testcase>
    <info>
      <p>
        This test checks markers, especially the retrieval of markers
  belonging to a preceding page.
      </p>
    </info>
    <fo>
      <fo:root 
        xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
        xmlns:fox="http://xml.apache.org/fop/extensions";
        xmlns:svg="http://www.w3.org/2000/svg";>
        <fo:layout-master-set>
          <fo:simple-page-master master-name="odd"
            page-width="5in" page-height="5in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in" region-name="before-odd"/>
            <fo:region-after extent="0.5in" region-name="after-odd"/>
          </fo:simple-page-master>
          <fo:simple-page-master master-name="even"
            page-width="5in" page-height="5in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in" region-name="before-even"/>
            <fo:region-after extent="0.5in" region-name="after-even"/>
          </fo:simple-page-master>
          <fo:page-sequence-master master-name="odd-even">
            <fo:repeatable-page-master-alternatives>
              <fo:conditional-page-master-reference
                master-reference="odd"
                page-position="any"
                odd-or-even="odd" />
              <fo:conditional-page-master-reference
                master-reference="even"
                page-position="any"
                odd-or-even="even" />
            </fo:repeatable-page-master-alternatives>
          </fo:page-sequence-master>
        </fo:layout-master-set>
      
        <fo:page-sequence master-reference="odd-even">
          <fo:static-content flow-name="before-odd">
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="first-starting-within-page"/>
              <fo:leader leader-length.minimum="12pt"
                leader-length.optimum="80pt"
                leader-length.maximum="100%" leader-pattern="space">
              </fo:leader>page <fo:page-number/></fo:block>
          </fo:static-content>
          <fo:static-content flow-name="before-even">
            <fo:block>
             <fo:retrieve-marker retrieve-class-name="section"
                retrieve-boundary="page-sequence"
                retrieve-position="first-starting-within-page"/>
              <fo:leader leader-length.minimum="12pt"
                leader-length.optimum="80pt"
                leader-length.maximum="100%" leader-pattern="space">
              </fo:leader>page <fo:page-number/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="after-odd">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="after-even">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="section"
                retrieve-boundary="page-sequence"
                retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
      
          <fo:flow flow-name="xsl-region-body">
            <fo:block space-before="6pt" space-after="6pt"
              font-weight="bold" id="ch5" background-color="#EE1">
              <fo:marker marker-class-name="chapter">5 Property Refinement / 
Resolution</fo:marker>
              <fo:marker marker-class-name="section">5 Property Refinement / 
Resolution</fo:marker>5 Property Refinement / Resolution
            </fo:block>
            <fo:block>
              During refinement the set of properties that apply to a
  formatting object is transformed into a set of traits that define
  constraints on the result of formatting. For many traits there is a
  one-to-one correspondence with a property; for other traits the
  transformation is more complex. Details on the transformation are
  described below.
            </fo:block>
            <fo:block space-before="6pt" space-after="6pt"
              font-weight="bold" id="sect5-1" background-color="#DD1">
              <fo:marker marker-class-name="section">5.1 Specified, Computed, 
and Actual Values, and Inheritance</fo:marker>5.1 Specified,
  Computed, and Actual Values, and Inheritance 
            </fo:block>
            <fo:block>
              For every property that is applicable to a given
  formatting object, it is necessary to determine the value of the
  property. Three variants of the property value are distinguished: the
  specified value, the computed value, and the actual value.
            </fo:block>
            <fo:block space-before="6pt" space-after="6pt"
              font-weight="bold" id="sect5-2" background-color="#DD1">
              <fo:marker marker-class-name="section">5.2 Specified 
Values</fo:marker>5.2 Specified Values
            </fo:block>
            <fo:block>
              The specified value of a property is determined using the
  following mechanisms (in order of precedence)
            </fo:block>
            <fo:block>
              If the tree-construction process placed the property on
  the formatting object, use the value of that property as the specified
  value. This is called "explicit specification".
            </fo:block>
            <fo:block>
              Otherwise, if the property is inheritable, use the value
  of that property from the parent formatting object, generally the
  computed value (see below).
            </fo:block>
            <fo:block space-before="6pt" space-after="6pt"
              font-weight="bold" id="ch6" background-color="#EE6">
              <fo:marker marker-class-name="chapter">6 Shorthand 
Expansion</fo:marker>
              <fo:marker marker-class-name="section">6 Shorthand 
Expansion</fo:marker>6 Shorthand Expansion
            </fo:block>
            <fo:block>
              In XSL there are two kinds of shorthand properties; those
  originating from CSS, such as "border", and those that arise from
  breaking apart and/or combining CSS properties, such as
  "page-break-inside". In XSL both types of shorthands are handled in
  the same way.
            </fo:block>
            <fo:block space-before="6pt" space-after="6pt"
              font-weight="bold" id="sect6-1" background-color="#DD6">
              <fo:marker marker-class-name="section">6.1 Actual 
Values</fo:marker>6.1 Actual Values
            </fo:block>
            <fo:block>
              Specified values may be absolute (i.e., they are not
  specified relative to another value, as in "red" or "2mm") or relative
  (i.e., they are specified relative to another value, as in "auto",
  "2em", and "12%"), or they may be expressions. For most absolute
  values, no computation is needed to find the computed value. Relative
  values, on the other hand, must be transformed into computed values:
  percentages must be multiplied by a reference value (each property
  defines which value that is), values with a relative unit (em) must be
  made absolute by multiplying with the appropriate font size, "auto"
  values must be computed by the formulas given with each property,
  certain property values ("smaller", "bolder") must be replaced
  according to their definitions. The computed value of any property
  that controls a border width where the style of the border is "none"
  is forced to be "0pt".
            </fo:block>
            <fo:block>
              Some properties have more than one way in which the
  property value can be specified. The simplest example of such
  properties are those which can be specified either in terms of a
  direction relative to the writing-mode (e.g., padding-before) or a
  direction in terms of the absolute geometric orientation of the
  viewport (e.g., padding-top). These two properties are called the
  relative property and the absolute property,
  respectively. Collectively, they are called "corresponding
  properties".
            </fo:block>
            <fo:block>
              Specifying a value for one property determines both a computed
  value for the specified property and a computed value for the
  corresponding property. Which relative property corresponds to which
  absolute property depends on the writing-mode. For example, if the
  "writing-mode" at the top level of a document is "lr-tb", then
  "padding-start" corresponds to "padding-left", but if the
  "writing-mode" is "rl-tb", then "padding-start" corresponds to
  "padding-right". The exact specification of how to compute the values
  of corresponding properties is given in [5.3 Computing the Values of
  Corresponding Properties].
            </fo:block>
            <fo:block>
              In most cases, elements inherit computed values. However,
  there are some properties whose specified value may be inherited
  (e.g., some values for the "line-height" property). In the cases where
  child elements do not inherit the computed value, this is described in
  the property definition.
            </fo:block>
            <fo:block>
              A computed value is in principle ready to be used, but a
  user agent may not be able to make use of the value in a given
  environment. For example, a user agent may only be able to render
  borders with integer pixel widths and may, therefore, have to adjust
  the computed width to an integral number of media pixels. The actual
  value is the computed value after any such adjustments have been
  applied.
            </fo:block>
            <fo:block>
              Some of the properties applicable to formatting objects
  are "inheritable." Such properties are so identified in the property
  description. The inheritable properties can be placed on any
  formatting object. The inheritable properties are propagated down the
  formatting object tree from a parent to each child. (These properties
  are given their initial value at the root of the result tree.) For a
  given inheritable property, if that property is present on a child,
  then that value of the property is used for that child (and its
  descendants until explicitly re-set in a lower descendant); otherwise,
  the specified value of that property on the child is the computed
  value of that property on the parent formatting object. Hence there is
  always a specified value defined for every inheritable property for
  every formatting object.
            </fo:block>
      
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </fo>
    <checks>
      <!-- page 1 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore,'5 ')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter,'5 ')"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5.1 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5.2 
')]"/>
      <!-- page 2 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore,'6 ')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter,'6.1 ')"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6.1 
')]"/>
      <!-- page 3 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore,'6 ')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter,'6 ')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
      <!-- page 4 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore,'6.1 ')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter,'6.1 ')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
      <!-- page 5 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore,'6 ')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter,'6 ')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
    </checks>
  </testcase>
  
  
  
  1.1                  xml-fop/test/layoutengine/testcases/markers6b.xml
  
  Index: markers6b.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--
    Copyright 2005 The Apache Software Foundation
  
    Licensed 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: markers6b.xml,v 1.1 2005/02/20 19:52:18 spepping Exp $ -->
  <testcase>
    <info>
      <p>
        This test checks markers, especially the retrieval of markers
  belonging to a preceding page -- nested areas.
      </p>
    </info>
    <fo>
      <fo:root 
        xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
        xmlns:fox="http://xml.apache.org/fop/extensions";
        xmlns:svg="http://www.w3.org/2000/svg";>
        <fo:layout-master-set>
          <fo:simple-page-master master-name="odd"
            page-width="5in" page-height="5in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in" region-name="before-odd"/>
            <fo:region-after extent="0.5in" region-name="after-odd"/>
          </fo:simple-page-master>
          <fo:simple-page-master master-name="even"
            page-width="5in" page-height="5in">
            <fo:region-body margin="0.5in 0in"/>
            <fo:region-before extent="0.5in" region-name="before-even"/>
            <fo:region-after extent="0.5in" region-name="after-even"/>
          </fo:simple-page-master>
          <fo:page-sequence-master master-name="odd-even">
            <fo:repeatable-page-master-alternatives>
              <fo:conditional-page-master-reference
                master-reference="odd"
                page-position="any"
                odd-or-even="odd" />
              <fo:conditional-page-master-reference
                master-reference="even"
                page-position="any"
                odd-or-even="even" />
            </fo:repeatable-page-master-alternatives>
          </fo:page-sequence-master>
        </fo:layout-master-set>
      
        <fo:page-sequence master-reference="odd-even">
          <fo:static-content flow-name="before-odd">
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="first-including-carryover"/>
              <fo:leader leader-length.minimum="12pt"
                leader-length.optimum="80pt"
                leader-length.maximum="100%" leader-pattern="space">
              </fo:leader>page <fo:page-number/></fo:block>
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="first-starting-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="before-even">
            <fo:block>
             <fo:retrieve-marker retrieve-class-name="section"
                retrieve-boundary="page-sequence"
                retrieve-position="first-including-carryover"/>
              <fo:leader leader-length.minimum="12pt"
                leader-length.optimum="80pt"
                leader-length.maximum="100%" leader-pattern="space">
              </fo:leader>page <fo:page-number/>
            </fo:block>
            <fo:block>
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="first-starting-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="after-odd">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="last-starting-within-page"/>
            </fo:block>
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="chapter"
                retrieve-boundary="page-sequence"
                retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
          <fo:static-content flow-name="after-even">
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="section"
                retrieve-boundary="page-sequence"
                retrieve-position="last-starting-within-page"/>
            </fo:block>
            <fo:block text-align="end">
              <fo:retrieve-marker retrieve-class-name="section"
                retrieve-boundary="page-sequence"
                retrieve-position="last-ending-within-page"/>
            </fo:block>
          </fo:static-content>
      
          <fo:flow flow-name="xsl-region-body">
            <fo:block id="ch5" background-color="#EE1">
              <fo:marker marker-class-name="chapter">5 Property Refinement / 
Resolution</fo:marker>
              <fo:marker marker-class-name="section">5 Property Refinement / 
Resolution</fo:marker>
            <fo:block space-before="6pt" space-after="6pt" font-weight="bold">
  5 Property Refinement / Resolution
            </fo:block>
            <fo:block>
              During refinement the set of properties that apply to a
  formatting object is transformed into a set of traits that define
  constraints on the result of formatting. For many traits there is a
  one-to-one correspondence with a property; for other traits the
  transformation is more complex. Details on the transformation are
  described below.
            </fo:block>
            <fo:block id="sect5-1" background-color="#DD1">
              <fo:marker marker-class-name="section">5.1 Specified, Computed, 
and Actual Values, and Inheritance</fo:marker>
            <fo:block space-before="6pt" space-after="6pt" font-weight="bold">
  5.1 Specified, Computed, and Actual Values, and Inheritance
            </fo:block>
            <fo:block>
              For every property that is applicable to a given
  formatting object, it is necessary to determine the value of the
  property. Three variants of the property value are distinguished: the
  specified value, the computed value, and the actual value.
            </fo:block>
          </fo:block>
            <fo:block id="sect5-2" background-color="#DD1">
              <fo:marker marker-class-name="section">5.2 Specified 
Values</fo:marker>
            <fo:block space-before="6pt" space-after="6pt" font-weight="bold">
  5.2 Specified Values
            </fo:block>
            <fo:block>
              The specified value of a property is determined using the
  following mechanisms (in order of precedence)
            </fo:block>
            <fo:block>
              If the tree-construction process placed the property on
  the formatting object, use the value of that property as the specified
  value. This is called "explicit specification".
            </fo:block>
            <fo:block>
              Otherwise, if the property is inheritable, use the value
  of that property from the parent formatting object, generally the
  computed value (see below).
            </fo:block>
          </fo:block>
        </fo:block>
            <fo:block id="ch6" background-color="#EE6">
              <fo:marker marker-class-name="chapter">6 Shorthand 
Expansion</fo:marker>
              <fo:marker marker-class-name="section">6 Shorthand 
Expansion</fo:marker>
            <fo:block space-before="6pt" space-after="6pt" font-weight="bold">
  6 Shorthand Expansion
            </fo:block>
            <fo:block>
              In XSL there are two kinds of shorthand properties; those
  originating from CSS, such as "border", and those that arise from
  breaking apart and/or combining CSS properties, such as
  "page-break-inside". In XSL both types of shorthands are handled in
  the same way.
            </fo:block>
            <fo:block id="sect6-1" background-color="#DD6">
              <fo:marker marker-class-name="section">6.1 Actual 
Values</fo:marker>
            <fo:block space-before="6pt" space-after="6pt" font-weight="bold">
  6.1 Actual Values
            </fo:block>
            <fo:block>
              Specified values may be absolute (i.e., they are not
  specified relative to another value, as in "red" or "2mm") or relative
  (i.e., they are specified relative to another value, as in "auto",
  "2em", and "12%"), or they may be expressions. For most absolute
  values, no computation is needed to find the computed value. Relative
  values, on the other hand, must be transformed into computed values:
  percentages must be multiplied by a reference value (each property
  defines which value that is), values with a relative unit (em) must be
  made absolute by multiplying with the appropriate font size, "auto"
  values must be computed by the formulas given with each property,
  certain property values ("smaller", "bolder") must be replaced
  according to their definitions. The computed value of any property
  that controls a border width where the style of the border is "none"
  is forced to be "0pt".
            </fo:block>
          </fo:block>
        </fo:block>
  
            <fo:block id="ch7" background-color="#EEE">
            <fo:block>
              Some properties have more than one way in which the
  property value can be specified. The simplest example of such
  properties are those which can be specified either in terms of a
  direction relative to the writing-mode (e.g., padding-before) or a
  direction in terms of the absolute geometric orientation of the
  viewport (e.g., padding-top). These two properties are called the
  relative property and the absolute property,
  respectively. Collectively, they are called "corresponding
  properties".
            </fo:block>
            <fo:block>
              Specifying a value for one property determines both a
  computed value for the specified property and a computed value for the
  corresponding property. Which relative property corresponds to which
  absolute property depends on the writing-mode. For example, if the
  "writing-mode" at the top level of a document is "lr-tb", then
  "padding-start" corresponds to "padding-left", but if the
  "writing-mode" is "rl-tb", then "padding-start" corresponds to
  "padding-right". The exact specification of how to compute the values
  of corresponding properties is given in [5.3 Computing the Values of
  Corresponding Properties].
            </fo:block>
            <fo:block>
              In most cases, elements inherit computed values. However,
  there are some properties whose specified value may be inherited
  (e.g., some values for the "line-height" property). In the cases where
  child elements do not inherit the computed value, this is described in
  the property definition.
            </fo:block>
            <fo:block>
              A computed value is in principle ready to be used, but a
  user agent may not be able to make use of the value in a
  given environment. For example, a user agent may only be
  able to render borders with integer pixel widths and may,
  therefore, have to adjust the computed width to an
  integral number of media pixels. The actual value is the
  computed value after any such adjustments have been
  applied. 
            </fo:block>
            <fo:block>
              Some of the properties applicable to formatting objects
  are "inheritable." Such properties are so identified in the property
  description. The inheritable properties can be placed on any
  formatting object. The inheritable properties are propagated down the
  formatting object tree from a parent to each child. (These properties
  are given their initial value at the root of the result tree.) For a
  given inheritable property, if that property is present on a child,
  then that value of the property is used for that child (and its
  descendants until explicitly re-set in a lower descendant); otherwise,
  the specified value of that property on the child is the computed
  value of that property on the parent formatting object. Hence there is
  always a specified value defined for every inheritable property for
  every formatting object.
            </fo:block>
          </fo:block>
  
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </fo>
    <checks>
      <!-- page 1 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[1],'5 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[2],'5 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[1],'5 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[2],'5 
')"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5.1 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'5.2 
')]"/>
      <!-- page 2 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[1],'5 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[2],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[1],'6.1 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[2],'5 
')"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')]"/>
      <true xpath="//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6.1 
')]"/>
      <!-- page 3 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[2],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[2],'6 
')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
      <!-- page 4 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[2],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[2],'6 
')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
      <!-- page 5 -->
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionBefore/block[2],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[1],'6 
')"/>
      <true xpath="starts-with(//[EMAIL PROTECTED]//regionAfter/block[2],'6 
')"/>
      <true xpath="not(//[EMAIL PROTECTED]//regionBody//block[starts-with(.,'6 
')])"/>
      <true xpath="not(//[EMAIL 
PROTECTED]//regionBody//block[starts-with(.,'6.1 ')])"/>
    </checks>
  </testcase>
  
  
  
  1.17      +0 -1      xml-fop/test/layoutengine/disabled-testcases.txt
  
  Index: disabled-testcases.txt
  ===================================================================
  RCS file: /home/cvs/xml-fop/test/layoutengine/disabled-testcases.txt,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- disabled-testcases.txt    17 Feb 2005 20:00:11 -0000      1.16
  +++ disabled-testcases.txt    20 Feb 2005 19:52:18 -0000      1.17
  @@ -1,6 +1,5 @@
   breaks1.xml
   breaks2.xml
  -markers5a.xml
   markers5b.xml
   normal-breaking4.xml
   table-cell3a.xml
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to