blob: 852025829a30a096847109e6e31b684b37ad4490 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
<!--======================================================================-->
<!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, Institut National de Recherche en =-->
<!--= Informatique et en Automatique, Keio University). All Rights =-->
<!--= Reserved. See http://www.w3.org/Consortium/Legal/. =-->
<!--======================================================================-->
<!-- ===================================================================== -->
<!-- -->
<!-- text-textLength-BE-17-patch.svg -->
<!-- renamed for 1.1 suite to text-text-01-b.svg -->
<!-- -->
<!-- Basic test of 'textLength' and 'lengthAdjust' attributes. -->
<!-- -->
<!-- Author : Lofton Henderson, 29-aug-2000. -->
<!-- 1.1 revision by Rick Graham -->
<!-- Revised for SVGT/B : Mathias Larsson Carlander Aug/20/2002 -->
<!-- -->
<!-- History: -->
<!-- 29-aug-2000, LH: Serial#1 created. -->
<!-- -->
<!-- ===================================================================== -->
<!--======================================================================-->
<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
<!--= log messages, and therefore is no longer in the preceding preamble.=-->
<!--======================================================================-->
<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root" width="100%" height="100%" viewBox="0 0 160 120">
<SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
<OperatorScript version="$Revision: 1.7 $" testname="text-text-01-b.svg">
<Paragraph>
Test viewer capibility to handle basic use of 'textLength'
and 'lengthAdjust' attributes.
</Paragraph>
<Paragraph>
There are four pairs of sub-tests. Each pair of sub-tests consists
of the same two strings: "Line to Stretch" on the left, and "this is
a line to squeeze" on the right.
</Paragraph>
<Paragraph>
The first (topmost) pair contains no occurrences of the textLength and
lengthAdjust attributes in the 'text' elements.
The red reference line under each of the top
two strings indicates the approximate length of the strings. Since
the lengths are not constrained by the 'textLength' attribute, small
variations of the lengths are permissible.
</Paragraph>
<Paragraph>
The remaining three pairs each applies 'textLength' attributes to the
strings. In the leftmost sub-test of each pair, the 'textLength' value
will cause a stretching of the string of approximately 25% over the
"normal" length. In the rightmost sub-test of each pair, the 'textLength' value
will cause a squeezing of the string of approximately 20% under the
"normal" length for the string.
</Paragraph>
<Paragraph>
In each of the sub-tests with an application of 'textLength', the
red reference lines indicate the exact extent of the rendered text.
The rendered text should fit snugly just within the ticks at the end of
the red lines.
</Paragraph>
<Paragraph>
The second pair from the top contains 'textLength' but no 'lengthAdjust'
attributes. In this case, the effect should be as if the value "spacing"
were specified. Only the inter-character advancement and inter-word spacing
should change. The aspect ratio of the glyphs should be unaffected. The
reference image illustrates one valid way to achieve this, by a
uniform increase or decrease of inter-character advancement.
</Paragraph>
<Paragraph>
The third pair from the top explicitly sets 'lengthAdjust' value
to "spacing". Therefore it should be rendered identically to the second pair.
</Paragraph>
<Paragraph>
The fourth (bottommost) sub-test pair explicitly sets 'lengthAdjust' value
to "spacingAndGlyphs". The advancements between characters and words, as well as
the glyph aspect ratios should be affected.
The reference image illustrates one valid way to achieve
this, by a uniform expansion or compression of the string as a whole.
This effect is equivalent to application of a "scale(xfactor, 1.0)" transformation
to the 'text' elements.
</Paragraph>
<Paragraph>
The rendered picture should match the reference image, except as noted above.
In particular, the 'textLength' constraint must be satisfied precisely,
and the basic rules associated with the "spacing" and "spacingAndGlyphs" values
of 'lengthAdjust' must be met, but the precise algorithm for meeting all
of the required contraints is otherwise unspecified.
</Paragraph>
<Paragraph>
The test also uses the 'transform' attribute, the 'rect' element,
as well as basic fill (solid primary colors),
stroke (black 1-pixel lines), font-family (Arial)
and font-size properties.
</Paragraph>
</OperatorScript>
</SVGTestCase>
<title id="test-title">text-text-01-b.svg</title>
<desc id="test-desc">Basic test of 'textLength' and 'lengthAdjust' attributes.</desc>
<!--======================================================================-->
<!--Content of Test Case follows... =====================-->
<!--======================================================================-->
<g id="test-body-content">
<text x="14" y="10" font-family="Arial" font-size="10" fill="black">Basic test of 'textLength' </text>
<text x="10" y="20" font-family="Arial" font-size="10" fill="black">and 'lengthAdjust' attributes.</text>
<!-- Test cases 1&2: all defaults -->
<g id="test-1-2">
<!-- The text lines -->
<g font-family="Arial" font-size="8" fill="blue">
<text x="3" y="30">Line to Stretch</text>
<text x="75" y="30">this is a line to squeeze</text>
</g>
<!-- Length reference lines -->
<!-- (half ticks here only, as these lengths can validly vary slightly) -->
<g stroke="red">
<line x1="2" y1="32" x2="56" y2="32"/>
<!-- <line x1="39" y1="70" x2="39" y2="84" /> -->
<line x1="2" y1="32" x2="2" y2="36"/>
<!-- <line x1="145" y1="70" x2="145" y2="84" /> -->
<line x1="56" y1="32" x2="56" y2="36"/>
<line x1="74" y1="32" x2="158" y2="32"/>
<!-- <line x1="244" y1="70" x2="244" y2="84" /> -->
<line x1="74" y1="32" x2="74" y2="36"/>
<!-- <line x1="412" y1="70" x2="412" y2="84" /> -->
<line x1="158" y1="32" x2="158" y2="36"/>
</g>
<!-- Labels -->
<g font-family="Arial" font-size="6" fill="black">
<text x="6" y="38">textLength: default</text>
<text x="6" y="44">lengthAdjust: default</text>
<text x="76" y="38">textLength: default</text>
<text x="76" y="44">lengthAdjust: default</text>
</g>
</g>
<!-- Test cases 3&4: define textLength, default lengthAdjust-->
<g id="test-3-4" transform="translate(0,22)">
<!-- The text lines -->
<g font-family="Arial" font-size="8" fill="blue">
<text x="3" y="30" textLength="65">Line to Stretch</text>
<text x="75" y="30" textLength="65">this is a line to squeeze</text>
</g>
<!-- Length reference lines -->
<g stroke="red">
<line x1="2" y1="32" x2="69" y2="32"/>
<line x1="2" y1="32" x2="2" y2="36"/>
<line x1="69" y1="32" x2="69" y2="36"/>
<line x1="74" y1="32" x2="141" y2="32"/>
<line x1="74" y1="32" x2="74" y2="36"/>
<line x1="141" y1="32" x2="141" y2="36"/>
</g>
<!-- Labels -->
<g font-family="Arial" font-size="6" fill="black">
<text x="6" y="38">textLength: 25% longer</text>
<text x="6" y="44">lengthAdjust: default</text>
<text x="76" y="38">textLength: 15% shorter</text>
<text x="76" y="44">lengthAdjust: default</text>
</g>
</g>
<!-- Test cases 5&6: define textLength, lengthAdjust=spacing -->
<g id="test-5-6" transform="translate(0,44)">
<!-- The text lines -->
<g font-family="Arial" font-size="8" fill="blue">
<text x="3" y="30" textLength="65" lengthAdjust="spacing">Line to Stretch</text>
<text x="75" y="30" textLength="65" lengthAdjust="spacing">this is a line to squeeze</text>
</g>
<!-- Length reference lines -->
<g stroke="red">
<line x1="2" y1="32" x2="69" y2="32"/>
<line x1="2" y1="32" x2="2" y2="36"/>
<line x1="69" y1="32" x2="69" y2="36"/>
<line x1="74" y1="32" x2="141" y2="32"/>
<line x1="74" y1="32" x2="74" y2="36"/>
<line x1="141" y1="32" x2="141" y2="36"/>
</g>
<!-- Labels -->
<g font-family="Arial" font-size="6" fill="black">
<text x="3" y="38">textLength: 25% longer</text>
<text x="3" y="44">lengthAdjust: spacing</text>
<text x="76" y="38">textLength: 15% shorter</text>
<text x="76" y="44">lengthAdjust: spacing</text>
</g>
</g>
<!-- Test cases 7&8: define textLength, lengthAdjust=spacingAndGlyphs -->
<g id="test-7-8" transform="translate(0,66)">
<!-- The text lines -->
<g font-family="Arial" font-size="8" fill="blue">
<text x="3" y="30" textLength="65" lengthAdjust="spacingAndGlyphs">Line to Stretch</text>
<text x="75" y="30" textLength="65" lengthAdjust="spacingAndGlyphs">this is a line to squeeze</text>
</g>
<!-- Length reference lines -->
<g stroke="red">
<line x1="2" y1="32" x2="69" y2="32"/>
<line x1="2" y1="32" x2="2" y2="36"/>
<line x1="69" y1="32" x2="69" y2="36"/>
<line x1="74" y1="32" x2="141" y2="32"/>
<line x1="74" y1="32" x2="74" y2="36"/>
<line x1="141" y1="32" x2="141" y2="36"/>
</g>
<!-- Labels -->
<g font-family="Arial" font-size="6" fill="black">
<text x="6" y="38">textLength: 25% longer</text>
<text x="6" y="44">lengthAdjust: sAG</text>
<text x="76" y="38">textLength: 20% shorter</text>
<text x="76" y="44">lengthAdjust: sAG</text>
</g>
</g>
</g>
<text id="revision" x="5" y="117" font-size="8" stroke="none" fill="black">$Revision: 1.7 $</text>
<rect id="test-frame" x="1" y="1" width="158" height="118" fill="none" stroke="#000000"/>
<script>
if (window.layoutTestController)
window.layoutTestController.dumpSelectionRect();
document.execCommand("SelectAll");
</script>
</svg>