Reviewed by Oliver.
authoroliver <oliver@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Oct 2007 13:16:19 +0000 (13:16 +0000)
committeroliver <oliver@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Oct 2007 13:16:19 +0000 (13:16 +0000)
Fix all known bugs regarding to SVG text selection, when embedded in XHTML.
Also fix inspecting <text> elements when embedded in XHTML. (WebInspector)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26428 268f45cc-cd09-0410-ab3c-d52691b4dbfc

116 files changed:
LayoutTests/ChangeLog
LayoutTests/svg/batik/text/textEffect-expected.checksum
LayoutTests/svg/batik/text/textEffect-expected.png
LayoutTests/svg/text/text-align-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-align-02-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-02-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-02-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-02-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-align-03-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-03-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-03-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-03-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-align-04-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-04-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-04-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-04-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-align-05-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-05-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-05-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-05-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-align-06-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-align-06-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-align-06-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-align-06-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-altglyph-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-altglyph-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-altglyph-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-altglyph-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-deco-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-deco-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-deco-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-deco-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-01-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-01-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-01-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-01-t.svg [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-02-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-02-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-02-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-fonts-02-t.svg [new file with mode: 0644]
LayoutTests/svg/text/text-intro-05-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-intro-05-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-intro-05-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-intro-05-t.svg [new file with mode: 0755]
LayoutTests/svg/text/text-path-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-path-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-path-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-path-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-spacing-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-spacing-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-spacing-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-spacing-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-text-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-text-03-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-03-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-03-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-03-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-text-04-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-04-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-04-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-04-t.svg [new file with mode: 0755]
LayoutTests/svg/text/text-text-05-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-05-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-05-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-05-t.svg [new file with mode: 0755]
LayoutTests/svg/text/text-text-06-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-06-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-06-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-06-t.svg [new file with mode: 0755]
LayoutTests/svg/text/text-text-07-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-07-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-07-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-07-t.svg [new file with mode: 0755]
LayoutTests/svg/text/text-text-08-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-text-08-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-text-08-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-text-08-b.svg [new file with mode: 0755]
LayoutTests/svg/text/text-tref-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-tref-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-tref-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-tref-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-02-f-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-02-f-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-02-f-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-tselect-02-f.svg [new file with mode: 0755]
LayoutTests/svg/text/text-tspan-01-b-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-tspan-01-b-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-tspan-01-b-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-tspan-01-b.svg [new file with mode: 0644]
LayoutTests/svg/text/text-ws-01-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-ws-01-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-ws-01-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-ws-01-t.svg [new file with mode: 0644]
LayoutTests/svg/text/text-ws-02-t-expected.checksum [new file with mode: 0644]
LayoutTests/svg/text/text-ws-02-t-expected.png [new file with mode: 0644]
LayoutTests/svg/text/text-ws-02-t-expected.txt [new file with mode: 0644]
LayoutTests/svg/text/text-ws-02-t.svg [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderSVGInlineText.cpp
WebCore/rendering/RenderSVGInlineText.h
WebCore/rendering/RenderSVGRoot.cpp
WebCore/rendering/RenderSVGText.cpp
WebCore/rendering/SVGCharacterLayoutInfo.h
WebCore/rendering/SVGInlineTextBox.cpp
WebCore/rendering/SVGRootInlineBox.cpp
WebCore/rendering/SVGRootInlineBox.h

index 4c287cbdcf0916463aeca30f83a2848e6b8ad47f..063b0bddf480c452e9db917e2a9a63ff3df8fa93 100644 (file)
@@ -1,3 +1,119 @@
+2007-07-24  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Rubber stamped by Rob.
+
+        Copy over SVG text testcases from svg/text/W3C-SVG-1.1/text-*.svg to svg/text.
+        Enable dumping of selection rects in these set of testcases, to avoid a further regression in this area.
+
+        Also update the textEffect.svg test which has 0.0% difference, to make all tests pass again.
+
+        * svg/batik/text/textEffect-expected.checksum:
+        * svg/batik/text/textEffect-expected.png:
+        * svg/text/text-align-01-b-expected.checksum: Added.
+        * svg/text/text-align-01-b-expected.png: Added.
+        * svg/text/text-align-01-b-expected.txt: Added.
+        * svg/text/text-align-01-b.svg: Added.
+        * svg/text/text-align-02-b-expected.checksum: Added.
+        * svg/text/text-align-02-b-expected.png: Added.
+        * svg/text/text-align-02-b-expected.txt: Added.
+        * svg/text/text-align-02-b.svg: Added.
+        * svg/text/text-align-03-b-expected.checksum: Added.
+        * svg/text/text-align-03-b-expected.png: Added.
+        * svg/text/text-align-03-b-expected.txt: Added.
+        * svg/text/text-align-03-b.svg: Added.
+        * svg/text/text-align-04-b-expected.checksum: Added.
+        * svg/text/text-align-04-b-expected.png: Added.
+        * svg/text/text-align-04-b-expected.txt: Added.
+        * svg/text/text-align-04-b.svg: Added.
+        * svg/text/text-align-05-b-expected.checksum: Added.
+        * svg/text/text-align-05-b-expected.png: Added.
+        * svg/text/text-align-05-b-expected.txt: Added.
+        * svg/text/text-align-05-b.svg: Added.
+        * svg/text/text-align-06-b-expected.checksum: Added.
+        * svg/text/text-align-06-b-expected.png: Added.
+        * svg/text/text-align-06-b-expected.txt: Added.
+        * svg/text/text-align-06-b.svg: Added.
+        * svg/text/text-altglyph-01-b-expected.checksum: Added.
+        * svg/text/text-altglyph-01-b-expected.png: Added.
+        * svg/text/text-altglyph-01-b-expected.txt: Added.
+        * svg/text/text-altglyph-01-b.svg: Added.
+        * svg/text/text-deco-01-b-expected.checksum: Added.
+        * svg/text/text-deco-01-b-expected.png: Added.
+        * svg/text/text-deco-01-b-expected.txt: Added.
+        * svg/text/text-deco-01-b.svg: Added.
+        * svg/text/text-fonts-01-t-expected.checksum: Added.
+        * svg/text/text-fonts-01-t-expected.png: Added.
+        * svg/text/text-fonts-01-t-expected.txt: Added.
+        * svg/text/text-fonts-01-t.svg: Added.
+        * svg/text/text-fonts-02-t-expected.checksum: Added.
+        * svg/text/text-fonts-02-t-expected.png: Added.
+        * svg/text/text-fonts-02-t-expected.txt: Added.
+        * svg/text/text-fonts-02-t.svg: Added.
+        * svg/text/text-intro-05-t-expected.checksum: Added.
+        * svg/text/text-intro-05-t-expected.png: Added.
+        * svg/text/text-intro-05-t-expected.txt: Added.
+        * svg/text/text-intro-05-t.svg: Added.
+        * svg/text/text-path-01-b-expected.checksum: Added.
+        * svg/text/text-path-01-b-expected.png: Added.
+        * svg/text/text-path-01-b-expected.txt: Added.
+        * svg/text/text-path-01-b.svg: Added.
+        * svg/text/text-spacing-01-b-expected.checksum: Added.
+        * svg/text/text-spacing-01-b-expected.png: Added.
+        * svg/text/text-spacing-01-b-expected.txt: Added.
+        * svg/text/text-spacing-01-b.svg: Added.
+        * svg/text/text-text-01-b-expected.checksum: Added.
+        * svg/text/text-text-01-b-expected.png: Added.
+        * svg/text/text-text-01-b-expected.txt: Added.
+        * svg/text/text-text-01-b.svg: Added.
+        * svg/text/text-text-03-b-expected.checksum: Added.
+        * svg/text/text-text-03-b-expected.png: Added.
+        * svg/text/text-text-03-b-expected.txt: Added.
+        * svg/text/text-text-03-b.svg: Added.
+        * svg/text/text-text-04-t-expected.checksum: Added.
+        * svg/text/text-text-04-t-expected.png: Added.
+        * svg/text/text-text-04-t-expected.txt: Added.
+        * svg/text/text-text-04-t.svg: Added.
+        * svg/text/text-text-05-t-expected.checksum: Added.
+        * svg/text/text-text-05-t-expected.png: Added.
+        * svg/text/text-text-05-t-expected.txt: Added.
+        * svg/text/text-text-05-t.svg: Added.
+        * svg/text/text-text-06-t-expected.checksum: Added.
+        * svg/text/text-text-06-t-expected.png: Added.
+        * svg/text/text-text-06-t-expected.txt: Added.
+        * svg/text/text-text-06-t.svg: Added.
+        * svg/text/text-text-07-t-expected.checksum: Added.
+        * svg/text/text-text-07-t-expected.png: Added.
+        * svg/text/text-text-07-t-expected.txt: Added.
+        * svg/text/text-text-07-t.svg: Added.
+        * svg/text/text-text-08-b-expected.checksum: Added.
+        * svg/text/text-text-08-b-expected.png: Added.
+        * svg/text/text-text-08-b-expected.txt: Added.
+        * svg/text/text-text-08-b.svg: Added.
+        * svg/text/text-tref-01-b-expected.checksum: Added.
+        * svg/text/text-tref-01-b-expected.png: Added.
+        * svg/text/text-tref-01-b-expected.txt: Added.
+        * svg/text/text-tref-01-b.svg: Added.
+        * svg/text/text-tselect-01-b-expected.checksum: Added.
+        * svg/text/text-tselect-01-b-expected.png: Added.
+        * svg/text/text-tselect-01-b-expected.txt: Added.
+        * svg/text/text-tselect-01-b.svg: Added.
+        * svg/text/text-tselect-02-f-expected.checksum: Added.
+        * svg/text/text-tselect-02-f-expected.png: Added.
+        * svg/text/text-tselect-02-f-expected.txt: Added.
+        * svg/text/text-tselect-02-f.svg: Added.
+        * svg/text/text-tspan-01-b-expected.checksum: Added.
+        * svg/text/text-tspan-01-b-expected.png: Added.
+        * svg/text/text-tspan-01-b-expected.txt: Added.
+        * svg/text/text-tspan-01-b.svg: Added.
+        * svg/text/text-ws-01-t-expected.checksum: Added.
+        * svg/text/text-ws-01-t-expected.png: Added.
+        * svg/text/text-ws-01-t-expected.txt: Added.
+        * svg/text/text-ws-01-t.svg: Added.
+        * svg/text/text-ws-02-t-expected.checksum: Added.
+        * svg/text/text-ws-02-t-expected.png: Added.
+        * svg/text/text-ws-02-t-expected.txt: Added.
+        * svg/text/text-ws-02-t.svg: Added.
+
 2007-07-17  Rob Buis  <buis@kde.org>
 
         Reviewed by Nikolas.
index 913ad50e5c7457797584218f05449c636257e590..087f026b7d19a03247ef3dbdeb30ca8ad7c17e93 100644 (file)
@@ -1 +1 @@
-93bb4d44385d75f6924767365e989e58
\ No newline at end of file
+305078038afa3cb9ab1071f4988ff362
\ No newline at end of file
index 5e2eab4f379d81ed064e16b545b507a8e7191783..b283e8ed54f4455e20361954653e698f4579c25e 100644 (file)
Binary files a/LayoutTests/svg/batik/text/textEffect-expected.png and b/LayoutTests/svg/batik/text/textEffect-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-01-b-expected.checksum b/LayoutTests/svg/text/text-align-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..7c38802
--- /dev/null
@@ -0,0 +1 @@
+f2aa5926e0ed54cb112b83071a3fb142
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-01-b-expected.png b/LayoutTests/svg/text/text-align-01-b-expected.png
new file mode 100644 (file)
index 0000000..c3fa921
Binary files /dev/null and b/LayoutTests/svg/text/text-align-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-01-b-expected.txt b/LayoutTests/svg/text/text-align-01-b-expected.txt
new file mode 100644 (file)
index 0000000..ab2706b
--- /dev/null
@@ -0,0 +1,39 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (8.33,15) size 753.33x461.67
+      RenderSVGText {text} at (5,40) size 435x38 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-31) size 435x38
+          chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 31 width 435.00: "Test 'text-anchor' (horizontal)"
+      RenderSVGContainer {g} at (33.33,171.67) size 728.33x305
+        RenderSVGContainer {g} at (378.33,171.67) size 383.33x55 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,130.00)}]
+          RenderPath {line} at (383.33,215.83) size 83.33x1.67 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L50.00,0.00"]
+          RenderPath {circle} at (378.33,211.67) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+          RenderSVGText {text} at (0,0) size 227x33 contains 1 chunk(s) [color=#FF0000]
+            RenderSVGInlineText {#text} at (0,-27) size 227x33
+              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 16 width 227.00: "text-anchor:none"
+        RenderSVGContainer {g} at (378.33,255) size 366.67x55 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,180.00)}]
+          RenderPath {line} at (383.33,299.17) size 83.33x1.67 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L50.00,0.00"]
+          RenderPath {circle} at (378.33,295) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+          RenderSVGText {text} at (0,0) size 217x33 contains 1 chunk(s) [color=#FF0000]
+            RenderSVGInlineText {#text} at (0,-27) size 217x33
+              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 17 width 217.00: "text-anchor:start"
+        RenderSVGContainer {g} at (175.00,338.33) size 415x55 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,230.00)}]
+          RenderPath {line} at (341.67,382.50) size 83.33x1.67 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M-25.00,0.00L25.00,0.00"]
+          RenderPath {circle} at (378.33,378.33) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+          RenderSVGText {text} at (-125,0) size 248x33 contains 1 chunk(s) [color=#008000]
+            RenderSVGInlineText {#text} at (0,-27) size 249x33
+              chunk 1 (middle anchor) text run 1 at (-124.50,0.00) startOffset 0 endOffset 18 width 249.00: "text-anchor:middle"
+        RenderSVGContainer {g} at (33.33,421.67) size 355x55 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,280.00)}]
+          RenderPath {line} at (300.00,465.83) size 83.33x1.67 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [data="M-50.00,0.00L0.00,0.00"]
+          RenderPath {circle} at (378.33,461.67) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+          RenderSVGText {text} at (-210,0) size 210x33 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-27) size 210x33
+              chunk 1 (end anchor) text run 1 at (-210.00,0.00) startOffset 0 endOffset 15 width 210.00: "text-anchor:end"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 26 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 26 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-01-b.svg b/LayoutTests/svg/text/text-align-01-b.svg
new file mode 100644 (file)
index 0000000..863fc92
--- /dev/null
@@ -0,0 +1,81 @@
+<?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-alignment-BE-10.svg                                              -->
+<!-- renamed for 1.1 suite to text-align-01-b.svg                          -->
+<!-- renamed and split for svgt/b to text-align-01-b-a.svg                 -->
+<!--                                                                       -->
+<!-- Test 'text-anchor' property (horizontal).                             -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                    -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  06-Aug-2000, JF: 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 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-01-b.svg">
+            <Paragraph>
+                Test 'text-anchor' property (horizontal).
+            </Paragraph>
+            <Paragraph>
+                The three lines test the three values for property 'text-anchor': start, middle and end.
+            </Paragraph>
+       </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-01-b</title>
+   <desc id="test-desc">Test 'text-anchor' property (horizontal).</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text font-family="Arial" font-size="34"  x="5" y="40">Test 'text-anchor' (horizontal)</text>
+      <g id="text-anchor" font-family="Arial" font-size="14" >
+         <g transform="translate(230,130)">
+                     <line stroke="black"  x2="50"/>
+                     <circle r="3"/>
+                     <text font-size="30" fill="red" >text-anchor:none</text>
+         </g>
+         <g transform="translate(230,180)">
+            <line stroke="black"  x2="50"/>
+            <circle r="3"/>
+            <text font-size="30" text-anchor="start" fill="red" >text-anchor:start</text>
+         </g>
+         <g transform="translate(230,230)">
+            <line stroke="black"  x1="-25" x2="25"/>
+            <circle r="3"/>
+            <text font-size="30" text-anchor="middle" fill="green" >text-anchor:middle</text>
+         </g>
+         <g transform="translate(230,280)">
+            <line stroke="black"  x1="-50" x2="0"/>
+            <circle r="3"/>
+            <text font-size="30" text-anchor="end" fill="blue" >text-anchor:end</text>
+         </g>
+      </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-align-02-b-expected.checksum b/LayoutTests/svg/text/text-align-02-b-expected.checksum
new file mode 100644 (file)
index 0000000..38bff81
--- /dev/null
@@ -0,0 +1 @@
+48d6172c306fa90bc2c36c943341cd3c
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-02-b-expected.png b/LayoutTests/svg/text/text-align-02-b-expected.png
new file mode 100644 (file)
index 0000000..e5e7b52
Binary files /dev/null and b/LayoutTests/svg/text/text-align-02-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-02-b-expected.txt b/LayoutTests/svg/text/text-align-02-b-expected.txt
new file mode 100644 (file)
index 0000000..f59eeb3
--- /dev/null
@@ -0,0 +1,45 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (8.33,15) size 778.33x455
+      RenderSVGText {text} at (5,40) size 467x38 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-31) size 467x38
+          chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 34 width 467.00: "Test 'baseline-shift' (horizontal)"
+      RenderSVGContainer {g} at (25,143.33) size 673.33x326.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,120.00)}]
+        RenderSVGText {text} at (0,-7) size 350x40 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-20) size 98x33
+            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 6 width 98.00: "Normal"
+          RenderSVGTSpan {tspan} at (0,0) size 204x33 [color=#FF0000]
+            RenderSVGInlineText {#text} at (98,-27) size 204x33
+              chunk 1 text run 2 at (98.00,-7.00) startOffset 0 endOffset 16 width 204.00: "baseline-shift:7"
+          RenderSVGInlineText {#text} at (302,-20) size 48x33
+            chunk 1 text run 3 at (302.00,0.00) startOffset 0 endOffset 4 width 48.00: "text"
+        RenderSVGText {text} at (0,70) size 404x54 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-27) size 98x33
+            chunk 1 text run 1 at (0.00,70.00) startOffset 0 endOffset 6 width 98.00: "Normal"
+          RenderSVGTSpan {tspan} at (0,0) size 258x33 [color=#FF0000]
+            RenderSVGInlineText {#text} at (98,-6) size 258x33
+              chunk 1 text run 2 at (98.00,91.00) startOffset 0 endOffset 19 width 258.00: "baseline-shift:-70%"
+          RenderSVGInlineText {#text} at (356,-27) size 48x33
+            chunk 1 text run 3 at (356.00,70.00) startOffset 0 endOffset 4 width 48.00: "text"
+        RenderSVGText {text} at (0,123) size 271x66 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-10) size 98x33
+            chunk 1 text run 1 at (0.00,140.00) startOffset 0 endOffset 6 width 98.00: "Normal"
+          RenderSVGTSpan {tspan} at (0,0) size 49x33 [color=#FF0000]
+            RenderSVGInlineText {#text} at (98,6) size 49x33
+              chunk 1 text run 2 at (98.00,156.50) startOffset 0 endOffset 3 width 49.00: "sub"
+          RenderSVGTSpan {tspan} at (0,0) size 76x33 [color=#008000]
+            RenderSVGInlineText {#text} at (147,-26) size 76x33
+              chunk 1 text run 3 at (147.00,123.50) startOffset 0 endOffset 5 width 76.00: "super"
+          RenderSVGTSpan {tspan} at (0,0) size 25x33 [color=#0000FF]
+            RenderSVGInlineText {#text} at (223,-10) size 25x33
+              chunk 1 text run 4 at (223.00,140.00) startOffset 0 endOffset 2 width 25.00: "te"
+          RenderSVGInlineText {#text} at (248,-10) size 23x33
+            chunk 1 text run 5 at (248.00,140.00) startOffset 0 endOffset 2 width 23.00: "xt"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 26 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 26 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-02-b.svg b/LayoutTests/svg/text/text-align-02-b.svg
new file mode 100644 (file)
index 0000000..d9fd531
--- /dev/null
@@ -0,0 +1,70 @@
+<?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-alignment-BE-10.svg                                              -->
+<!-- renamed for 1.1 suite to text-align-02-b.svg                          -->
+<!-- renamed and split for svgt/b to text-align-01-b-b.svg                 -->
+<!--                                                                       -->
+<!-- Test the 'baseline-shift' property (horizontal).                      -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                    -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  06-Aug-2000, JF: 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 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-02-b.svg">
+            <Paragraph>
+                Test the 'baseline-shift' property (horizontal).
+            </Paragraph>
+            <Paragraph>
+                This three lines test property 'baseline-shift'.
+                The first line tests 'baseline-shift:7' (i.e., a length for 'baseline-shift').
+                The red text should shift upward by 7 pixels.
+                The second line tests 'baseline-shift:-70%' (i.e., a percentage for 'baseline-shift').
+                The red text should shift downward by 70% of the 'font-size'.
+                The third line tests the three keywords 'sub', 'super' and 'normal'.
+                You should see a subscript, superscript and return to normal.
+            </Paragraph>
+       </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-02-b</title>
+   <desc id="test-desc">Test the 'baseline-shift' property (horizontal).</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text font-family="Arial" font-size="34"  x="5" y="40">Test 'baseline-shift' (horizontal)</text>
+         <g id="baseline-shift" font-family="Arial" font-size="30"  transform="translate(15,120)">
+               <text y="0">Normal<tspan baseline-shift="7" fill="red" >baseline-shift:7</tspan>text</text>
+               <text y="70">Normal<tspan baseline-shift="-70%" fill="red" >baseline-shift:-70%</tspan>text</text>
+               <text y="140">Normal<tspan baseline-shift="sub" fill="red" >sub</tspan><tspan baseline-shift="super" fill="green" >super</tspan><tspan baseline-shift="baseline" fill="blue" >te</tspan>xt</text>
+      </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-align-03-b-expected.checksum b/LayoutTests/svg/text/text-align-03-b-expected.checksum
new file mode 100644 (file)
index 0000000..3b2c564
--- /dev/null
@@ -0,0 +1 @@
+22635d02eddb02adb4d18a1870561e79
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-03-b-expected.png b/LayoutTests/svg/text/text-align-03-b-expected.png
new file mode 100644 (file)
index 0000000..6c83660
Binary files /dev/null and b/LayoutTests/svg/text/text-align-03-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-03-b-expected.txt b/LayoutTests/svg/text/text-align-03-b-expected.txt
new file mode 100644 (file)
index 0000000..c1f1f0b
--- /dev/null
@@ -0,0 +1,25 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (-6.67,0.83) size 805.83x598.33
+    RenderSVGContainer {g} at (-6.67,6.67) size 788.33x368.33
+      RenderSVGText {text} at (5,40) size 346x44 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-36) size 346x44
+          chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 21 width 346.00: "Test of 'text-anchor'"
+      RenderPath {line} at (374.17,125) size 1.67x250 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M225.00,75.00L225.00,225.00"]
+      RenderSVGContainer {g} at (-6.67,138.33) size 788.33x221.67
+        RenderSVGText {text} at (-4,110) size 473x133 contains 3 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-27) size 229x33
+            chunk 1 (end anchor) text run 1 at (-4.00,110.00) startOffset 0 endOffset 17 width 229.00: "Begin with \"end\","
+          RenderSVGTSpan {tspan} at (0,0) size 400x33
+            RenderSVGInlineText {#text} at (29,23) size 400x33
+              chunk 2 (middle anchor) text run 1 at (25.00,160.00) startOffset 0 endOffset 32 width 400.00: " switch to \"middle\" in a tspan, "
+          RenderSVGTSpan {tspan} at (0,0) size 244x33
+            RenderSVGInlineText {#text} at (229,73) size 244x33
+              chunk 3 text run 1 at (225.00,210.00) startOffset 0 endOffset 20 width 244.00: "and \"start\" ends it."
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 27 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 27 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-03-b.svg b/LayoutTests/svg/text/text-align-03-b.svg
new file mode 100644 (file)
index 0000000..d411fb2
--- /dev/null
@@ -0,0 +1,75 @@
+<?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-textAnchor-BE-05.svg                                             -->
+<!-- renamed for 1.1 suite to text-align-02-f.svg                          -->
+<!-- renamed and split for svgt/b to text-align-03-b.svg                 -->
+<!--                                                                       -->
+<!-- Test viewer basic capability to handle 'text-anchor' property.        -->
+<!--                                                                       -->
+<!-- Author : Lofton Henderson, 05-aug-2000.                               -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  05-aug-2000, LH: Serial#1 created.                                   -->
+<!--  23-aug-2000, LH=" add test-body-content 'g'" ser#2                    -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-03-b.svg">
+            <Paragraph>
+                Test for viewer capibility to handle the basics of the 'textAnchor' 
+                alignment property for 'text' and related elements.
+            </Paragraph>
+            <Paragraph>
+                This test verify that
+                the interpreter correctly handles and applies the text-anchor 
+                properties when present on "chunks", which are comprised of tspan elements
+                with absolute positioning, within the containing 'text' element.
+            </Paragraph>
+            <Paragraph>
+                The rendered picture should match the reference image, except for
+                possible variations in the text fonts and layout (per CSS2 rules).
+            </Paragraph>
+
+        </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-03-b</title>
+   <desc id="test-desc">Test viewer basic capability to handle 'text-anchor' property.</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text x="5" y="40" font-family="Arial" font-size="40" fill="black" >Test of 'text-anchor'</text>
+     
+      <!-- Test cases -->
+      <line x1="225" y1="75" x2="225" y2="225" stroke="red" />
+      <g font-family="Arial" font-size="30" fill="blue" >
+         <text x="225" y="110" text-anchor="end" >Begin with "end",<tspan x="225" y="160" xml:space="preserve" text-anchor="middle" > switch to "middle" in a tspan, </tspan><tspan x="225" y="210" text-anchor="start" >and "start" ends it.</tspan></text>
+      </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-align-04-b-expected.checksum b/LayoutTests/svg/text/text-align-04-b-expected.checksum
new file mode 100644 (file)
index 0000000..d9fa9a1
--- /dev/null
@@ -0,0 +1 @@
+ace28c381e95e966adfe3b1f5f98eb53
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-04-b-expected.png b/LayoutTests/svg/text/text-align-04-b-expected.png
new file mode 100644 (file)
index 0000000..d095300
Binary files /dev/null and b/LayoutTests/svg/text/text-align-04-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-04-b-expected.txt b/LayoutTests/svg/text/text-align-04-b-expected.txt
new file mode 100644 (file)
index 0000000..88e4680
--- /dev/null
@@ -0,0 +1,45 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (-15,-45) size 814.17x644.17
+    RenderSVGContainer {g} at (-15,-45) size 808.33x488.33
+      RenderSVGText {text} at (5,40) size 346x44 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-36) size 346x44
+          chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 21 width 346.00: "Test of 'text-anchor'"
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGText {text} at (0,0) size 75x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 75x18
+            chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 13 width 75.00: "end text tref"
+        RenderPath {path} at (-5,260) size 225x0 [fill={[type=SOLID] [color=#000000]}] [data="M-5.00,260.00L220.00,260.00"]
+      RenderSVGText {text} at (20,80) size 218x33 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-27) size 218x33
+          chunk 1 text run 1 at (20.00,80.00) startOffset 0 endOffset 17 width 218.00: "Tspan, tref, toap"
+      RenderPath {line} at (365.83,200) size 1.67x233.33 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M220.00,120.00L220.00,260.00"]
+      RenderSVGContainer {g} at (-15,-45) size 808.33x488.33
+        RenderSVGText {text} at (220,140) size 256x33 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-27) size 122x33
+            chunk 1 text run 1 at (220.00,140.00) startOffset 0 endOffset 11 width 122.00: "start text "
+          RenderSVGTSpan {tspan} at (0,0) size 134x33 [color=#FF0000]
+            RenderSVGInlineText {#text} at (122,-27) size 134x33
+              chunk 1 text run 2 at (342.00,140.00) startOffset 0 endOffset 10 width 134.00: " red tspan"
+        RenderSVGText {text} at (64,180) size 312x33 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-27) size 154x33
+            chunk 1 (middle anchor) text run 1 at (64.00,180.00) startOffset 0 endOffset 12 width 154.00: "middle text "
+          RenderSVGTSpan {tspan} at (0,0) size 158x33
+            RenderSVGInlineText {#text} at (154,-27) size 158x33
+              chunk 1 (middle anchor) text run 2 at (218.00,180.00) startOffset 0 endOffset 11 width 158.00: " bold tspan"
+        RenderSVGText {text} at (62,220) size 158x33 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInline {tref} at (0,0) size 158x33
+            RenderSVGInlineText {#text} at (0,-27) size 158x33
+              chunk 1 (end anchor) text run 1 at (62.00,220.00) startOffset 0 endOffset 13 width 158.00: "end text tref"
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+        RenderSVGText {text} at (-9,0) size 229x293 contains 0 chunk(s) [color=#0000FF]
+          RenderSVGTextPath {textPath} at (0,0) size 229x293
+            RenderSVGInlineText {#text} at (0,-27) size 229x293
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 27 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 27 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-04-b.svg b/LayoutTests/svg/text/text-align-04-b.svg
new file mode 100644 (file)
index 0000000..b2b3464
--- /dev/null
@@ -0,0 +1,87 @@
+<?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-textAnchor-BE-05.svg                                             -->
+<!-- renamed for 1.1 suite to text-align-02-f.svg                          -->
+<!-- renamed and split for svgt/b to text-align-04-b.svg                 -->
+<!--                                                                       -->
+<!-- Test viewer basic capability to handle 'text-anchor' property.        -->
+<!--                                                                       -->
+<!-- Author : Lofton Henderson, 05-aug-2000.                               -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  05-aug-2000, LH: Serial#1 created.                                   -->
+<!--  23-aug-2000, LH=" add test-body-content 'g'" ser#2                    -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-04-b.svg">
+            <Paragraph>
+                Test for viewer capibility to handle the basics of the 'textAnchor' 
+                alignment property for 'text' and related elements.
+            </Paragraph>
+            <Paragraph>
+                The second group from the top contains sub-tests to verify that the
+                interpreter handles text-anchor when the text is comprised of other 
+                text related elements, 'tspan', 'tref', and 'textPath'.  
+                The text-anchor property is present on the containing 'text' element
+                in these cases, not on the contained child elements.
+            </Paragraph>
+            <Paragraph>
+                The rendered picture should match the reference image, except for
+                possible variations in the text fonts and layout (per CSS2 rules).
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-04-b</title>
+   <desc id="test-desc">Test viewer basic capability to handle 'text-anchor' property.</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text x="5" y="40" font-family="Arial" font-size="40" fill="black" >Test of 'text-anchor'</text>
+            <defs>
+               <text id="tref-internal-reference">end text tref</text>
+               <path id="myPath" d="M -5 260 220 260"/>
+            </defs>
+
+      <text x="20" y="80" font-family="Arial" font-size="30" fill="black" >Tspan, tref, toap</text>
+            <!-- Test cases -->
+            <line x1="220" y1="120" x2="220" y2="260" stroke="red" />
+            <g font-family="Arial" font-size="30" fill="blue" >
+               <text x="220" y="140" text-anchor="start" >start text <tspan xml:space="preserve" fill="red" > red tspan</tspan></text>
+               <text x="220" y="180" text-anchor="middle" >middle text <tspan font-weight="bold"  xml:space="preserve"> bold tspan</tspan></text>
+               <text x="220" y="220" text-anchor="end" >
+                  <tref xlink:href="#tref-internal-reference"/>
+               </text>
+               <text text-anchor="end" >
+                  <textPath text-anchor="end"  startOffset="100%" xlink:href="#myPath">Text-anchor: end text on path</textPath>
+               </text>
+            </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-align-05-b-expected.checksum b/LayoutTests/svg/text/text-align-05-b-expected.checksum
new file mode 100644 (file)
index 0000000..eb7e2ce
--- /dev/null
@@ -0,0 +1 @@
+56fe9073442ccf4de3670b663c02b5e8
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-05-b-expected.png b/LayoutTests/svg/text/text-align-05-b-expected.png
new file mode 100644 (file)
index 0000000..99c33b9
Binary files /dev/null and b/LayoutTests/svg/text/text-align-05-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-05-b-expected.txt b/LayoutTests/svg/text/text-align-05-b-expected.txt
new file mode 100644 (file)
index 0000000..d146bb3
--- /dev/null
@@ -0,0 +1,31 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (8.33,6.67) size 775x528.33
+      RenderSVGText {text} at (5,40) size 465x44 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-36) size 465x44
+          chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 29 width 465.00: "Test 'text-anchor' (vertical)"
+      RenderSVGContainer {g} at (251.67,95) size 195x440
+        RenderSVGContainer {g} at (251.67,95) size 195x440 [transform={m=((1.00,0.00)(0.00,1.00)) t=(160.00,150.00)}]
+          RenderSVGContainer {g} at (251.67,245) size 20x290
+            RenderPath {circle} at (261.67,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+            RenderSVGText {text} at (-9,33) size 12x165 contains 1 chunk(s) [color=#FF0000]
+              RenderSVGInlineText {#text} at (0,-27) size 12x165
+                chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 5 height 165.00: "start"
+          RenderSVGContainer {g} at (328.33,95) size 43.33x330 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,0.00)}]
+            RenderPath {circle} at (345,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+            RenderSVGText {text} at (-13,-66) size 25x198 contains 1 chunk(s) [color=#008000]
+              RenderSVGInlineText {#text} at (0,-27) size 26x198
+                chunk 1 (middle anchor, vertical) text run 1 at (-12.50,-66.00) startOffset 0 endOffset 6 height 198.00: "middle"
+          RenderSVGContainer {g} at (418.33,95) size 28.33x165 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
+            RenderPath {circle} at (428.33,245) size 10x10 [fill={[type=SOLID] [color=#000000]}] [data="M3.00,0.00L2.99,0.19L2.98,0.38L2.95,0.56L2.91,0.75L2.85,0.93L2.79,1.10L2.71,1.28L2.63,1.45L2.53,1.61L2.43,1.76L2.31,1.91L2.19,2.05L2.05,2.19L1.91,2.31L1.76,2.43L1.61,2.53L1.45,2.63L1.28,2.71L1.10,2.79L0.93,2.85L0.75,2.91L0.56,2.95L0.38,2.98L0.19,2.99L0.00,3.00L-0.19,2.99L-0.38,2.98L-0.56,2.95L-0.75,2.91L-0.93,2.85L-1.10,2.79L-1.28,2.71L-1.45,2.63L-1.61,2.53L-1.76,2.43L-1.91,2.31L-2.05,2.19L-2.19,2.05L-2.31,1.91L-2.43,1.76L-2.53,1.61L-2.63,1.45L-2.71,1.28L-2.79,1.10L-2.85,0.93L-2.91,0.75L-2.95,0.56L-2.98,0.38L-2.99,0.19L-3.00,0.00L-2.99,-0.19L-2.98,-0.38L-2.95,-0.56L-2.91,-0.75L-2.85,-0.93L-2.79,-1.10L-2.71,-1.28L-2.63,-1.45L-2.53,-1.61L-2.43,-1.76L-2.31,-1.91L-2.19,-2.05L-2.05,-2.19L-1.91,-2.31L-1.76,-2.43L-1.61,-2.53L-1.45,-2.63L-1.28,-2.71L-1.10,-2.79L-0.93,-2.85L-0.75,-2.91L-0.56,-2.95L-0.38,-2.98L-0.19,-2.99L-0.00,-3.00L0.19,-2.99L0.38,-2.98L0.56,-2.95L0.75,-2.91L0.93,-2.85L1.10,-2.79L1.28,-2.71L1.45,-2.63L1.61,-2.53L1.76,-2.43L1.91,-2.31L2.05,-2.19L2.19,-2.05L2.31,-1.91L2.43,-1.76L2.53,-1.61L2.63,-1.45L2.71,-1.28L2.79,-1.10L2.85,-0.93L2.91,-0.75L2.95,-0.56L2.98,-0.38L2.99,-0.19"]
+            RenderSVGText {text} at (-9,-66) size 16x99 contains 1 chunk(s) [color=#0000FF]
+              RenderSVGInlineText {#text} at (0,-27) size 17x99
+                chunk 1 (end anchor, vertical) text run 1 at (-8.50,-66.00) startOffset 0 endOffset 3 height 99.00: "end"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 26 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 26 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-05-b.svg b/LayoutTests/svg/text/text-align-05-b.svg
new file mode 100644 (file)
index 0000000..9d6a816
--- /dev/null
@@ -0,0 +1,77 @@
+<?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-alignment-BE-11.svg                                              -->
+<!-- renamed for 1.1 suite to text-align-05-b.svg                          -->
+<!-- renamed and split for svgt/b to text-align-03-b-a.svg                 -->
+<!--                                                                       -->
+<!-- Test 'text-anchor' property (vertical).                               -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                    -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  06-Aug-2000, JF: 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 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-05-b.svg">
+            <Paragraph>
+                Test 'text-anchor' property (vertical).
+            </Paragraph>
+            <Paragraph>
+                This tests the three values for property 'text-anchor': start, middle and end.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-05-b</title>
+   <desc id="test-desc">Test 'text-anchor' property (vertical)</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text font-family="Arial" font-size="40"  x="5" y="40">Test 'text-anchor' (vertical)</text>
+                
+      <g writing-mode="tb" glyph-orientation-vertical="0" >
+         <g id="text-anchor" font-family="Arial" font-size="30"  transform="translate(160,150)">
+            <g transform="translate(0,0)">
+               <circle r="3"/>
+               <text text-anchor="start" fill="red" >start</text>
+            </g>
+            <g transform="translate(50,0)">
+               <circle r="3"/>
+               <text text-anchor="middle" fill="green" >middle</text>
+            </g>
+            <g transform="translate(100,0)">
+               <circle r="3"/>
+               <text text-anchor="end" fill="blue" >end</text>
+            </g>
+         </g>
+
+      </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-align-06-b-expected.checksum b/LayoutTests/svg/text/text-align-06-b-expected.checksum
new file mode 100644 (file)
index 0000000..106628b
--- /dev/null
@@ -0,0 +1 @@
+c7b1b273333e0c4cd36de5b8b15c6b55
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-align-06-b-expected.png b/LayoutTests/svg/text/text-align-06-b-expected.png
new file mode 100644 (file)
index 0000000..0d3c4a6
Binary files /dev/null and b/LayoutTests/svg/text/text-align-06-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-align-06-b-expected.txt b/LayoutTests/svg/text/text-align-06-b-expected.txt
new file mode 100644 (file)
index 0000000..7d39812
--- /dev/null
@@ -0,0 +1,54 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0,0.83) size 801.67x604.17
+    RenderSVGContainer {g} at (0,6.67) size 801.67x598.33
+      RenderSVGText {text} at (0,40) size 481x44 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-36) size 481x44
+          chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 31 width 481.00: "Test 'baseline-shift' (vertic.)"
+      RenderSVGContainer {g} at (135,110) size 483.33x495
+        RenderSVGContainer {g} at (135,110) size 483.33x495 [transform={m=((1.00,0.00)(0.00,1.00)) t=(90.00,60.00)}]
+          RenderSVGText {text} at (-9,33) size 23x165 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-27) size 21x66
+              chunk 1 (vertical) text run 1 at (-8.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
+            RenderSVGTSpan {tspan} at (0,0) size 16x33 [color=#FF0000]
+              RenderSVGInlineText {#text} at (7,39) size 17x33
+                chunk 1 (vertical) text run 2 at (-1.50,99.00) startOffset 0 endOffset 1 height 33.00: "7"
+            RenderSVGInlineText {#text} at (1,72) size 11x66
+              chunk 1 (vertical) text run 3 at (-7.50,132.00) startOffset 0 endOffset 2 height 66.00: "xt"
+          RenderSVGText {text} at (45,33) size 48x264 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (26,-27) size 21x66
+              chunk 1 (vertical) text run 1 at (71.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
+            RenderSVGTSpan {tspan} at (0,0) size 36x132 [color=#FF0000]
+              RenderSVGInlineText {#text} at (0,39) size 35x132
+                chunk 1 (vertical) text run 2 at (45.50,99.00) startOffset 0 endOffset 4 height 132.00: "-70%"
+            RenderSVGInlineText {#text} at (27,171) size 11x66
+              chunk 1 (vertical) text run 3 at (72.50,231.00) startOffset 0 endOffset 2 height 66.00: "xt"
+          RenderSVGText {text} at (155,33) size 38x231 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (16,-27) size 21x66
+              chunk 1 (vertical) text run 1 at (171.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
+            RenderSVGTSpan {tspan} at (0,0) size 18x99 [color=#FF0000]
+              RenderSVGInlineText {#text} at (0,39) size 18x99
+                chunk 1 (vertical) text run 2 at (155.00,99.00) startOffset 0 endOffset 3 height 99.00: "sub"
+            RenderSVGTSpan {tspan} at (0,0) size 15x33 [color=#0000FF]
+              RenderSVGInlineText {#text} at (17,138) size 15x33
+                chunk 1 (vertical) text run 3 at (172.50,198.00) startOffset 0 endOffset 1 height 33.00: "x"
+            RenderSVGInlineText {#text} at (21,171) size 8x33
+              chunk 1 (vertical) text run 4 at (176.00,231.00) startOffset 0 endOffset 1 height 33.00: "t"
+          RenderSVGText {text} at (251,33) size 30x297 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-27) size 21x66
+              chunk 1 (vertical) text run 1 at (251.50,33.00) startOffset 0 endOffset 2 height 66.00: "te"
+            RenderSVGTSpan {tspan} at (0,0) size 13x165 [color=#008000]
+              RenderSVGInlineText {#text} at (17,39) size 13x165
+                chunk 1 (vertical) text run 2 at (268.00,99.00) startOffset 0 endOffset 5 height 165.00: "super"
+            RenderSVGTSpan {tspan} at (0,0) size 15x33 [color=#0000FF]
+              RenderSVGInlineText {#text} at (1,204) size 15x33
+                chunk 1 (vertical) text run 3 at (252.50,264.00) startOffset 0 endOffset 1 height 33.00: "x"
+            RenderSVGInlineText {#text} at (5,237) size 8x33
+              chunk 1 (vertical) text run 4 at (256.00,297.00) startOffset 0 endOffset 1 height 33.00: "t"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 26 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 26 {svg} of document
diff --git a/LayoutTests/svg/text/text-align-06-b.svg b/LayoutTests/svg/text/text-align-06-b.svg
new file mode 100644 (file)
index 0000000..9d34fdb
--- /dev/null
@@ -0,0 +1,68 @@
+<?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-alignment-BE-11.svg                                              -->
+<!-- renamed for 1.1 suite to text-align-06-b.svg                          -->
+<!-- renamed and split for svgt/b to text-align-03-b-b.svg                 -->
+<!--                                                                       -->
+<!-- Test the 'baseline-shift' property (vertical).                        -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                    -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  06-Aug-2000, JF: 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 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 480 360" version="1.1" baseProfile="basic">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+<!--nav data here-->
+      <OperatorScript version="$Revision: 1.5 $" testname="text-align-06-b.svg">
+            <Paragraph>
+                Test 'text-anchor' property (vertical).
+            </Paragraph>
+            <Paragraph>
+                This tests the three values for property 'text-anchor': start, middle and end.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+
+   <title id="test-title">text-align-06-b</title>
+   <desc id="test-desc">Test 'baseline-shift' property (vertical)</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content">
+      <text font-family="Arial" font-size="40"  x="0" y="40">Test 'baseline-shift' (vertic.)</text>
+                
+      <g writing-mode="tb" glyph-orientation-vertical="0" >
+         <g id="baseline-shift" font-family="Arial" font-size="30"  transform="translate(90,60)">
+                     <text x="0">te<tspan baseline-shift="7" fill="red" >7</tspan>xt</text>
+                     <text x="80">te<tspan baseline-shift="-70%" fill="red" >-70%</tspan>xt</text>
+                     <text x="180">te<tspan baseline-shift="sub" fill="red" >sub</tspan><tspan baseline-shift="baseline" fill="blue" >x</tspan>t</text>
+                     <text x="260">te<tspan baseline-shift="super" fill="green" >super</tspan><tspan baseline-shift="baseline" fill="blue" >x</tspan>t</text>
+         </g>
+      </g>
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-altglyph-01-b-expected.checksum b/LayoutTests/svg/text/text-altglyph-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..17ba0f2
--- /dev/null
@@ -0,0 +1 @@
+6e47249c1601a74c4aa4746baf61a996
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-altglyph-01-b-expected.png b/LayoutTests/svg/text/text-altglyph-01-b-expected.png
new file mode 100644 (file)
index 0000000..eac0395
Binary files /dev/null and b/LayoutTests/svg/text/text-altglyph-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-altglyph-01-b-expected.txt b/LayoutTests/svg/text/text-altglyph-01-b-expected.txt
new file mode 100644 (file)
index 0000000..c3870f0
--- /dev/null
@@ -0,0 +1,26 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (8.33,23.33) size 775x460
+      RenderSVGText {text} at (5,50) size 403x44 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-36) size 403x44
+          chunk 1 text run 1 at (5.00,50.00) startOffset 0 endOffset 26 width 403.00: "Test 'altGlyph' facilities"
+      RenderSVGText {text} at (5,90) size 463x33 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-27) size 463x33
+          chunk 1 text run 1 at (5.00,90.00) startOffset 0 endOffset 32 width 463.00: "and many-to-many chars to glyphs"
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGContainer {g} at (75,308.33) size 708.33x175
+        RenderSVGText {text}
+        RenderSVGText {text} at (50,270) size 43x69 contains 1 chunk(s) [color=#008000]
+          RenderSVGInlineText {#text} at (0,-54) size 43x69
+            chunk 1 text run 1 at (50.00,270.00) startOffset 0 endOffset 1 width 43.00: "D"
+        RenderSVGText {text} at (280,270) size 185x69 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-54) size 185x69
+            chunk 1 text run 1 at (280.00,270.00) startOffset 0 endOffset 5 width 185.00: "SASSY"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 31 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 31 {svg} of document
diff --git a/LayoutTests/svg/text/text-altglyph-01-b.svg b/LayoutTests/svg/text/text-altglyph-01-b.svg
new file mode 100644 (file)
index 0000000..61d94ea
--- /dev/null
@@ -0,0 +1,135 @@
+<?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-altGlyph-BE-07.svg                                               -->
+<!-- renamed for 1.1 suite to text-altglyph-01-f.svg                       -->
+<!-- renamed for svgt/b to text-altglyph-01-b.svg                          -->
+<!--                                                                       -->
+<!-- Test 'altGlyph' facilities and many-to-many chars to glyphs.          -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 05-Aug-2000                                    -->
+<!-- 1.1 revision by Vincent Hardy                                         -->
+<!-- Revised for svgt/b: Ola Andersson Jun/26/2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  05-Aug-2000, JF: Serial#1 created.                                   -->
+<!--  30-Oct-2000, JF: Fix many, many bugs in test case.                   -->
+<!--                   Update baseline names to match new spec.            -->
+<!--                   Update to serial#=2.                                -->
+<!--  07-Dec-2000, JF: Pretty formatted broke the test by introducing      -->
+<!--                   undesirable white space. I removed the white space. -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
+<!--= log messages, and therefore is no longer in the preceding preamble.=-->
+<!--======================================================================-->
+<svg 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 480 360" version="1.1" baseProfile="basic">
+    <!--SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+      <OperatorScript version="$Revision: 1.5 $" testname="text-altglyph-01-b.svg">
+            <Paragraph>
+                Test 'altGlyph' facilities and many-to-many chars to glyphs.
+            </Paragraph>
+            <Paragraph>
+                Three text strings show: the word "HAPPY" in red, the word "SAD" in green
+                and the word "SASSY" in blue.
+            </Paragraph>
+            <Paragraph>
+                The "HAPPY" and "SAD" strings test the 'altGlyph' facility and
+                the ability to map multiple glyphs to a single character.
+                All characters except the "D" are bracketed by 'altGlyph' elements
+                to use two different glyphs to render each character.
+                For "HAPPY", the horizontal stroke through the center of the characters
+                is a smile stroke.
+                For "SAD", the horizontal stroke through the center of the characters
+                is a frown stroke.
+            </Paragraph>
+            <Paragraph>
+                The "SASSY" string tests a single glyph representing multiple characters
+                (a ligature). The SVG font in the test case contains an "SS" ligature
+                so that the "SS" in "SASSY" is rendered with a single glyph, where
+                the two parts of the "SS" are connected.
+            </Paragraph>
+            <Paragraph>
+                This test requires some support for SVG fonts.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase-->
+
+   <title id="test-title">text-altglyph-01-b</title>
+   <desc id="test-desc">Test 'altGlyph' facilities and many-to-many chars to glyphs.</desc>
+   <!--======================================================================-->
+   <!--Content of Test Case follows...                  =====================-->
+   <!--======================================================================-->
+   <g id="test-body-content" stroke-miterlimit="4" >
+      <text font-family="Arial" font-size="40" x="5" y="50">Test 'altGlyph' facilities</text>
+      <text font-family="Arial" font-size="30" x="5" y="90">and many-to-many chars to glyphs</text>
+      <defs>
+         <font id="Font1" horiz-adv-x="5">
+            <font-face font-family="HappySad" font-weight="bold" font-style="normal" units-per-em="8" cap-height="8" x-height="4" ascent="8" descent="2" alphabetic="0" mathematical="4" ideographic="-2" hanging="8"/>
+            <missing-glyph d="M1,3h2v2h-2z"/>
+            <glyph id="A1" d="M0,0 L2,8 L4,0 M0,4 C1,3 3,3 4,4"/>
+            <glyph id="H1" d="M0,0 V8 M4,0 V8 M0,4 C1,3 3,3 4,4"/>
+            <glyph id="P1" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,3 3,3 4,4"/>
+            <glyph id="S1" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6                       M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,3 3,3 4,4"/>
+            <glyph id="Y1" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,3 3,3 4,4"/>
+            <glyph id="A2" d="M0,0 L2,8 L4,0 M0,4 C1,5 3,5 4,4"/>
+            <glyph id="H2" d="M0,0 V8 M4,0 V8 M0,4 C1,5 3,5 4,4"/>
+            <glyph id="P2" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,5 3,5 4,4"/>
+            <glyph id="S2" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6                       M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,5 3,5 4,4"/>
+            <glyph id="Y2" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,5 3,5 4,4"/>
+            <glyph id="SS" unicode="SS" horiz-adv-x="6" d="                     M0,4 V6 C0,7 0,8 1,8 C2,8 2,7 2,6                     M2,4 V2 C2,1 2,0 1,0 C0,0 0,1 0,2                     M3,4 V6 C3,7 3,8 4,8 C5,8 5,7 5,6                     M5,4 V2 C5,1 5,0 4,0 C3,0 3,1 3,2                     M0,4 H5                       "/>
+            <glyph id="A" unicode="A" d="M0,0 L2,8 L4,0 M0,4 H4"/>
+            <glyph id="D" unicode="D" d="M0,0 V8 C3,8 4,7 4,4 C4,1 3,0 0,0z"/>
+            <glyph id="S" unicode="S" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6                       M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 H4"/>
+            <glyph id="Y" unicode="Y" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 H4"/>
+                     </font>
+         <altGlyphDef id="Afrown">
+            <glyphRef xlink:href="#A2"/>
+         </altGlyphDef>
+         <altGlyphDef id="Asmile">
+            <glyphRef xlink:href="#A1"/>
+         </altGlyphDef>
+         <altGlyphDef id="Hsmile">
+            <glyphRef xlink:href="#H1"/>
+         </altGlyphDef>
+         <altGlyphDef id="Psmile">
+            <glyphRef xlink:href="#P1"/>
+         </altGlyphDef>
+         <altGlyphDef id="Sfrown">
+            <glyphRef xlink:href="#S2"/>
+         </altGlyphDef>
+         <altGlyphDef id="Ysmile">
+            <glyphRef xlink:href="#Y1"/>
+         </altGlyphDef>
+      </defs>
+      <g font-family="HappySad" font-size="60" fill="none" stroke-width="5" >
+         <text x="140" y="190" stroke="red" >
+<altGlyph xlink:href="#Hsmile">H</altGlyph>
+<altGlyph xlink:href="#Asmile">A</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Ysmile">Y</altGlyph>
+         </text>
+         <text x="50" y="270" stroke="green" ><altGlyph xlink:href="#Sfrown">S</altGlyph><altGlyph xlink:href="#Afrown">A</altGlyph>D</text>
+         <text x="280" y="270" stroke="blue" >SASSY</text>
+      </g>
+
+   </g>
+   <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+   <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-deco-01-b-expected.checksum b/LayoutTests/svg/text/text-deco-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..b6bf6eb
--- /dev/null
@@ -0,0 +1 @@
+eb2f0f20402786e382d2a996bfa88eb8
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-deco-01-b-expected.png b/LayoutTests/svg/text/text-deco-01-b-expected.png
new file mode 100644 (file)
index 0000000..c72fdc2
Binary files /dev/null and b/LayoutTests/svg/text/text-deco-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-deco-01-b-expected.txt b/LayoutTests/svg/text/text-deco-01-b-expected.txt
new file mode 100644 (file)
index 0000000..5b2f279
--- /dev/null
@@ -0,0 +1,49 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (16.67,10) size 629.17x457.50
+      RenderSVGText {text} at (10,20) size 150x17 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-14) size 150x17
+          chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 23 width 150.00: "Test 'text-decoration'."
+      RenderSVGContainer {g} at (40.83,70.83) size 605x396.67
+        RenderSVGText {text} at (25,65) size 122x27 contains 1 chunk(s) [color=#FF0000]
+          RenderSVGInlineText {#text} at (0,-22) size 122x27
+            chunk 1 text run 1 at (25.00,65.00) startOffset 0 endOffset 11 width 122.00: "Normal text"
+        RenderSVGText {text} at (25,135) size 227x27 contains 1 chunk(s) [color=#FF0000]
+          RenderSVGInlineText {#text} at (0,-22) size 227x27
+            chunk 1 text run 1 at (25.00,135.00) startOffset 0 endOffset 22 width 227.00: "Text with line-through"
+        RenderSVGText {text} at (25,205) size 159x27 contains 1 chunk(s) [color=#FF0000]
+          RenderSVGInlineText {#text} at (0,-22) size 159x27
+            chunk 1 text run 1 at (25.00,205.00) startOffset 0 endOffset 15 width 159.00: "Underlined text"
+        RenderSVGText {text} at (25,275) size 362x27 contains 1 chunk(s) [color=#FF0000]
+          RenderSVGTSpan {tspan} at (0,0) size 45x27
+            RenderSVGInlineText {#text} at (0,-22) size 45x27
+              chunk 1 text run 1 at (25.00,275.00) startOffset 0 endOffset 3 width 45.00: "One"
+          RenderSVGInlineText {#text} at (45,-22) size 7x27
+            chunk 1 text run 2 at (70.00,275.00) startOffset 0 endOffset 1 width 7.00: " "
+          RenderSVGTSpan {tspan} at (0,0) size 51x27 [color=#FF00FF]
+            RenderSVGInlineText {#text} at (52,-22) size 51x27
+              chunk 1 text run 3 at (77.00,275.00) startOffset 0 endOffset 4 width 51.00: "word"
+          RenderSVGInlineText {#text} at (103,-22) size 7x27
+            chunk 1 text run 4 at (128.00,275.00) startOffset 0 endOffset 1 width 7.00: " "
+          RenderSVGTSpan {tspan} at (0,0) size 38x27 [color=#000000]
+            RenderSVGInlineText {#text} at (110,-22) size 38x27
+              chunk 1 text run 5 at (135.00,275.00) startOffset 0 endOffset 3 width 38.00: "has"
+          RenderSVGInlineText {#text} at (148,-22) size 7x27
+            chunk 1 text run 6 at (173.00,275.00) startOffset 0 endOffset 1 width 7.00: " "
+          RenderSVGTSpan {tspan} at (0,0) size 86x27 [color=#008800]
+            RenderSVGInlineText {#text} at (155,-22) size 86x27
+              chunk 1 text run 7 at (180.00,275.00) startOffset 0 endOffset 9 width 86.00: "different"
+          RenderSVGInlineText {#text} at (241,-22) size 7x27
+            chunk 1 text run 8 at (266.00,275.00) startOffset 0 endOffset 1 width 7.00: " "
+          RenderSVGTSpan {tspan} at (0,0) size 114x27 [color=#0000FF]
+            RenderSVGInlineText {#text} at (248,-22) size 114x27
+              chunk 1 text run 9 at (273.00,275.00) startOffset 0 endOffset 11 width 114.00: "underlining"
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.9 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 13 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 13 {svg} of document
diff --git a/LayoutTests/svg/text/text-deco-01-b.svg b/LayoutTests/svg/text/text-deco-01-b.svg
new file mode 100644 (file)
index 0000000..f16bcdc
--- /dev/null
@@ -0,0 +1,69 @@
+<?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-decoration-BE-12.svg                                            -->
+<!-- renamed for 1.1 suite to text-deco-01-b.svg                          -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                   -->
+<!--          1.1 revision by Rick Graham                                 -->
+<!-- Revised for Mobile Profiles: Jun Fujisawa 16-Jul-2002                -->
+<!--======================================================================-->
+<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 480 360">
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.9 $" testname="text-deco-01-b.svg">
+                       <Paragraph>
+                               Test 'text-decoration'.
+                       </Paragraph>
+                       <Paragraph>
+                               The first line has no decoration.
+                       </Paragraph>
+                       <Paragraph>
+                               The second line has a line through it.                  
+                       </Paragraph>
+                       <Paragraph>
+                               The third line is underlined.                   
+                       </Paragraph>
+                       <Paragraph>
+                               The fourth line has a blue underline with a red border under
+                               most characters, except the word "different" has a yellow underline
+                               with a green border, in the same manner as the word "different" is rendered.
+                       </Paragraph>
+               </OperatorScript>
+       </SVGTestCase>
+       <title id="test-title">text-deco-01-b.svg</title>
+       <desc id="test-desc">Test 'text-decoration'.</desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content">
+               <text font-family="Arial" font-size="16" x="10" y="20">Test 'text-decoration'.</text>
+               <g font-family="Arial" font-size="24" fill="blue" stroke="red" stroke-width=".5">
+                       <text x="25" y="65">Normal text</text>
+                       <text x="25" y="135" text-decoration="line-through">Text with line-through</text>
+                       <text x="25" y="205" text-decoration="underline">Underlined text</text>
+                       <!-- START OF PATCH CODE, which is commented out
+    <text x="25" y="345" text-decoration="underline"  xml:space="preserve">One word has different underlining</text>
+    <rect x="25" y="275" width="1000" height="70" stroke="none" fill="white" />
+END OF PATCH CODE, which is commented out -->
+                       <text x="25" y="275" text-decoration="underline">
+                               <tspan>One</tspan>
+                               <tspan fill="yellow" stroke="#F0F">word</tspan>
+                               <tspan fill="yellow" stroke="#000">has</tspan>
+                               <tspan fill="yellow" stroke="#080" text-decoration="underline">different</tspan>
+                               <tspan fill="yellow" stroke="#00F">underlining</tspan>
+                       </text>
+               </g>
+       </g>
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-fonts-01-t-expected.checksum b/LayoutTests/svg/text/text-fonts-01-t-expected.checksum
new file mode 100644 (file)
index 0000000..4c6f43c
--- /dev/null
@@ -0,0 +1 @@
+c80a5e85745b732e468da13f0db9d963
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-fonts-01-t-expected.png b/LayoutTests/svg/text/text-fonts-01-t-expected.png
new file mode 100644 (file)
index 0000000..de94a33
Binary files /dev/null and b/LayoutTests/svg/text/text-fonts-01-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-fonts-01-t-expected.txt b/LayoutTests/svg/text/text-fonts-01-t-expected.txt
new file mode 100644 (file)
index 0000000..3bd4fdb
--- /dev/null
@@ -0,0 +1,34 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (33.33,46.67) size 510x446.67
+      RenderSVGContainer {g} at (33.33,46.67) size 510x446.67
+        RenderSVGText {text} at (20,80) size 198x27 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-22) size 198x27
+            chunk 1 text run 1 at (20.00,80.00) startOffset 0 endOffset 17 width 198.00: "A serifed face \x{753B}\x{50CF}"
+        RenderSVGText {text} at (20,160) size 233x27 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-22) size 233x27
+            chunk 1 text run 1 at (20.00,160.00) startOffset 0 endOffset 20 width 233.00: "A sans-serif face \x{753B}\x{50CF}"
+        RenderSVGText {text} at (20,240) size 286x27 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-20) size 286x27
+            chunk 1 text run 1 at (20.00,240.00) startOffset 0 endOffset 19 width 286.00: "A mono (iW) face \x{753B}\x{50CF}"
+        RenderSVGContainer {g} at (66.67,46.67) size 476.67x313.33
+          RenderSVGText {text} at (40,50) size 190x28 contains 1 chunk(s) [color=#800000]
+            RenderSVGInlineText {#text} at (0,-22) size 190x28
+              chunk 1 text run 1 at (40.00,50.00) startOffset 0 endOffset 17 width 190.00: "A serifed face \x{753B}\x{50CF}"
+          RenderSVGText {text} at (40,130) size 233x28 contains 1 chunk(s) [color=#800000]
+            RenderSVGInlineText {#text} at (0,-22) size 233x28
+              chunk 1 text run 1 at (40.00,130.00) startOffset 0 endOffset 20 width 233.00: "A sans-serif face \x{753B}\x{50CF}"
+          RenderSVGText {text} at (40,210) size 286x28 contains 1 chunk(s) [color=#800000]
+            RenderSVGInlineText {#text} at (0,-22) size 286x28
+              chunk 1 text run 1 at (40.00,210.00) startOffset 0 endOffset 19 width 286.00: "A mono (iW) face \x{753B}\x{50CF}"
+        RenderSVGText {text} at (40,290) size 224x28 contains 1 chunk(s) [color=#008000]
+          RenderSVGInlineText {#text} at (0,-22) size 224x28
+            chunk 1 text run 1 at (40.00,290.00) startOffset 0 endOffset 22 width 224.00: "This must be displayed"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.5 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 1 {g} of child 13 {g} of child 33 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 33 {svg} of document
diff --git a/LayoutTests/svg/text/text-fonts-01-t.svg b/LayoutTests/svg/text/text-fonts-01-t.svg
new file mode 100644 (file)
index 0000000..da26d92
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.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-font-BE-15.svg                                                  -->
+<!-- renamed for 1.1 suite to text-fonts-01-t.svg                         -->
+<!--                                                                      -->
+<!-- Test that viewer has the basic capability to handle font             -->
+<!-- families, both generic and named fonts   WORKS CSIRO                 -->
+<!--                                                                      -->
+<!-- Author : Chris Lilley,  01-Mar-2000                                  -->
+<!--          1.1 revision by Rick Graham                                 -->
+<!-- Revised for Mobile Profiles: Jun Fujisawa 16-Jul-2002                -->
+<!--                                                                      -->
+<!-- History:                                                             -->
+<!--   01-Mar-2000, CL, Serial#1 created.  Matches 20000110 SVG spec.     -->
+<!--   09-Mar-2000, CL, altered 449 to 448 for outline box                -->
+<!--   22-Mar-2000, CL, adjusted japanese text so it says japanese        -->
+<!--                     word for "graphic image" (gazou), ser#2          -->
+<!--   17-Aug-2000, CL, updated to 20000802 dtd, ser#3                    -->
+<!--   21-Aug-2000, LH, renamed for integration.                          -->
+<!--  14-Nov-2000, LH: move defs into test-body-content.                  -->
+<!--  26-Nov-2000, LH: put class "foo" back onto text elts group.         -->
+<!--  07-Dec-2000, JF: Remove 'd' from 'monospaced'                       -->
+<!-- =====================================================================-->
+<!--======================================================================-->
+<!--= 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="tiny" 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 480 360">
+    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.5 $" testname="text-fonts-01-t.svg">
+                       <Paragraph>
+                               Purpose of test is to determine if the font family is being
+                               correctly selected. The top two lines of text test serif fonts; 
+                               the top line in maroon tests the generic font family 'serif' 
+                               and the second line in black tests a selection of commonly 
+                               available named serif fonts. The next two lines of text test 
+                               sans-serif fonts; 
+                               the top line in maroon tests the generic font family 'sans-serif' 
+                               and the second line in black tests a selection of commonly 
+                               available named sans serif fonts. The following two lines 
+                               of text test monospaced fonts; 
+                               the top line in maroon tests the generic font family 'monospaced' 
+                               and the second line in black tests a selection of commonly 
+                               available named monospaced fonts. The lowercase 'i' and uppercase'W' 
+                               should be the same width,for monospaced fonts.
+                       </Paragraph>
+                       <Paragraph>
+                               The seventh line of text, in green, tests for 
+                               three non-existent fonts (nonsense names). There is no fallback 
+                               generic font specified. The text must be displayed anyway.
+                       </Paragraph>
+                       <Paragraph>
+                               The first six lines contain two Japanese characters (&#x753B;&#x50CF;)
+                               at the end of the line. Both of these characters must be displayed, 
+                               although it is compliant to display them with the 'missing glyph' 
+                               if no suitable font containing Japanese characters can be found.
+                               Most but not all fonts have a visible missing glyph character.
+                               If the selected font has a visible missing glyph character, it should appear
+                               wherever the corresponding glyph is not available.
+                       <!-- can also be used for copy and paste tests; correct characters 
+                       to be pasted even if displayed with missing glyph -->
+                       </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+       <title id="test-title">text-fonts-01-t.svg</title>
+       <desc id="test-desc">
+Test that viewer has the basic capability to handle different font families </desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content">
+               <g font-weight="normal" font-size="24" stroke="none">
+                       <text font-family="Georgia, 'Minion Web', 'Times New Roman', Times, 'MS PMincho', Heisei-Mincho, serif " x="20" y="80">A serifed face 画像</text>
+                       <text font-family="Arial, 'Arial Unicode', 'Myriad Web', Geneva, 'Lucida Sans Unicode', 'MS PGothic', Osaka, sans-serif " x="20" y="160">A sans-serif face 画像</text>
+                       <text font-family="'Lucida Console', 'Courier New', Courier, Monaco, 'MS Gothic', Osaka-Mono, monospace" x="20" y="240">A mono (iW) face 画像</text>
+                       <g id="generic" fill="maroon">
+                               <text font-family="serif" x="40" y="50">A serifed face 画像</text>
+                               <text font-family="sans-serif " x="40" y="130">A sans-serif face 画像</text>
+                               <text font-family="monospace " x="40" y="210">A mono (iW) face 画像</text>
+                       </g>
+                       <text fill="green" font-family="'No such font at all', 'another fictitious one', sillynamewithoutspaces" x="40" y="290">This must be displayed</text>
+               </g>
+       </g>
+
+
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.5 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-fonts-02-t-expected.checksum b/LayoutTests/svg/text/text-fonts-02-t-expected.checksum
new file mode 100644 (file)
index 0000000..49a6ef0
--- /dev/null
@@ -0,0 +1 @@
+81d9ef9cebbbcd20545d94f0f37f8e36
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-fonts-02-t-expected.png b/LayoutTests/svg/text/text-fonts-02-t-expected.png
new file mode 100644 (file)
index 0000000..fd911a2
Binary files /dev/null and b/LayoutTests/svg/text/text-fonts-02-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-fonts-02-t-expected.txt b/LayoutTests/svg/text/text-fonts-02-t-expected.txt
new file mode 100644 (file)
index 0000000..f9458a8
--- /dev/null
@@ -0,0 +1,52 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (100,36.67) size 603.33x525
+      RenderSVGText {text} at (360,50) size 49x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 49x35
+          chunk 1 text run 1 at (360.00,50.00) startOffset 0 endOffset 3 width 49.00: "100"
+      RenderSVGText {text} at (360,85) size 53x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 53x35
+          chunk 1 text run 1 at (360.00,85.00) startOffset 0 endOffset 3 width 53.00: "200"
+      RenderSVGText {text} at (360,120) size 53x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 53x35
+          chunk 1 text run 1 at (360.00,120.00) startOffset 0 endOffset 3 width 53.00: "300"
+      RenderSVGText {text} at (360,155) size 53x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 53x35
+          chunk 1 text run 1 at (360.00,155.00) startOffset 0 endOffset 3 width 53.00: "400"
+      RenderSVGText {text} at (360,190) size 52x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 52x35
+          chunk 1 text run 1 at (360.00,190.00) startOffset 0 endOffset 3 width 52.00: "500"
+      RenderSVGText {text} at (360,225) size 61x35 contains 1 chunk(s) [color=#008000]
+        RenderSVGInlineText {#text} at (0,-28) size 61x35
+          chunk 1 text run 1 at (360.00,225.00) startOffset 0 endOffset 3 width 61.00: "600"
+      RenderSVGText {text} at (360,260) size 59x35 contains 1 chunk(s) [color=#008000]
+        RenderSVGInlineText {#text} at (0,-28) size 59x35
+          chunk 1 text run 1 at (360.00,260.00) startOffset 0 endOffset 3 width 59.00: "700"
+      RenderSVGText {text} at (360,295) size 62x35 contains 1 chunk(s) [color=#008000]
+        RenderSVGInlineText {#text} at (0,-28) size 62x35
+          chunk 1 text run 1 at (360.00,295.00) startOffset 0 endOffset 3 width 62.00: "800"
+      RenderSVGText {text} at (360,330) size 61x35 contains 1 chunk(s) [color=#008000]
+        RenderSVGInlineText {#text} at (0,-28) size 61x35
+          chunk 1 text run 1 at (360.00,330.00) startOffset 0 endOffset 3 width 61.00: "900"
+      RenderSVGText {text} at (60,80) size 177x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 177x35
+          chunk 1 text run 1 at (60.00,80.00) startOffset 0 endOffset 12 width 177.00: "This is bold"
+      RenderSVGText {text} at (60,130) size 190x35 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 190x35
+          chunk 1 text run 1 at (60.00,130.00) startOffset 0 endOffset 14 width 190.00: "This is normal"
+      RenderSVGContainer {g} at (100,253.33) size 355x58.33
+        RenderSVGText {text} at (60,180) size 213x35 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-28) size 213x35
+            chunk 1 text run 1 at (60.00,180.00) startOffset 0 endOffset 14 width 213.00: "Blue is bolder"
+      RenderSVGContainer {g} at (100,336.67) size 306.67x58.33
+        RenderSVGText {text} at (60,230) size 184x35 contains 1 chunk(s) [color=#0000FF]
+          RenderSVGInlineText {#text} at (0,-28) size 184x35
+            chunk 1 text run 1 at (60.00,230.00) startOffset 0 endOffset 15 width 184.00: "Blue is lighter"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.7 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 16 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 16 {svg} of document
diff --git a/LayoutTests/svg/text/text-fonts-02-t.svg b/LayoutTests/svg/text/text-fonts-02-t.svg
new file mode 100644 (file)
index 0000000..5b551a6
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.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-font-BE-16.svg                                                   -->
+<!-- renamed for 1.1 suite to text-fonts-02-t.svg                                -->
+<!--                                                                       -->
+<!-- Author : Chris lilley,  01-Mar-2000                                   -->
+<!--          1.1 revision by Rick Graham                                  -->
+<!-- Revised for SVGT/B : Mathias Larsson Carlander Jul/1/2002               -->
+<!-- further revised Chris Lilley 23 Oct 2002 -->
+<!--======================================================================-->
+<svg version="1.1" baseProfile="tiny" 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 480 360">
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.7 $" testname="text-fonts-02-t.svg">
+                       <Paragraph>
+                               Purpose of test is to determine if the font weight is being
+  correctly rendered. A number of font families are specified. The
+  numerical weight values (100 to 900) should show the lighter weights
+  on the lower numbers and the heavier weights on the larger numbers.
+  Heavier is defined to mean 'no lighter'.
+                       </Paragraph>
+                       <Paragraph>
+                       If only one font weight is available, they should all display at the
+  same weight. The transition from black to green figures shows the
+  correct light to bold transition for the common case where two
+  weights are available. If three or more weights are available, see
+  the CSS2 specification for how these are allocated to the nine
+  weight numbers.
+                       </Paragraph>
+                       <Paragraph>
+                               The absolute keywords 'normal' and bold' are tested 
+                               by the first two lines on the right hand side of the test, 
+                               the third line of text tests the to 'bolder' 
+                               relative keyword and the fourth tests the 
+                               'lighter' relative keyword.
+                       </Paragraph>
+               </OperatorScript>
+       </SVGTestCase>
+       <title id="test-title">text-fonts-02-t.svg</title>
+       <desc id="test-desc">
+Test that viewer has the basic capability to handle different font weights </desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content" font-family="Georgia, 'Times New Roman', Times,  'MS Mincho', serif" font-size="30">
+               <text font-weight="100" x="360" y="50">100</text>
+               <text font-weight="200" x="360" y="85">200</text>
+               <text font-weight="300" x="360" y="120">300</text>
+               <text font-weight="400" x="360" y="155">400</text>
+               <text font-weight="500" x="360" y="190">500</text>
+               <text fill="green" font-weight="600" x="360" y="225">600</text>
+               <text fill="green" font-weight="700" x="360" y="260">700</text>
+               <text fill="green" font-weight="800" x="360" y="295">800</text>
+               <text fill="green" font-weight="900" x="360" y="330">900</text>
+               <text font-weight="bold" x="60" y="80">This is bold</text>
+               <text font-weight="normal" x="60" y="130">This is normal</text>
+               <g font-weight="normal" fill="blue">
+                       <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+               </g>
+               <g font-weight="bold" fill="blue">
+                       <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+               </g>
+       </g>
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.7 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-intro-05-t-expected.checksum b/LayoutTests/svg/text/text-intro-05-t-expected.checksum
new file mode 100644 (file)
index 0000000..9792328
--- /dev/null
@@ -0,0 +1 @@
+0d022ea68455f6579e9a15c7f7f20183
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-intro-05-t-expected.png b/LayoutTests/svg/text/text-intro-05-t-expected.png
new file mode 100644 (file)
index 0000000..426703d
Binary files /dev/null and b/LayoutTests/svg/text/text-intro-05-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-intro-05-t-expected.txt b/LayoutTests/svg/text/text-intro-05-t-expected.txt
new file mode 100644 (file)
index 0000000..52a969c
--- /dev/null
@@ -0,0 +1,20 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 989.17x598.33
+    RenderSVGContainer {g} at (80,86.67) size 910x326.67
+      RenderSVGText {text} at (119,80) size 458x36 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 458x36
+          chunk 1 (end anchor) text run 1 at (119.00,80.00) startOffset 0 endOffset 37 width 341.00 RTL: "\x{644}\x{645}\x{627}\x{630}\x{627} \x{644}\x{627} \x{64A}\x{62A}\x{643}\x{644}\x{645}\x{648}\x{646} \x{627}\x{644}\x{644}\x{651}\x{63A}\x{629} \x{627}\x{644}\x{639}\x{631}\x{628}\x{64A}\x{629} \x{641}\x{62D}\x{633}\x{628}\x{61F}"
+      RenderSVGText {text} at (48,160) size 546x41 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-32) size 546x41
+          chunk 1 (end anchor) text run 1 at (48.00,160.00) startOffset 0 endOffset 37 width 412.00 RTL: "\x{644}\x{645}\x{627}\x{630}\x{627} \x{644}\x{627} \x{64A}\x{62A}\x{643}\x{644}\x{645}\x{648}\x{646} \x{627}\x{644}\x{644}\x{651}\x{63A}\x{629} \x{627}\x{644}\x{639}\x{631}\x{628}\x{64A}\x{629} \x{641}\x{62D}\x{633}\x{628}\x{61F}"
+      RenderSVGText {text} at (119,240) size 458x36 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-28) size 458x36
+          chunk 1 (end anchor) text run 1 at (119.00,240.00) startOffset 0 endOffset 37 width 341.00 RTL: "\x{644}\x{645}\x{627}\x{630}\x{627} \x{644}\x{627} \x{64A}\x{62A}\x{643}\x{644}\x{645}\x{648}\x{646} \x{627}\x{644}\x{644}\x{651}\x{63A}\x{629} \x{627}\x{644}\x{639}\x{631}\x{628}\x{64A}\x{629} \x{641}\x{62D}\x{633}\x{628}\x{61F}"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.4 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 33 {g} of child 0 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 35 {text} of child 0 {svg} of document
diff --git a/LayoutTests/svg/text/text-intro-05-t.svg b/LayoutTests/svg/text/text-intro-05-t.svg
new file mode 100755 (executable)
index 0000000..1b572a7
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <!--======================================================================-->
+  <!--=  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/.                =-->
+  <!--======================================================================-->
+  <!-- NOTE:  CVS will automatically update the                             -->
+  <!--        "$RCSfile: text-intro-05-t.svg,v $" and "$Revision: 1.4 $"         -->
+  <!--        fields in the file.                                           -->
+  <!--        There is no need to update this information.                  -->
+  <!-- =====================================================================-->
+  <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" reviewer="ED" owner="CL" desc="Tests Arabic text using various platform fonts" status="accepted" version="$Revision: 1.4 $" testname="$RCSfile: text-intro-05-t.svg,v $">
+    <OperatorScript>
+      <Paragraph>
+                Tests Arabic text using various platform fonts. If these fonts are not available, a fallback font should be used that has Arabic glyphs. If such a font is not available, the 'missing glyph' (typically an open rectangle) should be displayed. It is an error to display the wrong Arabic glyphs, for example to display all isolate forms.
+      </Paragraph>
+    </OperatorScript>
+  </SVGTestCase>
+  <title id="test-title">$RCSfile: text-intro-05-t.svg,v $</title>
+  <!--======================================================================-->
+  <!--Content of Test Case follows...                  =====================-->
+  <!--======================================================================-->
+  <g id="test-body-content">
+   <text x="460" y="80" text-anchor="end" xml:lang="ar" font-size="30" font-family="Andalus">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+  <!-- andalus font comes with Windows 2000 and XP -->
+  <text x="460" y="160" text-anchor="end" xml:lang="ar" font-size="36" font-family="'Diwani Letter'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+  <!-- Diwani fonts come with Microsoft Arabic fonts extension for Office XP
+http://www.microsoft.com/downloads/details.aspx?FamilyID=A83C0E03-8913-47A3-ACB7-8AC357627620&displaylang=AR -->
+  <text x="460" y="240" text-anchor="end" xml:lang="ar" font-size="30" font-family="'Nafees Naskh'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+  <!-- Nafees Nastaleeq and Nafees Naskh are  freely available from 
+  the Center for Research in Urdu Language Processing (CRULP http://www.crulp.org  ) 
+  at the National University of Computer and Emerging Sciences, Pakistan 
+  ( http://www.nu.edu.pk ) -->
+  </g>
+  <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.4 $</text>
+  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-path-01-b-expected.checksum b/LayoutTests/svg/text/text-path-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..7fa4784
--- /dev/null
@@ -0,0 +1 @@
+0032aa46aee79839662a1dbc49534952
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-path-01-b-expected.png b/LayoutTests/svg/text/text-path-01-b-expected.png
new file mode 100644 (file)
index 0000000..74f2f73
Binary files /dev/null and b/LayoutTests/svg/text/text-path-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-path-01-b-expected.txt b/LayoutTests/svg/text/text-path-01-b-expected.txt
new file mode 100644 (file)
index 0000000..1cc9443
--- /dev/null
@@ -0,0 +1,57 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,-10) size 798.33x609.17
+    RenderSVGContainer {g} at (27.50,-10) size 669.67x495.83
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderPath {path} at (198.53,22.02) size 219.77x84.55 [stroke={[type=SOLID] [color=#0000FF]}] [data="M199.00,89.30C206.60,66.60,235.80,13.20,270.00,30.30C286.60,38.60,298.90,59.40,310.00,73.30C321.70,87.90,338.60,99.00,356.00,103.30C387.30,111.10,396.60,90.40,418.00,74.30"]
+        RenderPath {path} at (33.03,78.52) size 219.77x84.55 [stroke={[type=SOLID] [color=#0000FF]}] [data="M33.50,145.80C41.00,123.00,70.30,69.70,104.50,86.80C121.00,95.00,133.00,116.00,144.50,129.80C156.20,144.40,173.00,155.50,190.50,159.80C221.80,167.60,231.00,146.90,252.50,130.80"]
+        RenderPath {path} at (113,231) size 300x4 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [data="M113.00,233.00L413.00,233.00"]
+      RenderSVGContainer {g} at (320,-10) size 377.17x193.33
+        RenderSVGContainer {use} at (330.88,36.70) size 366.29x140.92
+          RenderSVGContainer {g} at (330.88,36.70) size 366.29x140.92
+            RenderPath {path} at (330.88,36.70) size 366.29x140.92 [stroke={[type=SOLID] [color=#0000FF]}] [data="M199.00,89.30C206.60,66.60,235.80,13.20,270.00,30.30C286.60,38.60,298.90,59.40,310.00,73.30C321.70,87.90,338.60,99.00,356.00,103.30C387.30,111.10,396.60,90.40,418.00,74.30"]
+        RenderSVGText {text} at (192,27) size 171x116 contains 0 chunk(s)
+          RenderSVGTextPath {textPath} at (0,0) size 171x116
+            RenderSVGInlineText {#text} at (0,-32) size 171x116
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+      RenderSVGContainer {g} at (27.50,83.33) size 458.33x268.33
+        RenderSVGContainer {use} at (55.04,130.86) size 366.29x140.91
+          RenderSVGContainer {g} at (55.04,130.86) size 366.29x140.91
+            RenderPath {path} at (55.04,130.86) size 366.29x140.91 [stroke={[type=SOLID] [color=#0000FF]}] [data="M33.50,145.80C41.00,123.00,70.30,69.70,104.50,86.80C121.00,95.00,133.00,116.00,144.50,129.80C156.20,144.40,173.00,155.50,190.50,159.80C221.80,167.60,231.00,146.90,252.50,130.80"]
+        RenderSVGText {text} at (26,83) size 172x117 contains 0 chunk(s)
+          RenderSVGTextPath {textPath} at (0,0) size 172x117
+            RenderSVGTSpan {tspan} at (0,0) size 29x58 [color=#FF0000]
+              RenderSVGInlineText {#text} at (0,-9) size 28x58
+            RenderSVGTSpan {tspan} at (0,0) size 18x41
+              RenderSVGInlineText {#text} at (21,-11) size 18x41
+            RenderSVGInlineText {#text} at (35,-32) size 136x116
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+        RenderPath {rect} at (27.50,280.83) size 458.33x70 [stroke={[type=SOLID] [color=#000000]}] [data="M17.00,169.00L291.00,169.00L291.00,210.00L17.00,210.00"]
+        RenderSVGText {text} at (19,185) size 223x22 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 223x22
+            chunk 1 text run 1 at (19.00,185.00) startOffset 0 endOffset 25 width 223.00: "'tspan' subelement inside"
+        RenderSVGText {text} at (19,207) size 199x22 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 199x22
+            chunk 1 text run 1 at (19.00,207.00) startOffset 0 endOffset 23 width 199.00: "the 'textPath' element."
+      RenderSVGContainer {g} at (188.33,351.67) size 500x134.17
+        RenderSVGContainer {use} at (188.33,385) size 500x6.67
+          RenderSVGContainer {g} at (188.33,385) size 500x6.67
+            RenderPath {path} at (188.33,385) size 500x6.67 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [data="M113.00,233.00L413.00,233.00"]
+        RenderSVGText {text} at (212,233) size 181x27 contains 0 chunk(s)
+          RenderSVGTextPath {textPath} at (0,0) size 181x27
+            RenderSVGInlineText {#text} at (0,-22) size 181x27
+          RenderSVGInlineText {#text} at (0,0) size 0x0
+        RenderPath {rect} at (195.83,415.83) size 435x70 [stroke={[type=SOLID] [color=#000000]}] [data="M118.00,250.00L378.00,250.00L378.00,291.00L118.00,291.00"]
+        RenderSVGText {text} at (120,267) size 239x22 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 239x22
+            chunk 1 text run 1 at (120.00,267.00) startOffset 0 endOffset 30 width 239.00: "'startOffset' attribute of the"
+        RenderSVGText {text} at (120,287) size 165x22 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 165x22
+            chunk 1 text run 1 at (120.00,287.00) startOffset 0 endOffset 19 width 165.00: "'textPath' element."
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.9 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {textPath} of child 3 {text} of child 3 {g} of child 13 {g} of child 29 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 29 {svg} of document
diff --git a/LayoutTests/svg/text/text-path-01-b.svg b/LayoutTests/svg/text/text-path-01-b.svg
new file mode 100644 (file)
index 0000000..657e2aa
--- /dev/null
@@ -0,0 +1,88 @@
+<?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-path-01-f                                                       -->
+<!-- renamed for Basic suite to text-path-01-b                             -->
+<!--                                                                       -->
+<!-- Test viewer capability to handle the basics of 'textPath'.            -->
+<!--                                                                       -->
+<!-- Author : Shenxue Zhou  15-March-2000                                  -->
+<!-- Revised for 1.1 : Tolga Capin 14-Feb-2002                             -->
+<!-- Revised for Basic: Takeshi Sagara 04-Jul-2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  15-Mar-2000, SZ: Serial#3 created.                                   -->
+<!--  15-Mar-2000, LH=" fix names, legend" Serial#4.                       -->
+<!--  03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# .        -->
+<!--  23-Aug-2000, LH=" add test-body-content 'g'" ser#5.                  -->
+<!--  04-Jul-2002, TS add viewBox and reduce some texts.                   -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= 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 480 360">
+
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.9 $" testname="text-path-01-b.svg">
+                       <Paragraph>
+                               Test textPath element
+                       </Paragraph>
+               </OperatorScript>
+       </SVGTestCase>
+
+       <title id="test-title">text-path-01-b</title>
+       <desc id="test-desc">Test viewer capability to handle the basics of 'textPath'.</desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content"> 
+               <defs>
+                       <path id="Path1" fill="none" stroke="blue"  d="M199 89.3 C206.6 66.6 235.8 13.2 270 30.3 286.6 38.6 298.9 59.4 310 73.3 321.7 87.9 338.6      99 356 103.3 387.3 111.1 396.6 90.4 418 74.3"/>
+                       <path id="Path2" fill="none" stroke="blue"  d="M33.5 145.8 C41 123 70.3 69.7 104.5 86.8 121 95 133 116 144.5 129.8 156.2 144.4 173 155.5     190.5 159.8 221.8 167.6 231 146.9 252.5 130.8"/>
+                       <path id="Path3" fill="none" stroke="blue" stroke-width="4"  d="M113 233 L413 233 "/>
+               </defs>
+               <g id="text-on-path-01">
+                       <use xlink:href="#Path1" fill="none" stroke="blue" />
+                       <text font-size="36" font-family="Georgia" fill="black" >
+                               <textPath xlink:href="#Path1">Text on a path</textPath>
+                       </text>
+               </g>
+               <g id="text-on-path-02">
+                       <!-- using tspan to change text color and position -->
+                       <use xlink:href="#Path2" fill="none" stroke="blue" />
+                       <text font-size="36" font-family="Georgia" fill="black" >
+                               <textPath xlink:href="#Path2"><tspan dy="-12" fill="red" >Te</tspan><tspan dy="12">x</tspan>t on a path</textPath>
+                       </text>
+                       <rect x="17" y="169" width="274" height="41" fill="none" stroke="black" />
+                       <text x="19" y="185" font-size="20" font-family="Arial" >'tspan' subelement inside </text>
+                       <text x="19" y="207" font-size="20" font-family="Arial" >the 'textPath' element.</text>
+               </g>
+               <g id="text-on-path-03">
+                       <use xlink:href="#Path3" fill="none" stroke="blue" stroke-width="4" />
+                       <text font-size="24" font-family="Arial" fill="black" >
+                               <textPath xlink:href="#Path3" startOffset="33%">The Text on path</textPath>
+                       </text>
+                       <rect x="118" y="250" width="260" height="41" fill="none" stroke="black" />
+                       <text x="120" y="267" font-size="20" font-family="Arial" >'startOffset' attribute of the</text>
+                       <text x="120" y="287" font-size="20" font-family="Arial" >'textPath' element.</text>
+               </g>
+       </g>
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-spacing-01-b-expected.checksum b/LayoutTests/svg/text/text-spacing-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..19b2b24
--- /dev/null
@@ -0,0 +1 @@
+cfc2f6242af0d7310907e0b037651bc4
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-spacing-01-b-expected.png b/LayoutTests/svg/text/text-spacing-01-b-expected.png
new file mode 100644 (file)
index 0000000..0877296
Binary files /dev/null and b/LayoutTests/svg/text/text-spacing-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-spacing-01-b-expected.txt b/LayoutTests/svg/text/text-spacing-01-b-expected.txt
new file mode 100644 (file)
index 0000000..0a06e2e
--- /dev/null
@@ -0,0 +1,30 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (5,5) size 790x590
+    RenderSVGContainer {g} at (30,10) size 660x500
+      RenderSVGContainer {g} at (30,10) size 660x500
+        RenderSVGText {text} at (3,8) size 52x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 52x9
+            chunk 1 text run 1 at (3.00,8.00) startOffset 0 endOffset 16 width 50.00: " letter-spacing:"
+        RenderSVGText {text} at (3,16) size 38x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 38x9
+            chunk 1 text run 1 at (3.00,16.00) startOffset 0 endOffset 17 width 38.00: "letter-spacing:-1"
+        RenderSVGText {text} at (3,24) size 54x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 54x9
+            chunk 1 text run 1 at (3.00,24.00) startOffset 0 endOffset 17 width 54.00: "letter-spacing:.3"
+        RenderSVGText {text} at (3,33) size 63x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 63x9
+            chunk 1 text run 1 at (3.00,33.00) startOffset 0 endOffset 16 width 63.00: "ws:0 - Two Words"
+        RenderSVGText {text} at (3,41) size 66x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 66x9
+            chunk 1 text run 1 at (3.00,41.00) startOffset 0 endOffset 17 width 57.00: "ws:-3 - Two Words"
+        RenderSVGText {text} at (3,49) size 63x9 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-7) size 63x9
+            chunk 1 text run 1 at (3.00,49.00) startOffset 0 endOffset 16 width 72.00: "ws:3 - Two Words"
+    RenderSVGText {text} at (5,57) size 42x8 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-6) size 42x8
+        chunk 1 text run 1 at (5.00,57.00) startOffset 0 endOffset 16 width 42.00: "$Revision: 1.6 $"
+    RenderPath {rect} at (5,5) size 790x590 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L79.00,1.00L79.00,59.00L1.00,59.00"]
+selection start: position 1 of child 0 {#text} of child 1 {text} of child 1 {g} of child 13 {g} of child 18 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 18 {svg} of document
diff --git a/LayoutTests/svg/text/text-spacing-01-b.svg b/LayoutTests/svg/text/text-spacing-01-b.svg
new file mode 100644 (file)
index 0000000..c8f2501
--- /dev/null
@@ -0,0 +1,59 @@
+<?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-spacing-BE-14.svg                                                -->
+<!-- renamed for 1.1 suite to text-spacing-01-b.svg                                -->
+<!--                                                                       -->
+<!-- Test properties 'letter-spacing' and 'word-spacing'                   -->
+<!--                                                                       -->
+<!-- Author : Jon Ferraiolo 06-Aug-2000                                    -->
+<!--          1.1 revision by Rick Graham                                  -->
+<!-- Revised for SVGT/B : Mathias Larsson Carlander Jul/1/2002               -->
+<!-- Revised for SVGT : Mathias Larsson Carlander Aug/20/2002               -->
+<!-- further revisions by Chris Lilley - its now a basic test. 23 Oct 2002 -->
+<!--======================================================================-->
+<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 80 60">
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.6 $" testname="text-spacing-01-b.svg">
+                       <Paragraph>
+                               Test properties 'letter-spacing' and 'word-spacing'
+                       </Paragraph>
+                       <Paragraph>
+                               The first three lines test property 'letter-spacing', with
+                               values 0, -1 and .3em respectively.
+                       </Paragraph>
+                       <Paragraph>
+                               The next three lines test property 'word-spacing', with
+                               values 0, -3 and 3em respectively.
+                       </Paragraph>
+               </OperatorScript>
+       </SVGTestCase>
+       <title id="test-title">text-spacing-01-b.svg</title>
+       <desc id="test-desc">Test properties 'letter-spacing' and 'word-spacing'</desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content">
+               <g font-family="Arial" font-size="8">
+                       <text x="3" y="8"> letter-spacing:0 </text>
+                       <text x="3" y="16" letter-spacing="-1">letter-spacing:-1</text>
+                       <text x="3" y="24" letter-spacing=".3">letter-spacing:.3</text>
+                       <text x="3" y="33">ws:0 - Two Words</text>
+                       <text x="3" y="41" word-spacing="-3">ws:-3 - Two Words</text>
+                       <text x="3" y="49" word-spacing="3">ws:3 - Two Words</text>
+               </g>
+       </g>
+       <text id="revision" x="5" y="57" font-size="6" stroke="none" fill="black">$Revision: 1.6 $</text>
+       <rect id="test-frame" x="1" y="1" width="78" height="58" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-text-01-b-expected.checksum b/LayoutTests/svg/text/text-text-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..84f4a86
--- /dev/null
@@ -0,0 +1 @@
+3a5423c6749fd2192063255cdce84fab
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-01-b-expected.png b/LayoutTests/svg/text/text-text-01-b-expected.png
new file mode 100644 (file)
index 0000000..54a1da6
Binary files /dev/null and b/LayoutTests/svg/text/text-text-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-01-b-expected.txt b/LayoutTests/svg/text/text-text-01-b-expected.txt
new file mode 100644 (file)
index 0000000..b8ce715
--- /dev/null
@@ -0,0 +1,129 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (2.50,2.50) size 795x595
+    RenderSVGContainer {g} at (7.50,5) size 785x550
+      RenderSVGText {text} at (14,10) size 114x11 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-9) size 114x11
+          chunk 1 text run 1 at (14.00,10.00) startOffset 0 endOffset 26 width 114.00: "Basic test of 'textLength'"
+      RenderSVGText {text} at (10,20) size 132x11 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-9) size 132x11
+          chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 30 width 132.00: "and 'lengthAdjust' attributes."
+      RenderSVGContainer {g} at (7.50,115) size 785x110
+        RenderSVGContainer {g} at (15,115) size 750x45
+          RenderSVGText {text} at (3,30) size 48x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 48x9
+              chunk 1 text run 1 at (3.00,30.00) startOffset 0 endOffset 15 width 48.00: "Line to Stretch"
+          RenderSVGText {text} at (75,30) size 78x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 78x9
+              chunk 1 text run 1 at (75.00,30.00) startOffset 0 endOffset 25 width 78.00: "this is a line to squeeze"
+        RenderSVGContainer {g} at (7.50,157.50) size 785x22.50
+          RenderPath {line} at (10,157.50) size 270x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L56.00,32.00"]
+          RenderPath {line} at (7.50,160) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L2.00,36.00"]
+          RenderPath {line} at (277.50,160) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M56.00,32.00L56.00,36.00"]
+          RenderPath {line} at (370,157.50) size 420x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L158.00,32.00"]
+          RenderPath {line} at (367.50,160) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L74.00,36.00"]
+          RenderPath {line} at (787.50,160) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M158.00,32.00L158.00,36.00"]
+        RenderSVGContainer {g} at (30,165) size 610x60
+          RenderSVGText {text} at (6,38) size 48x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 48x6
+              chunk 1 text run 1 at (6.00,38.00) startOffset 0 endOffset 19 width 48.00: "textLength: default"
+          RenderSVGText {text} at (6,44) size 52x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 52x6
+              chunk 1 text run 1 at (6.00,44.00) startOffset 0 endOffset 21 width 52.00: "lengthAdjust: default"
+          RenderSVGText {text} at (76,38) size 48x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 48x6
+              chunk 1 text run 1 at (76.00,38.00) startOffset 0 endOffset 19 width 48.00: "textLength: default"
+          RenderSVGText {text} at (76,44) size 52x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 52x6
+              chunk 1 text run 1 at (76.00,44.00) startOffset 0 endOffset 21 width 52.00: "lengthAdjust: default"
+      RenderSVGContainer {g} at (7.50,225) size 757.50x110 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,22.00)}]
+        RenderSVGContainer {g} at (15,225) size 750x45
+          RenderSVGText {text} at (3,30) size 48x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 48x9
+              chunk 1 text run 1 at (3.00,30.00) startOffset 0 endOffset 15 width 48.00: "Line to Stretch"
+          RenderSVGText {text} at (75,30) size 78x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 78x9
+              chunk 1 text run 1 at (75.00,30.00) startOffset 0 endOffset 25 width 78.00: "this is a line to squeeze"
+        RenderSVGContainer {g} at (7.50,267.50) size 700x22.50
+          RenderPath {line} at (10,267.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L69.00,32.00"]
+          RenderPath {line} at (7.50,270) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L2.00,36.00"]
+          RenderPath {line} at (342.50,270) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M69.00,32.00L69.00,36.00"]
+          RenderPath {line} at (370,267.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L141.00,32.00"]
+          RenderPath {line} at (367.50,270) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L74.00,36.00"]
+          RenderPath {line} at (702.50,270) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M141.00,32.00L141.00,36.00"]
+        RenderSVGContainer {g} at (30,275) size 660x60
+          RenderSVGText {text} at (6,38) size 59x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 59x6
+              chunk 1 text run 1 at (6.00,38.00) startOffset 0 endOffset 22 width 59.00: "textLength: 25% longer"
+          RenderSVGText {text} at (6,44) size 52x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 52x6
+              chunk 1 text run 1 at (6.00,44.00) startOffset 0 endOffset 21 width 52.00: "lengthAdjust: default"
+          RenderSVGText {text} at (76,38) size 62x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 62x6
+              chunk 1 text run 1 at (76.00,38.00) startOffset 0 endOffset 23 width 62.00: "textLength: 15% shorter"
+          RenderSVGText {text} at (76,44) size 52x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 52x6
+              chunk 1 text run 1 at (76.00,44.00) startOffset 0 endOffset 21 width 52.00: "lengthAdjust: default"
+      RenderSVGContainer {g} at (7.50,335) size 757.50x110 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,44.00)}]
+        RenderSVGContainer {g} at (15,335) size 750x45
+          RenderSVGText {text} at (3,30) size 48x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 48x9
+              chunk 1 text run 1 at (3.00,30.00) startOffset 0 endOffset 15 width 48.00: "Line to Stretch"
+          RenderSVGText {text} at (75,30) size 78x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 78x9
+              chunk 1 text run 1 at (75.00,30.00) startOffset 0 endOffset 25 width 78.00: "this is a line to squeeze"
+        RenderSVGContainer {g} at (7.50,377.50) size 700x22.50
+          RenderPath {line} at (10,377.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L69.00,32.00"]
+          RenderPath {line} at (7.50,380) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L2.00,36.00"]
+          RenderPath {line} at (342.50,380) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M69.00,32.00L69.00,36.00"]
+          RenderPath {line} at (370,377.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L141.00,32.00"]
+          RenderPath {line} at (367.50,380) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L74.00,36.00"]
+          RenderPath {line} at (702.50,380) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M141.00,32.00L141.00,36.00"]
+        RenderSVGContainer {g} at (15,385) size 675x60
+          RenderSVGText {text} at (3,38) size 59x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 59x6
+              chunk 1 text run 1 at (3.00,38.00) startOffset 0 endOffset 22 width 59.00: "textLength: 25% longer"
+          RenderSVGText {text} at (3,44) size 54x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 54x6
+              chunk 1 text run 1 at (3.00,44.00) startOffset 0 endOffset 21 width 54.00: "lengthAdjust: spacing"
+          RenderSVGText {text} at (76,38) size 62x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 62x6
+              chunk 1 text run 1 at (76.00,38.00) startOffset 0 endOffset 23 width 62.00: "textLength: 15% shorter"
+          RenderSVGText {text} at (76,44) size 54x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 54x6
+              chunk 1 text run 1 at (76.00,44.00) startOffset 0 endOffset 21 width 54.00: "lengthAdjust: spacing"
+      RenderSVGContainer {g} at (7.50,445) size 757.50x110 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,66.00)}]
+        RenderSVGContainer {g} at (15,445) size 750x45
+          RenderSVGText {text} at (3,30) size 48x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 48x9
+              chunk 1 text run 1 at (3.00,30.00) startOffset 0 endOffset 15 width 48.00: "Line to Stretch"
+          RenderSVGText {text} at (75,30) size 78x9 contains 1 chunk(s) [color=#0000FF]
+            RenderSVGInlineText {#text} at (0,-7) size 78x9
+              chunk 1 text run 1 at (75.00,30.00) startOffset 0 endOffset 25 width 78.00: "this is a line to squeeze"
+        RenderSVGContainer {g} at (7.50,487.50) size 700x22.50
+          RenderPath {line} at (10,487.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L69.00,32.00"]
+          RenderPath {line} at (7.50,490) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M2.00,32.00L2.00,36.00"]
+          RenderPath {line} at (342.50,490) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M69.00,32.00L69.00,36.00"]
+          RenderPath {line} at (370,487.50) size 335x5 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L141.00,32.00"]
+          RenderPath {line} at (367.50,490) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M74.00,32.00L74.00,36.00"]
+          RenderPath {line} at (702.50,490) size 5x20 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M141.00,32.00L141.00,36.00"]
+        RenderSVGContainer {g} at (30,495) size 660x60
+          RenderSVGText {text} at (6,38) size 59x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 59x6
+              chunk 1 text run 1 at (6.00,38.00) startOffset 0 endOffset 22 width 59.00: "textLength: 25% longer"
+          RenderSVGText {text} at (6,44) size 47x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 47x6
+              chunk 1 text run 1 at (6.00,44.00) startOffset 0 endOffset 17 width 47.00: "lengthAdjust: sAG"
+          RenderSVGText {text} at (76,38) size 62x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 62x6
+              chunk 1 text run 1 at (76.00,38.00) startOffset 0 endOffset 23 width 62.00: "textLength: 20% shorter"
+          RenderSVGText {text} at (76,44) size 47x6 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-5) size 47x6
+              chunk 1 text run 1 at (76.00,44.00) startOffset 0 endOffset 17 width 47.00: "lengthAdjust: sAG"
+    RenderSVGText {text} at (5,117) size 52x9 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-7) size 52x9
+        chunk 1 text run 1 at (5.00,117.00) startOffset 0 endOffset 16 width 52.00: "$Revision: 1.7 $"
+    RenderPath {rect} at (2.50,2.50) size 795x595 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L159.00,1.00L159.00,119.00L1.00,119.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 25 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 25 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-01-b.svg b/LayoutTests/svg/text/text-text-01-b.svg
new file mode 100644 (file)
index 0000000..8520258
--- /dev/null
@@ -0,0 +1,215 @@
+<?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>
diff --git a/LayoutTests/svg/text/text-text-03-b-expected.checksum b/LayoutTests/svg/text/text-text-03-b-expected.checksum
new file mode 100644 (file)
index 0000000..e532ff5
--- /dev/null
@@ -0,0 +1 @@
+b500f16a0c456da1df43a87e84c3a975
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-03-b-expected.png b/LayoutTests/svg/text/text-text-03-b-expected.png
new file mode 100644 (file)
index 0000000..6aa41ac
Binary files /dev/null and b/LayoutTests/svg/text/text-text-03-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-03-b-expected.txt b/LayoutTests/svg/text/text-text-03-b-expected.txt
new file mode 100644 (file)
index 0000000..2dd8818
--- /dev/null
@@ -0,0 +1,41 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (1.67,46.67) size 785x436.67
+      RenderSVGText {text} at (19,61) size 76x39 contains 1 chunk(s) [color=#0000FF]
+        RenderSVGInlineText {#text} at (0,-32) size 76x39
+          chunk 1 text run 1 at (19.00,61.00) startOffset 0 endOffset 5 width 76.00: "Plain"
+      RenderSVGText {text} at (142,61) size 80x39 contains 1 chunk(s) [color=#0000FF]
+        RenderSVGInlineText {#text} at (0,-32) size 80x39
+          chunk 1 text run 1 at (142.00,61.00) startOffset 0 endOffset 6 width 80.00: "Italic"
+      RenderSVGText {text} at (257,60) size 79x39 contains 1 chunk(s) [color=#0000FF]
+        RenderSVGInlineText {#text} at (0,-32) size 79x39
+          chunk 1 text run 1 at (257.00,60.00) startOffset 0 endOffset 4 width 79.00: "Bold"
+      RenderSVGText {text} at (224,110) size 153x39 contains 1 chunk(s) [color=#0000FF]
+        RenderSVGInlineText {#text} at (0,-32) size 153x39
+          chunk 1 text run 1 at (224.00,110.00) startOffset 0 endOffset 9 width 153.00: "Underline"
+      RenderSVGText {text} at (39,147) size 203x39 contains 1 chunk(s) [color=#FF0000]
+        RenderSVGInlineText {#text} at (0,-32) size 203x39
+          chunk 1 text run 1 at (39.00,147.00) startOffset 0 endOffset 12 width 203.00: "Line through"
+      RenderSVGText {text} at (1,200) size 471x39 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-32) size 471x39
+          chunk 1 text run 1 at (1.00,200.00) startOffset 0 endOffset 27 width 471.00: "Bold, italic and underlined"
+      RenderSVGContainer {g} at (81.67,371.67) size 636.67x111.67
+        RenderPath {rect} at (81.67,373.33) size 636.67x110 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [data="M50.00,225.00L430.00,225.00L430.00,289.00L50.00,289.00"]
+        RenderSVGContainer {g} at (91.67,371.67) size 578.33x111.67
+          RenderSVGText {text} at (55,245) size 343x27 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-22) size 343x27
+              chunk 1 text run 1 at (55.00,245.00) startOffset 0 endOffset 34 width 343.00: "Each line of text which flows in a"
+          RenderSVGText {text} at (55,265) size 347x27 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-22) size 347x27
+              chunk 1 text run 1 at (55.00,265.00) startOffset 0 endOffset 32 width 347.00: "rectangular box has to be broken"
+          RenderSVGText {text} at (55,285) size 212x27 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-22) size 212x27
+              chunk 1 text run 1 at (55.00,285.00) startOffset 0 endOffset 21 width 212.00: "into separated lines."
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.8 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 31 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 31 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-03-b.svg b/LayoutTests/svg/text/text-text-03-b.svg
new file mode 100644 (file)
index 0000000..864ff2b
--- /dev/null
@@ -0,0 +1,74 @@
+<?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-text-02-f.svg                                                    -->
+<!-- renamed for Basic suite to text-text-03-b.svg                         -->
+<!--                                                                       -->
+<!-- Test viewer basic capability to handle 'text' elements and a few      -->
+<!-- text properties.                                                      -->
+<!--                                                                       -->
+<!-- Author : Shenxue Zhou (test body content), 25-Feb-2000  &             -->
+<!--                 Lofton Henderson (put into template), 28-Feb-2000     -->
+<!-- Revised for 1.1 : Tolga Capin 14-Feb-2002                             -->
+<!-- Revised for Basic: Takeshi Sagara 04-Jul-2002                         -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--  28-Feb-2000, SZ & LH: Serial#1 created.                              -->
+<!--  12-Mar-2000, LH, fix test-framing rect; font Arial; ser#2        -->
+<!--  20-Mar-2000, LH, back to Verdana (Arial doesn't work); ser#3     -->
+<!--  03-Aug-2000, LH=" update DOCTYPE for CR DTD, 20000802" ser# .        -->
+<!--  04-Jul-2002, TS add viewBox and change font size and positions.      -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= 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 480 360">
+
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.8 $" testname="text-text-03-b.svg">
+                       <Paragraph>
+                               Test text element, tspan element and various text decorations
+                       </Paragraph>
+               </OperatorScript>
+       </SVGTestCase>
+
+       <title id="test-title">text-text-03-b</title>
+       <desc id="test-desc">Test for basic capability to handle 'text' elements and text properties.</desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content">
+               <text x="19" y="61" font-size="32" font-family="Verdana" fill="blue" >Plain</text>
+               <text x="142" y="61" font-size="32" font-family="Verdana" font-style="italic" fill="blue" >Italic</text>
+               <text x="257" y="60" font-size="32" font-family="Verdana" font-weight="bold" fill="blue" >Bold</text>
+               <text x="224" y="110" font-size="32" font-family="Verdana" fill="blue" text-decoration="underline" >Underline</text>
+               <text x="39" y="147" font-size="32" font-family="Verdana" fill="red" text-decoration="line-through" >Line through</text>
+               <text x="1" y="200" font-size="32" font-family="Verdana" font-style="italic" font-weight="bold" fill="black" text-decoration="underline" >Bold, italic and underlined</text>
+               <g>
+                       <rect x="50" y="225" width="380" height="64" fill="none" stroke="black" stroke-width="2" />
+                       <g>
+                               <text x="55" y="245" font-size="24" font-family="Arial" fill="black" >Each line of text which flows in a </text>
+                               <text x="55" y="265" font-size="24" font-family="Arial" fill="black" >rectangular box has to be broken</text>
+                               <text x="55" y="285" font-size="24" font-family="Arial" fill="black" >into separated lines.</text>
+                       </g>
+               </g>
+       </g>
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.8 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
+
diff --git a/LayoutTests/svg/text/text-text-04-t-expected.checksum b/LayoutTests/svg/text/text-text-04-t-expected.checksum
new file mode 100644 (file)
index 0000000..22519a2
--- /dev/null
@@ -0,0 +1 @@
+a95321586d52c3bd0bd89a734214a303
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-04-t-expected.png b/LayoutTests/svg/text/text-text-04-t-expected.png
new file mode 100644 (file)
index 0000000..0ea6950
Binary files /dev/null and b/LayoutTests/svg/text/text-text-04-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-04-t-expected.txt b/LayoutTests/svg/text/text-text-04-t-expected.txt
new file mode 100644 (file)
index 0000000..fafe8c1
--- /dev/null
@@ -0,0 +1,295 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+    RenderSVGContainer {g} at (60,36.67) size 696.67x480
+      RenderSVGContainer {g} at (60.00,36.67) size 238.33x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,40.00)}]
+        RenderSVGText {text} at (-94,0) size 64x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 64x18
+            chunk 1 (end anchor) text run 1 at (-94.00,0.00) startOffset 0 endOffset 9 width 64.00: "Reference"
+        RenderSVGContainer {g} at (210.00,36.67) size 88.33x38.33
+          RenderSVGContainer {use} at (210.00,60.00) size 13.33x13.33
+            RenderSVGContainer {g} at (210.00,60.00) size 13.33x13.33
+              RenderPath {rect} at (210.00,60.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (235.00,60.00) size 13.33x13.33
+            RenderSVGContainer {g} at (235.00,60.00) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,0.00)}]
+              RenderPath {rect} at (235.00,60.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (260,60.00) size 13.33x13.33
+            RenderSVGContainer {g} at (260,60.00) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,0.00)}]
+              RenderPath {rect} at (260,60.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (285,60.00) size 13.33x13.33
+            RenderSVGContainer {g} at (285,60.00) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,0.00)}]
+              RenderPath {rect} at (285,60.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (0,0) size 40x23 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 40x23
+              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 4 width 40.00: "1234"
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#000000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+      RenderSVGContainer {g} at (121.67,103.33) size 245x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
+        RenderSVGText {text} at (-57,0) size 27x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 27x18
+            chunk 1 (end anchor) text run 1 at (-57.00,0.00) startOffset 0 endOffset 5 width 27.00: "x all"
+        RenderSVGContainer {use} at (210.00,126.67) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,126.67) size 13.33x13.33
+            RenderPath {rect} at (210.00,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (243.33,126.67) size 13.33x13.33
+          RenderSVGContainer {g} at (243.33,126.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,0.00)}]
+            RenderPath {rect} at (243.33,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (276.67,126.67) size 13.33x13.33
+          RenderSVGContainer {g} at (276.67,126.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}]
+            RenderPath {rect} at (276.67,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (310,126.67) size 13.33x13.33
+          RenderSVGContainer {g} at (310,126.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,0.00)}]
+            RenderPath {rect} at (310,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (343.33,126.67) size 13.33x13.33
+          RenderSVGContainer {g} at (343.33,126.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
+            RenderPath {rect} at (343.33,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 70x23
+            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
+            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
+            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
+            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
+      RenderSVGContainer {g} at (93.33,170) size 296.67x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
+        RenderSVGText {text} at (-74,0) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 (end anchor) text run 1 at (-74.00,0.00) startOffset 0 endOffset 6 width 44.00: "x more"
+        RenderSVGContainer {use} at (210.00,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,193.33) size 13.33x13.33
+            RenderPath {rect} at (210.00,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (243.33,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (243.33,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,0.00)}]
+            RenderPath {rect} at (243.33,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (276.67,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (276.67,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}]
+            RenderPath {rect} at (276.67,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (310,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (310,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,0.00)}]
+            RenderPath {rect} at (310,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (343.33,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (343.33,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,0.00)}]
+            RenderPath {rect} at (343.33,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (376.67,193.33) size 13.33x13.33
+          RenderSVGContainer {g} at (376.67,193.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
+            RenderPath {rect} at (376.67,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (20,0) size 70x23 contains 4 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 70x23
+            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
+            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
+            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 3 width 10.00: "3"
+            chunk 4 text run 1 at (80.00,0.00) startOffset 3 endOffset 4 width 10.00: "4"
+      RenderSVGContainer {g} at (86.67,236.67) size 263.33x38.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
+        RenderSVGText {text} at (-78,0) size 48x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 48x18
+            chunk 1 (end anchor) text run 1 at (-78.00,0.00) startOffset 0 endOffset 7 width 48.00: "x fewer"
+        RenderSVGContainer {use} at (210.00,260) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,260) size 13.33x13.33
+            RenderPath {rect} at (210.00,260) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (243.33,260) size 13.33x13.33
+          RenderSVGContainer {g} at (243.33,260) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,0.00)}]
+            RenderPath {rect} at (243.33,260) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (276.67,260) size 13.33x13.33
+          RenderSVGContainer {g} at (276.67,260) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}]
+            RenderPath {rect} at (276.67,260) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (310,260) size 13.33x13.33
+          RenderSVGContainer {g} at (310,260) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,0.00)}]
+            RenderPath {rect} at (310,260) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (335,260) size 13.33x13.33
+          RenderSVGContainer {g} at (335,260) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,0.00)}]
+            RenderPath {rect} at (335,260) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (20,0) size 60x23 contains 3 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 60x23
+            chunk 1 text run 1 at (20.00,0.00) startOffset 0 endOffset 1 width 10.00: "1"
+            chunk 2 text run 1 at (40.00,0.00) startOffset 1 endOffset 2 width 10.00: "2"
+            chunk 3 text run 1 at (60.00,0.00) startOffset 2 endOffset 4 width 20.00: "34"
+      RenderSVGContainer {g} at (121.67,286.67) size 176.67x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
+        RenderSVGText {text} at (-57,0) size 27x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 27x18
+            chunk 1 (end anchor) text run 1 at (-57.00,0.00) startOffset 0 endOffset 5 width 27.00: "y all"
+        RenderSVGContainer {use} at (210.00,310.00) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,310) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+            RenderPath {rect} at (210.00,310) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (235.00,318.33) size 13.33x13.33
+          RenderSVGContainer {g} at (235.00,318.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+            RenderPath {rect} at (235.00,318.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (260,335.00) size 13.33x13.33
+          RenderSVGContainer {g} at (260,335) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+            RenderPath {rect} at (260,335) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (285,343.33) size 13.33x13.33
+          RenderSVGContainer {g} at (285,343.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
+            RenderPath {rect} at (285,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 40x43
+            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
+      RenderSVGContainer {g} at (93.33,370) size 205x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,250.00)}]
+        RenderSVGText {text} at (-74,0) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 (end anchor) text run 1 at (-74.00,0.00) startOffset 0 endOffset 6 width 44.00: "y more"
+        RenderSVGContainer {use} at (210.00,393.33) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,393.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+            RenderPath {rect} at (210.00,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (235.00,401.67) size 13.33x13.33
+          RenderSVGContainer {g} at (235.00,401.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+            RenderPath {rect} at (235.00,401.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (260,418.33) size 13.33x13.33
+          RenderSVGContainer {g} at (260,418.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+            RenderPath {rect} at (260,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (285,426.67) size 13.33x13.33
+          RenderSVGContainer {g} at (285,426.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
+            RenderPath {rect} at (285,426.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (0,-10) size 40x43 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 40x43
+            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
+      RenderSVGContainer {g} at (86.67,453.33) size 211.67x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,300.00)}]
+        RenderSVGText {text} at (-78,0) size 48x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 48x18
+            chunk 1 (end anchor) text run 1 at (-78.00,0.00) startOffset 0 endOffset 7 width 48.00: "y fewer"
+        RenderSVGContainer {use} at (210.00,476.67) size 13.33x13.33
+          RenderSVGContainer {g} at (210.00,476.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+            RenderPath {rect} at (210.00,476.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (235.00,485) size 13.33x13.33
+          RenderSVGContainer {g} at (235.00,485) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+            RenderPath {rect} at (235.00,485) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (260,501.67) size 13.33x13.33
+          RenderSVGContainer {g} at (260,501.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+            RenderPath {rect} at (260,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGContainer {use} at (285,501.67) size 13.33x13.33
+          RenderSVGContainer {g} at (285,501.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,5.00)}]
+            RenderPath {rect} at (285,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+        RenderSVGText {text} at (0,-10) size 40x38 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-18) size 40x38
+            chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 40.00: "1234"
+      RenderSVGContainer {g} at (401.67,86.67) size 355x338.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(220.00,0.00)}]
+        RenderSVGContainer {g} at (468.33,86.67) size 265x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,80.00)}]
+          RenderSVGText {text} at (-69,0) size 39x18 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-14) size 39x18
+              chunk 1 (end anchor) text run 1 at (-69.00,0.00) startOffset 0 endOffset 7 width 39.00: "x/y all"
+          RenderSVGContainer {use} at (576.67,126.67) size 13.33x13.33
+            RenderSVGContainer {g} at (576.67,126.67) size 13.33x13.33
+              RenderPath {rect} at (576.67,126.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (610,110.00) size 13.33x13.33
+            RenderSVGContainer {g} at (610.00,110) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
+              RenderPath {rect} at (610.00,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (643.33,118.33) size 13.33x13.33
+            RenderSVGContainer {g} at (643.33,118.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+              RenderPath {rect} at (643.33,118.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (676.67,135) size 13.33x13.33
+            RenderSVGContainer {g} at (676.67,135.00) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,5.00)}]
+              RenderPath {rect} at (676.67,135.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (710,143.33) size 13.33x13.33
+            RenderSVGContainer {g} at (710.00,143.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,10.00)}]
+              RenderPath {rect} at (710.00,143.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 70x43
+              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
+              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
+              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
+              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
+        RenderSVGContainer {g} at (440.00,153.33) size 316.67x86.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,120.00)}]
+          RenderSVGText {text} at (-86,0) size 56x18 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-14) size 56x18
+              chunk 1 (end anchor) text run 1 at (-86.00,0.00) startOffset 0 endOffset 8 width 56.00: "x/y more"
+          RenderSVGContainer {use} at (576.67,193.33) size 13.33x13.33
+            RenderSVGContainer {g} at (576.67,193.33) size 13.33x13.33
+              RenderPath {rect} at (576.67,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (610,176.67) size 13.33x13.33
+            RenderSVGContainer {g} at (610.00,176.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
+              RenderPath {rect} at (610.00,176.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (643.33,185) size 13.33x13.33
+            RenderSVGContainer {g} at (643.33,185) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+              RenderPath {rect} at (643.33,185) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (676.67,201.67) size 13.33x13.33
+            RenderSVGContainer {g} at (676.67,201.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,5.00)}]
+              RenderPath {rect} at (676.67,201.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (710,210) size 13.33x13.33
+            RenderSVGContainer {g} at (710.00,210) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,10.00)}]
+              RenderPath {rect} at (710.00,210) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (743.33,226.67) size 13.33x13.33
+            RenderSVGContainer {g} at (743.33,226.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,20.00)}]
+              RenderPath {rect} at (743.33,226.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (20,-10) size 70x43 contains 4 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 70x43
+              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
+              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
+              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
+              chunk 4 text run 1 at (80.00,10.00) startOffset 3 endOffset 4 width 10.00: "4"
+        RenderSVGContainer {g} at (433.33,220.00) size 283.33x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,160.00)}]
+          RenderSVGText {text} at (-90,0) size 60x18 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-14) size 60x18
+              chunk 1 (end anchor) text run 1 at (-90.00,0.00) startOffset 0 endOffset 9 width 60.00: "x/y fewer"
+          RenderSVGContainer {use} at (576.67,260) size 13.33x13.33
+            RenderSVGContainer {g} at (576.67,260) size 13.33x13.33
+              RenderPath {rect} at (576.67,260) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (610,243.33) size 13.33x13.33
+            RenderSVGContainer {g} at (610.00,243.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
+              RenderPath {rect} at (610.00,243.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (643.33,251.67) size 13.33x13.33
+            RenderSVGContainer {g} at (643.33,251.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+              RenderPath {rect} at (643.33,251.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (676.67,268.33) size 13.33x13.33
+            RenderSVGContainer {g} at (676.67,268.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,5.00)}]
+              RenderPath {rect} at (676.67,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (701.67,268.33) size 13.33x13.33
+            RenderSVGContainer {g} at (701.67,268.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,5.00)}]
+              RenderPath {rect} at (701.67,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (20,-10) size 60x38 contains 3 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 60x38
+              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
+              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
+              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
+        RenderSVGContainer {g} at (401.67,286.67) size 331.67x63.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,200.00)}]
+          RenderSVGText {text} at (-109,0) size 79x18 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-14) size 79x18
+              chunk 1 (end anchor) text run 1 at (-109.00,0.00) startOffset 0 endOffset 13 width 79.00: "x all y fewer"
+          RenderSVGContainer {use} at (576.67,326.67) size 13.33x13.33
+            RenderSVGContainer {g} at (576.67,326.67) size 13.33x13.33
+              RenderPath {rect} at (576.67,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (610,310.00) size 13.33x13.33
+            RenderSVGContainer {g} at (610.00,310) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
+              RenderPath {rect} at (610.00,310) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (643.33,318.33) size 13.33x13.33
+            RenderSVGContainer {g} at (643.33,318.33) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+              RenderPath {rect} at (643.33,318.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (676.67,335.00) size 13.33x13.33
+            RenderSVGContainer {g} at (676.67,335) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,5.00)}]
+              RenderPath {rect} at (676.67,335) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (710,335.00) size 13.33x13.33
+            RenderSVGContainer {g} at (710.00,335) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(80.00,5.00)}]
+              RenderPath {rect} at (710.00,335) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (20,-10) size 70x38 contains 4 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 70x38
+              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
+              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
+              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 3 width 10.00: "3"
+              chunk 4 text run 1 at (80.00,5.00) startOffset 3 endOffset 4 width 10.00: "4"
+        RenderSVGContainer {g} at (401.67,353.33) size 317.53x71.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,240.00)}]
+          RenderSVGText {text} at (-109,0) size 79x18 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-14) size 79x18
+              chunk 1 (end anchor) text run 1 at (-109.00,0.00) startOffset 0 endOffset 13 width 79.00: "x fewer y all"
+          RenderSVGContainer {use} at (576.67,393.33) size 13.33x13.33
+            RenderSVGContainer {g} at (576.67,393.33) size 13.33x13.33
+              RenderPath {rect} at (576.67,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (610,376.67) size 13.33x13.33
+            RenderSVGContainer {g} at (610.00,376.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-10.00)}]
+              RenderPath {rect} at (610.00,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (643.33,385) size 13.33x13.33
+            RenderSVGContainer {g} at (643.33,385) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+              RenderPath {rect} at (643.33,385) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (676.67,401.67) size 13.33x13.33
+            RenderSVGContainer {g} at (676.67,401.67) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,5.00)}]
+              RenderPath {rect} at (676.67,401.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (705.87,410) size 13.33x13.33
+            RenderSVGContainer {g} at (705.87,410) size 13.33x13.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(77.52,10.00)}]
+              RenderPath {rect} at (705.87,410) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (20,-10) size 60x43 contains 3 chunk(s)
+            RenderSVGInlineText {#text} at (0,-18) size 60x43
+              chunk 1 text run 1 at (20.00,-10.00) startOffset 0 endOffset 1 width 10.00: "1"
+              chunk 2 text run 1 at (40.00,-5.00) startOffset 1 endOffset 2 width 10.00: "2"
+              chunk 3 text run 1 at (60.00,5.00) startOffset 2 endOffset 4 width 20.00: "34"
+    RenderSVGText {text} at (10,340) size 284x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 284x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 17 width 284.00: "$Revision: 1.13 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 1 {g} of child 15 {g} of child 14 {svg} of document
+selection end:   position 17 of child 0 {#text} of child 17 {text} of child 14 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-04-t.svg b/LayoutTests/svg/text/text-text-04-t.svg
new file mode 100755 (executable)
index 0000000..54a853c
--- /dev/null
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--======================================================================-->
+<!--=  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-text-04-t.svg                                                   -->
+<!--                                                                      -->
+<!-- Tests that the viewer can handle the rotate attribute on the text    -->
+<!-- element.                                                             -->
+<!--                                                                      -->
+<!-- Author : Vincent Hardy,  06-Jan-2004                                 --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+    <SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" owner="VH" desc="Tests that the viewer can handle the rotate attribute on the text element" status="accepted" version="$Revision: 1.13 $" testname="$RCSfile: text-text-04-t.svg,v $">
+        <OperatorScript>
+            <Paragraph>
+                The purpose of this test is to validate proper handling of
+                the text element's x and y attributes.
+                In the various samples, a red marker shows the text's (0,0)
+                coordinate. The blue markers show the current text positions.
+                These are either defined by absolute x/y positioning or they
+                are computed from the embeded font's glyphs advances.
+            </Paragraph>
+        <Paragraph>
+                The first text sample shows a reference piece of text.
+        </Paragraph>
+        <Paragraph>
+                The second text sample (x all) shows a piece of text where 
+                all the glyphs are positioned along the x axis.
+        </Paragraph>
+        <Paragraph>
+                The third text sample (x more) is a text element where there 
+                are more x values than characters (5 values for 4 characters).
+                The last x value should be ignored and the result should
+                be the same as the third sample.
+        </Paragraph>
+        <Paragraph>
+                The fourth text sample (x fewer) is a text element where there
+                are fewer x values than characters (3 values for 4 characters).
+                The last character should not be positioned but laid out normally,
+                following its previous character sibling.
+        </Paragraph>
+        <Paragraph>
+                The fifth (y all), sixth (y more) and seventh (y fewer) text sample 
+                parallel the second,
+                third and fourth test, but for the y attribute values.
+        </Paragraph>
+        <Paragraph>
+                The samples in the right column show combinations of x/y 
+                value sets.
+        </Paragraph>
+        <Paragraph>
+                In all the above tests, blue markers represent the expected glyph 
+                positions. The red markers are showing positions where no glyph
+                should appear. The glyphs are black squares of increasing sizes.
+        </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+        <defs>
+            <font id="embeded" horiz-adv-x="224">
+<font-face font-family="embeded" units-per-em="1000" ascent="1000" descent="-250" alphabetic="0"/>
+                <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+                <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="750" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+                <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="750" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+                <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+                <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="750" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+             </font>
+
+    </defs>
+
+    <title id="test-title">text-fontSize-01-t.svg</title>
+    <desc id="test-desc">Test that viewer has the basic capability to handle different font sizes </desc>
+
+    <!--======================================================================-->
+    <!--Content of Test Case follows...                  =====================-->
+    <!--======================================================================-->
+    <g id="test-body-content" font-size="16">
+                <g id="reference" transform="translate(130, 40)">
+                    <text text-anchor="end" x="-30">Reference</text>
+                    <g>
+                        <use xlink:href="#marker" x="0" fill="#8888FF"/>        
+                        <use xlink:href="#marker" x="15" fill="#8888FF"/>        
+                        <use xlink:href="#marker" x="30" fill="#8888FF"/>        
+                        <use xlink:href="#marker" x="45" fill="#8888FF"/>        
+                        <text id="ref" font-family="embeded" font-size="20">1234</text>
+                    </g>
+                </g>
+                <defs>
+                    <rect id="marker" x="-4" y="-4" width="8" height="8"/>
+                </defs>
+                <g id="xAll" transform="translate(130, 80)">
+                    <text text-anchor="end" x="-30">x all</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="80" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60 80">1234</text>        
+                </g>
+
+                <g id="xMore" transform="translate(130, 120)">
+                    <text text-anchor="end" x="-30">x more</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="80" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="100" fill="red"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60 80 100">1234</text>        
+                </g>
+
+                <g id="xFewer" transform="translate(130, 160)">
+                    <text text-anchor="end" x="-30">x fewer</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="75" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60">1234</text>        
+                </g>
+
+                <g id="yAll" transform="translate(130, 200)">
+                    <text text-anchor="end" x="-30">y all</text>
+                    <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="45" y="10" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" y="-10 -5 5 10">1234</text>        
+                </g>
+
+                <g id="yMore" transform="translate(130, 250)">
+                    <text text-anchor="end" x="-30">y more</text>
+                    <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="45" y="10" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" y="-10 -5 5 10 20">1234</text>        
+                </g>
+
+                <g id="yFewer" transform="translate(130, 300)">
+                    <text text-anchor="end" x="-30">y fewer</text>
+                    <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="45" y="5" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" y="-10 -5 5">1234</text>        
+                </g>
+
+                <g transform="translate(220, 0)">
+                <g id="xyAll" transform="translate(130, 80)">
+                    <text text-anchor="end" x="-30">x/y all</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="80" y="10" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5 10">1234</text>        
+                </g>
+
+                <g id="xyMore" transform="translate(130, 120)">
+                    <text text-anchor="end" x="-30">x/y more</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="80" y="10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="100" y="20" fill="red"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60 80 100" y="-10 -5 5 10 20">1234</text>        
+                </g>
+
+                <g id="xyFewer" transform="translate(130, 160)">
+                    <text text-anchor="end" x="-30">x/y fewer</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="75" y="5" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5">1234</text>        
+                </g>
+
+                <g id="xAllyFewer" transform="translate(130, 200)">
+                    <text text-anchor="end" x="-30">x all y fewer</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="80" y="5" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5">1234</text>        
+                </g>
+
+                <g id="xFewerYall" transform="translate(130, 240)">
+                    <text text-anchor="end" x="-30">x fewer y all</text>
+                    <use xlink:href="#marker" x="0" fill="red"/>        
+                    <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>        
+                    <use xlink:href="#marker" x="77.52" y="10" fill="#8888FF"/>        
+                    <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5 10">1234</text>        
+                </g>
+                </g>
+    </g>
+
+
+    <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.13 $</text>
+    <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+    
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-text-05-t-expected.checksum b/LayoutTests/svg/text/text-text-05-t-expected.checksum
new file mode 100644 (file)
index 0000000..643b843
--- /dev/null
@@ -0,0 +1 @@
+a2ebbe6fff7a96003af36921ba78498c
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-05-t-expected.png b/LayoutTests/svg/text/text-text-05-t-expected.png
new file mode 100644 (file)
index 0000000..8dde931
Binary files /dev/null and b/LayoutTests/svg/text/text-text-05-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-05-t-expected.txt b/LayoutTests/svg/text/text-text-05-t-expected.txt
new file mode 100644 (file)
index 0000000..60b6247
--- /dev/null
@@ -0,0 +1,561 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x599.17
+    RenderSVGContainer {g} at (16.67,15) size 673.33x535
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGContainer {g} at (-4,-15) size 8x19
+          RenderPath {line} at (-0.50,-15) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-15.00"]
+          RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#000000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+      RenderSVGContainer {g} at (16.67,93.33) size 73.33x430 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,40.00)}]
+        RenderSVGText {text} at (0,30) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 7 width 44.00: "1.x 1.y"
+        RenderSVGText {text} at (0,60) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,60.00) startOffset 0 endOffset 7 width 44.00: "4.x 1.y"
+        RenderSVGText {text} at (0,90) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,90.00) startOffset 0 endOffset 7 width 44.00: "2.x 1.y"
+        RenderSVGText {text} at (0,120) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,120.00) startOffset 0 endOffset 7 width 44.00: "1.x 4.y"
+        RenderSVGText {text} at (0,150) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,150.00) startOffset 0 endOffset 7 width 44.00: "4.x 4.y"
+        RenderSVGText {text} at (0,180) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,180.00) startOffset 0 endOffset 7 width 44.00: "2.x 4.y"
+        RenderSVGText {text} at (0,210) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,210.00) startOffset 0 endOffset 7 width 44.00: "1.x 2.y"
+        RenderSVGText {text} at (0,240) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,240.00) startOffset 0 endOffset 7 width 44.00: "4.x 2.y"
+        RenderSVGText {text} at (0,270) size 44x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 44x18
+            chunk 1 text run 1 at (0.00,270.00) startOffset 0 endOffset 7 width 44.00: "2.x 2.y"
+      RenderSVGContainer {g} at (190,15.00) size 185x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(150.00,40.00)}]
+        RenderSVGText {text} at (-36,-17) size 70x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 71x18
+            chunk 1 (middle anchor) text run 1 at (-35.50,-17.00) startOffset 0 endOffset 11 width 71.00: "text-anchor"
+        RenderSVGText {text} at (-13,-3) size 26x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 26x18
+            chunk 1 (middle anchor) text run 1 at (-13.00,-3.00) startOffset 0 endOffset 5 width 26.00: "start"
+        RenderPath {line} at (249.17,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
+        RenderSVGContainer {g} at (243.33,91.67) size 131.67x423.33
+          RenderSVGContainer {use} at (243.33,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (243.33,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
+              RenderSVGContainer {g} at (243.33,91.67) size 13.33x31.67
+                RenderPath {line} at (249.17,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (243.33,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (0,30) size 20x13 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 20x13
+              chunk 1 text run 1 at (0.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
+          RenderSVGContainer {use} at (260,141.67) size 13.33x31.67
+            RenderSVGContainer {g} at (260,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
+              RenderSVGContainer {g} at (260,141.67) size 13.33x31.67
+                RenderPath {line} at (265.83,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (260,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (276.67,141.67) size 13.33x31.67
+            RenderSVGContainer {g} at (276.67,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,60.00)}]
+              RenderSVGContainer {g} at (276.67,141.67) size 13.33x31.67
+                RenderPath {line} at (282.50,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (276.67,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (293.33,141.67) size 13.33x31.67
+            RenderSVGContainer {g} at (293.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,60.00)}]
+              RenderSVGContainer {g} at (293.33,141.67) size 13.33x31.67
+                RenderPath {line} at (299.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (293.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (310,141.67) size 13.33x31.67
+            RenderSVGContainer {g} at (310,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,60.00)}]
+              RenderSVGContainer {g} at (310,141.67) size 13.33x31.67
+                RenderPath {line} at (315.83,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (310,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (10,60) size 35x13 contains 4 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 35x13
+              chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
+              chunk 2 text run 1 at (20.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
+              chunk 3 text run 1 at (30.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
+              chunk 4 text run 1 at (40.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
+          RenderSVGContainer {use} at (260,191.67) size 13.33x31.67
+            RenderSVGContainer {g} at (260,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
+              RenderSVGContainer {g} at (260,191.67) size 13.33x31.67
+                RenderPath {line} at (265.83,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (260,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (343.33,191.67) size 13.33x31.67
+            RenderSVGContainer {g} at (343.33,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
+              RenderSVGContainer {g} at (343.33,191.67) size 13.33x31.67
+                RenderPath {line} at (349.17,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (343.33,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (10,90) size 65x13 contains 2 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 65x13
+              chunk 1 text run 1 at (10.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
+              chunk 2 text run 1 at (60.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
+          RenderSVGContainer {g} at (243.33,225.00) size 88.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
+            RenderSVGContainer {use} at (243.33,225.00) size 13.33x31.67
+              RenderSVGContainer {g} at (243.33,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                RenderSVGContainer {g} at (243.33,225.00) size 13.33x31.67
+                  RenderPath {line} at (249.17,225.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (243.33,243.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (268.33,233.33) size 13.33x31.67
+              RenderSVGContainer {g} at (268.33,233.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+                RenderSVGContainer {g} at (268.33,233.33) size 13.33x31.67
+                  RenderPath {line} at (274.17,233.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (268.33,251.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (293.33,250.00) size 13.33x31.67
+              RenderSVGContainer {g} at (293.33,250) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                RenderSVGContainer {g} at (293.33,250) size 13.33x31.67
+                  RenderPath {line} at (299.17,250) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (293.33,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (318.33,258.33) size 13.33x31.67
+              RenderSVGContainer {g} at (318.33,258.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
+                RenderSVGContainer {g} at (318.33,258.33) size 13.33x31.67
+                  RenderPath {line} at (324.17,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (318.33,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (0,-10) size 20x33 contains 1 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 20x33
+                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+          RenderSVGContainer {g} at (260,275) size 65x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
+            RenderSVGContainer {use} at (260,275) size 13.33x31.67
+              RenderSVGContainer {g} at (260,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                RenderSVGContainer {g} at (260,275) size 13.33x31.67
+                  RenderPath {line} at (265.83,275) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (260,293.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (276.67,283.33) size 13.33x31.67
+              RenderSVGContainer {g} at (276.67,283.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                RenderSVGContainer {g} at (276.67,283.33) size 13.33x31.67
+                  RenderPath {line} at (282.50,283.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (276.67,301.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (293.33,300) size 13.33x31.67
+              RenderSVGContainer {g} at (293.33,300) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                RenderSVGContainer {g} at (293.33,300) size 13.33x31.67
+                  RenderPath {line} at (299.17,300) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (293.33,318.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (310,308.33) size 13.33x31.67
+              RenderSVGContainer {g} at (310,308.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,10.00)}]
+                RenderSVGContainer {g} at (310,308.33) size 13.33x31.67
+                  RenderPath {line} at (315.83,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (310,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (10,-10) size 35x33 contains 4 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 35x33
+                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                chunk 3 text run 1 at (30.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                chunk 4 text run 1 at (40.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
+          RenderSVGContainer {g} at (260,325) size 80x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
+            RenderSVGContainer {use} at (260,325) size 13.33x31.67
+              RenderSVGContainer {g} at (260,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                RenderSVGContainer {g} at (260,325) size 13.33x31.67
+                  RenderPath {line} at (265.83,325) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (260,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (276.67,333.33) size 13.33x31.67
+              RenderSVGContainer {g} at (276.67,333.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                RenderSVGContainer {g} at (276.67,333.33) size 13.33x31.67
+                  RenderPath {line} at (282.50,333.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (276.67,351.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (301.67,350) size 13.33x31.67
+              RenderSVGContainer {g} at (301.67,350) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(35.00,5.00)}]
+                RenderSVGContainer {g} at (301.67,350) size 13.33x31.67
+                  RenderPath {line} at (307.50,350) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (301.67,368.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (326.67,358.33) size 13.33x31.67
+              RenderSVGContainer {g} at (326.67,358.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,10.00)}]
+                RenderSVGContainer {g} at (326.67,358.33) size 13.33x31.67
+                  RenderPath {line} at (332.50,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (326.67,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (10,-10) size 25x33 contains 2 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 25x33
+                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+          RenderSVGContainer {g} at (243.33,375) size 40x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
+            RenderSVGContainer {use} at (243.33,375) size 13.33x31.67
+              RenderSVGContainer {g} at (243.33,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                RenderSVGContainer {g} at (243.33,375) size 13.33x31.67
+                  RenderPath {line} at (249.17,375) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (243.33,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (268.33,400) size 13.33x31.67
+              RenderSVGContainer {g} at (268.33,400) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,5.00)}]
+                RenderSVGContainer {g} at (268.33,400) size 13.33x31.67
+                  RenderPath {line} at (274.17,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (268.33,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (0,-10) size 20x28 contains 1 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 20x28
+                chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+          RenderSVGContainer {g} at (260,425) size 65x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
+            RenderSVGContainer {use} at (260,425) size 13.33x31.67
+              RenderSVGContainer {g} at (260,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                RenderSVGContainer {g} at (260,425) size 13.33x31.67
+                  RenderPath {line} at (265.83,425) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (260,443.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (276.67,433.33) size 13.33x31.67
+              RenderSVGContainer {g} at (276.67,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                RenderSVGContainer {g} at (276.67,433.33) size 13.33x31.67
+                  RenderPath {line} at (282.50,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (276.67,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (293.33,433.33) size 13.33x31.67
+              RenderSVGContainer {g} at (293.33,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,-5.00)}]
+                RenderSVGContainer {g} at (293.33,433.33) size 13.33x31.67
+                  RenderPath {line} at (299.17,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (293.33,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (310,433.33) size 13.33x31.67
+              RenderSVGContainer {g} at (310,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+                RenderSVGContainer {g} at (310,433.33) size 13.33x31.67
+                  RenderPath {line} at (315.83,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (310,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (10,-10) size 35x18 contains 4 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 35x18
+                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                chunk 2 text run 1 at (20.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                chunk 3 text run 1 at (30.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                chunk 4 text run 1 at (40.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
+          RenderSVGContainer {g} at (260,475.00) size 115x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
+            RenderSVGContainer {use} at (260,475.00) size 13.33x31.67
+              RenderSVGContainer {g} at (260,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                RenderSVGContainer {g} at (260,475.00) size 13.33x31.67
+                  RenderPath {line} at (265.83,475.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (260,493.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGContainer {use} at (343.33,483.33) size 13.33x31.67
+              RenderSVGContainer {g} at (343.33,483.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,-5.00)}]
+                RenderSVGContainer {g} at (343.33,483.33) size 13.33x31.67
+                  RenderPath {line} at (349.17,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (343.33,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+            RenderSVGText {text} at (10,-10) size 65x18 contains 2 chunk(s)
+              RenderSVGInlineText {#text} at (0,-10) size 65x18
+                chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                chunk 2 text run 1 at (60.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+      RenderSVGContainer {g} at (356.67,15.00) size 171.67x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(250.00,40.00)}]
+        RenderSVGText {text} at (-36,-17) size 70x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 71x18
+            chunk 1 (middle anchor) text run 1 at (-35.50,-17.00) startOffset 0 endOffset 11 width 71.00: "text-anchor"
+        RenderSVGText {text} at (-22,-3) size 42x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 43x18
+            chunk 1 (middle anchor) text run 1 at (-21.50,-3.00) startOffset 0 endOffset 6 width 43.00: "middle"
+        RenderPath {line} at (415.83,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
+        RenderSVGContainer {use} at (400,91.67) size 128.33x423.33
+          RenderSVGContainer {g} at (400,91.67) size 128.33x423.33
+            RenderSVGContainer {g} at (400,91.67) size 128.33x423.33
+              RenderSVGContainer {g} at (410,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
+                RenderSVGContainer {g} at (410,91.67) size 13.33x31.67
+                  RenderPath {line} at (415.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (410,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (-10,30) size 20x13 contains 1 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 20x13
+                  chunk 1 (middle anchor) text run 1 at (-10.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (426.67,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
+                RenderSVGContainer {g} at (426.67,141.67) size 13.33x31.67
+                  RenderPath {line} at (432.50,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (426.67,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (443.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,60.00)}]
+                RenderSVGContainer {g} at (443.33,141.67) size 13.33x31.67
+                  RenderPath {line} at (449.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (443.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (460,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,60.00)}]
+                RenderSVGContainer {g} at (460,141.67) size 13.33x31.67
+                  RenderPath {line} at (465.83,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (460,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (476.67,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,60.00)}]
+                RenderSVGContainer {g} at (476.67,141.67) size 13.33x31.67
+                  RenderPath {line} at (482.50,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (476.67,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (7,60) size 35x13 contains 4 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 35x13
+                  chunk 1 (middle anchor) text run 1 at (7.50,60.00) startOffset 0 endOffset 1 width 5.00: "1"
+                  chunk 2 (middle anchor) text run 1 at (17.50,60.00) startOffset 1 endOffset 2 width 5.00: "2"
+                  chunk 3 (middle anchor) text run 1 at (27.50,60.00) startOffset 2 endOffset 3 width 5.00: "3"
+                  chunk 4 (middle anchor) text run 1 at (37.50,60.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (426.67,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
+                RenderSVGContainer {g} at (426.67,191.67) size 13.33x31.67
+                  RenderPath {line} at (432.50,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (426.67,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (510.00,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
+                RenderSVGContainer {g} at (510.00,191.67) size 13.33x31.67
+                  RenderPath {line} at (515.83,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (510.00,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (7,90) size 60x13 contains 2 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 60x13
+                  chunk 1 (middle anchor) text run 1 at (7.50,90.00) startOffset 0 endOffset 1 width 5.00: "1"
+                  chunk 2 (middle anchor) text run 1 at (52.50,90.00) startOffset 1 endOffset 4 width 15.00: "234"
+              RenderSVGContainer {g} at (400,225.00) size 98.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
+                RenderSVGContainer {g} at (410,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                  RenderSVGContainer {g} at (410,225.00) size 13.33x31.67
+                    RenderPath {line} at (415.83,225.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (410,243.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (435,233.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+                  RenderSVGContainer {g} at (435,233.33) size 13.33x31.67
+                    RenderPath {line} at (440.83,233.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (435,251.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (460,250) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                  RenderSVGContainer {g} at (460,250) size 13.33x31.67
+                    RenderPath {line} at (465.83,250) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (460,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (485,258.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
+                  RenderSVGContainer {g} at (485,258.33) size 13.33x31.67
+                    RenderPath {line} at (490.83,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (485,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (-10,-10) size 20x33 contains 1 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 20x33
+                    chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (426.67,275) size 63.33x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
+                RenderSVGContainer {g} at (426.67,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (426.67,275) size 13.33x31.67
+                    RenderPath {line} at (432.50,275) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (426.67,293.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (443.33,283.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (443.33,283.33) size 13.33x31.67
+                    RenderPath {line} at (449.17,283.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (443.33,301.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (460,300) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                  RenderSVGContainer {g} at (460,300) size 13.33x31.67
+                    RenderPath {line} at (465.83,300) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (460,318.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (476.67,308.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,10.00)}]
+                  RenderSVGContainer {g} at (476.67,308.33) size 13.33x31.67
+                    RenderPath {line} at (482.50,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (476.67,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (7,-10) size 35x33 contains 4 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 35x33
+                    chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                    chunk 3 (middle anchor) text run 1 at (27.50,5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                    chunk 4 (middle anchor) text run 1 at (37.50,10.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (426.67,325) size 80x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
+                RenderSVGContainer {g} at (426.67,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (426.67,325) size 13.33x31.67
+                    RenderPath {line} at (432.50,325) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (426.67,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (443.33,333.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (443.33,333.33) size 13.33x31.67
+                    RenderPath {line} at (449.17,333.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (443.33,351.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (468.33,350) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(35.00,5.00)}]
+                  RenderSVGContainer {g} at (468.33,350) size 13.33x31.67
+                    RenderPath {line} at (474.17,350) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (468.33,368.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (493.33,358.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,10.00)}]
+                  RenderSVGContainer {g} at (493.33,358.33) size 13.33x31.67
+                    RenderPath {line} at (499.17,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (493.33,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (7,-10) size 20x33 contains 2 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 20x33
+                    chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (middle anchor) text run 1 at (12.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+              RenderSVGContainer {g} at (400,375) size 48.33x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
+                RenderSVGContainer {g} at (410,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                  RenderSVGContainer {g} at (410,375) size 13.33x31.67
+                    RenderPath {line} at (415.83,375) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (410,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (435,400) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,5.00)}]
+                  RenderSVGContainer {g} at (435,400) size 13.33x31.67
+                    RenderPath {line} at (440.83,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (435,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (-10,-10) size 20x28 contains 1 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 20x28
+                    chunk 1 (middle anchor) text run 1 at (-10.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (426.67,425) size 63.33x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
+                RenderSVGContainer {g} at (426.67,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (426.67,425) size 13.33x31.67
+                    RenderPath {line} at (432.50,425) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (426.67,443.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (443.33,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (443.33,433.33) size 13.33x31.67
+                    RenderPath {line} at (449.17,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (443.33,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (460,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,-5.00)}]
+                  RenderSVGContainer {g} at (460,433.33) size 13.33x31.67
+                    RenderPath {line} at (465.83,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (460,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (476.67,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+                  RenderSVGContainer {g} at (476.67,433.33) size 13.33x31.67
+                    RenderPath {line} at (482.50,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (476.67,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (7,-10) size 35x18 contains 4 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 35x18
+                    chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (middle anchor) text run 1 at (17.50,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                    chunk 3 (middle anchor) text run 1 at (27.50,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                    chunk 4 (middle anchor) text run 1 at (37.50,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (426.67,475.00) size 101.67x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
+                RenderSVGContainer {g} at (426.67,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (426.67,475.00) size 13.33x31.67
+                    RenderPath {line} at (432.50,475.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (426.67,493.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (510.00,483.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,-5.00)}]
+                  RenderSVGContainer {g} at (510.00,483.33) size 13.33x31.67
+                    RenderPath {line} at (515.83,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (510.00,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (7,-10) size 60x18 contains 2 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 60x18
+                    chunk 1 (middle anchor) text run 1 at (7.50,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (middle anchor) text run 1 at (52.50,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+      RenderSVGContainer {g} at (523.33,15.00) size 166.67x535 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,40.00)}]
+        RenderSVGText {text} at (-36,-17) size 70x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 71x18
+            chunk 1 (middle anchor) text run 1 at (-35.50,-17.00) startOffset 0 endOffset 11 width 71.00: "text-anchor"
+        RenderSVGText {text} at (-12,-3) size 22x18 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 23x18
+            chunk 1 (middle anchor) text run 1 at (-11.50,-3.00) startOffset 0 endOffset 3 width 23.00: "end"
+        RenderPath {line} at (582.50,83.33) size 1.67x466.67 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,10.00L0.00,290.00"]
+        RenderSVGContainer {use} at (550,91.67) size 140x423.33
+          RenderSVGContainer {g} at (550,91.67) size 140x423.33
+            RenderSVGContainer {g} at (550,91.67) size 140x423.33
+              RenderSVGContainer {g} at (576.67,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,30.00)}]
+                RenderSVGContainer {g} at (576.67,91.67) size 13.33x31.67
+                  RenderPath {line} at (582.50,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (576.67,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (-20,30) size 20x13 contains 1 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 20x13
+                  chunk 1 (end anchor) text run 1 at (-20.00,30.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (593.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,60.00)}]
+                RenderSVGContainer {g} at (593.33,141.67) size 13.33x31.67
+                  RenderPath {line} at (599.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (593.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (610.00,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,60.00)}]
+                RenderSVGContainer {g} at (610.00,141.67) size 13.33x31.67
+                  RenderPath {line} at (615.83,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (610.00,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (626.67,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,60.00)}]
+                RenderSVGContainer {g} at (626.67,141.67) size 13.33x31.67
+                  RenderPath {line} at (632.50,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (626.67,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (643.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,60.00)}]
+                RenderSVGContainer {g} at (643.33,141.67) size 13.33x31.67
+                  RenderPath {line} at (649.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (643.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (5,60) size 35x13 contains 4 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 35x13
+                  chunk 1 (end anchor) text run 1 at (5.00,60.00) startOffset 0 endOffset 1 width 5.00: "1"
+                  chunk 2 (end anchor) text run 1 at (15.00,60.00) startOffset 1 endOffset 2 width 5.00: "2"
+                  chunk 3 (end anchor) text run 1 at (25.00,60.00) startOffset 2 endOffset 3 width 5.00: "3"
+                  chunk 4 (end anchor) text run 1 at (35.00,60.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (593.33,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,90.00)}]
+                RenderSVGContainer {g} at (593.33,191.67) size 13.33x31.67
+                  RenderPath {line} at (599.17,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (593.33,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGContainer {g} at (676.67,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,90.00)}]
+                RenderSVGContainer {g} at (676.67,191.67) size 13.33x31.67
+                  RenderPath {line} at (682.50,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                  RenderPath {rect} at (676.67,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+              RenderSVGText {text} at (5,90) size 55x13 contains 2 chunk(s)
+                RenderSVGInlineText {#text} at (0,-10) size 55x13
+                  chunk 1 (end anchor) text run 1 at (5.00,90.00) startOffset 0 endOffset 1 width 5.00: "1"
+                  chunk 2 (end anchor) text run 1 at (45.00,90.00) startOffset 1 endOffset 4 width 15.00: "234"
+              RenderSVGContainer {g} at (550,225.00) size 115x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,120.00)}]
+                RenderSVGContainer {g} at (576.67,225.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                  RenderSVGContainer {g} at (576.67,225.00) size 13.33x31.67
+                    RenderPath {line} at (582.50,225.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (576.67,243.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (601.67,233.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,-5.00)}]
+                  RenderSVGContainer {g} at (601.67,233.33) size 13.33x31.67
+                    RenderPath {line} at (607.50,233.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (601.67,251.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (626.67,250) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                  RenderSVGContainer {g} at (626.67,250) size 13.33x31.67
+                    RenderPath {line} at (632.50,250) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (626.67,268.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (651.67,258.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,10.00)}]
+                  RenderSVGContainer {g} at (651.67,258.33) size 13.33x31.67
+                    RenderPath {line} at (657.50,258.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (651.67,276.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (-20,-10) size 20x33 contains 1 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 20x33
+                    chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (591.67,275) size 65x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,150.00)}]
+                RenderSVGContainer {g} at (593.33,275) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (593.33,275) size 13.33x31.67
+                    RenderPath {line} at (599.17,275) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (593.33,293.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (610.00,283.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (610.00,283.33) size 13.33x31.67
+                    RenderPath {line} at (615.83,283.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (610.00,301.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (626.67,300) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,5.00)}]
+                  RenderSVGContainer {g} at (626.67,300) size 13.33x31.67
+                    RenderPath {line} at (632.50,300) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (626.67,318.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (643.33,308.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,10.00)}]
+                  RenderSVGContainer {g} at (643.33,308.33) size 13.33x31.67
+                    RenderPath {line} at (649.17,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (643.33,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (5,-10) size 35x33 contains 4 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 35x33
+                    chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                    chunk 3 (end anchor) text run 1 at (25.00,5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                    chunk 4 (end anchor) text run 1 at (35.00,10.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (591.67,325) size 81.67x65 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,180.00)}]
+                RenderSVGContainer {g} at (593.33,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (593.33,325) size 13.33x31.67
+                    RenderPath {line} at (599.17,325) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (593.33,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (610.00,333.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (610.00,333.33) size 13.33x31.67
+                    RenderPath {line} at (615.83,333.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (610.00,351.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (635.00,350) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(35.00,5.00)}]
+                  RenderSVGContainer {g} at (635.00,350) size 13.33x31.67
+                    RenderPath {line} at (640.83,350) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (635.00,368.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (660.00,358.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,10.00)}]
+                  RenderSVGContainer {g} at (660.00,358.33) size 13.33x31.67
+                    RenderPath {line} at (665.83,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (660.00,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (5,-10) size 15x33 contains 2 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 15x33
+                    chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (end anchor) text run 1 at (5.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+              RenderSVGContainer {g} at (550,375) size 65x56.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,210.00)}]
+                RenderSVGContainer {g} at (576.67,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+                  RenderSVGContainer {g} at (576.67,375) size 13.33x31.67
+                    RenderPath {line} at (582.50,375) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (576.67,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (601.67,400) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,5.00)}]
+                  RenderSVGContainer {g} at (601.67,400) size 13.33x31.67
+                    RenderPath {line} at (607.50,400) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (601.67,418.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (-20,-10) size 20x28 contains 1 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 20x28
+                    chunk 1 (end anchor) text run 1 at (-20.00,-10.00) startOffset 0 endOffset 4 width 20.00: "1234"
+              RenderSVGContainer {g} at (591.67,425) size 65x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,240.00)}]
+                RenderSVGContainer {g} at (593.33,425) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (593.33,425) size 13.33x31.67
+                    RenderPath {line} at (599.17,425) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (593.33,443.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (610.00,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,-5.00)}]
+                  RenderSVGContainer {g} at (610.00,433.33) size 13.33x31.67
+                    RenderPath {line} at (615.83,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (610.00,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (626.67,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,-5.00)}]
+                  RenderSVGContainer {g} at (626.67,433.33) size 13.33x31.67
+                    RenderPath {line} at (632.50,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (626.67,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (643.33,433.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,-5.00)}]
+                  RenderSVGContainer {g} at (643.33,433.33) size 13.33x31.67
+                    RenderPath {line} at (649.17,433.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (643.33,451.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (5,-10) size 35x18 contains 4 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 35x18
+                    chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (end anchor) text run 1 at (15.00,-5.00) startOffset 1 endOffset 2 width 5.00: "2"
+                    chunk 3 (end anchor) text run 1 at (25.00,-5.00) startOffset 2 endOffset 3 width 5.00: "3"
+                    chunk 4 (end anchor) text run 1 at (35.00,-5.00) startOffset 3 endOffset 4 width 5.00: "4"
+              RenderSVGContainer {g} at (591.67,475.00) size 98.33x40 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,270.00)}]
+                RenderSVGContainer {g} at (593.33,475.00) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+                  RenderSVGContainer {g} at (593.33,475.00) size 13.33x31.67
+                    RenderPath {line} at (599.17,475.00) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (593.33,493.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGContainer {g} at (676.67,483.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,-5.00)}]
+                  RenderSVGContainer {g} at (676.67,483.33) size 13.33x31.67
+                    RenderPath {line} at (682.50,483.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                    RenderPath {rect} at (676.67,501.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+                RenderSVGText {text} at (5,-10) size 55x18 contains 2 chunk(s)
+                  RenderSVGInlineText {#text} at (0,-10) size 55x18
+                    chunk 1 (end anchor) text run 1 at (5.00,-10.00) startOffset 0 endOffset 1 width 5.00: "1"
+                    chunk 2 (end anchor) text run 1 at (45.00,-5.00) startOffset 1 endOffset 4 width 15.00: "234"
+    RenderSVGText {text} at (10,350) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,350.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.8 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 5 {g} of child 13 {g} of child 8 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 8 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-05-t.svg b/LayoutTests/svg/text/text-text-05-t.svg
new file mode 100755 (executable)
index 0000000..b6e5697
--- /dev/null
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =====================================================================-->
+<!--                                                                      -->
+<!-- text-text-05-t.svg                                                 -->
+<!--                                                                      -->
+<!-- Tests that the viewer can handle the rotate attribute on the text    -->
+<!-- element.                                                             -->
+<!--                                                                      -->
+<!-- Author : Vincent Hardy,  06-Jan-2004                                 --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+    <SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" owner="VH" desc="Tests that the viewer can handle the rotate         attribute on the text element" status="accepted" version="$Revision: 1.8 $" testname="$RCSfile: text-text-05-t.svg,v $">
+        <OperatorScript>
+            <Paragraph>
+                The purpose of this test is to validate the interaction of text-anchor
+                and x/y glyph positioning.
+            </Paragraph>
+            <Paragraph>
+                Each row shows a different combination of x/y values: 1, more than characters,
+                fewer than characters. Each column shows different anchor values: start, middle
+                and end.
+            </Paragraph>
+            <Paragraph>
+                The blue markers show the various x/y absolute positions around which text
+                chunks should be anchored. The glyphs are black squares of increasing sizes.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+    <title id="test-title">text-fontSize-01-t.svg</title>
+    <desc id="test-desc"/>
+
+    <!--======================================================================-->
+    <!--Content of Test Case follows...                  =====================-->
+    <!--======================================================================-->
+    <g id="test-body-content" font-size="16">
+        <defs>
+            <font id="embeded" horiz-adv-x="224">
+<font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0"/>
+                <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+                <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+                <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+                <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+                <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+            </font>
+
+        </defs>
+
+                <defs>
+                    <g id="marker">
+                        <line y2="-15" stroke="red"/>
+                        <rect x="-4" y="-4" width="8" height="8"/>
+                    </g>
+                </defs>
+
+                <g id="legend" transform="translate(10, 40)">
+                    <text y="30">1.x 1.y</text>
+                    <text y="60">4.x 1.y</text>
+                    <text y="90">2.x 1.y</text>
+                    <text y="120">1.x 4.y</text>
+                    <text y="150">4.x 4.y</text>
+                    <text y="180">2.x 4.y</text>
+                    <text y="210">1.x 2.y</text>
+                    <text y="240">4.x 2.y</text>
+                    <text y="270">2.x 2.y</text>
+                </g>
+
+                <g id="anchorStart" text-anchor="start" transform="translate(150, 40)">
+                    <text y="-17" text-anchor="middle">text-anchor</text>
+                    <text y="-3" text-anchor="middle">start</text>
+                    <line x1="0" y1="10" x2="0" y2="290" stroke="red"/>
+
+                    <g id="textContent">
+                        <!-- 1.x 1.y -->
+                        <use y="30" xlink:href="#marker" fill="#8888ff"/>
+                        <text x="0" y="30" font-family="embeded" font-size="10">1234</text>
+
+                        <!-- 4.x 1.y : four text chunks -->
+                        <use x="10" y="60" xlink:href="#marker" fill="#8888ff"/>
+                        <use x="20" y="60" xlink:href="#marker" fill="#8888ff"/>
+                        <use x="30" y="60" xlink:href="#marker" fill="#8888ff"/>
+                        <use x="40" y="60" xlink:href="#marker" fill="#8888ff"/>
+                        <text x="10 20 30 40" y="60" font-family="embeded" font-size="10">1234</text>
+
+                        <!-- 2.x 1.y : two text chunks -->
+                        <use x="10" y="90" xlink:href="#marker" fill="#8888ff"/>
+                        <use x="60" y="90" xlink:href="#marker" fill="#8888ff"/>
+                        <text x="10 60" y="90" font-family="embeded" font-size="10">1234</text>
+
+                        <!-- 1.x 4.y : four text chunks -->
+                        <g transform="translate(0, 120)">
+                            <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="15" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="45" y="10" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="0" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                        <!-- 4.x 4.y : four text chunks -->
+                        <g transform="translate(0, 150)">
+                            <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="40" y="10" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="10 20 30 40" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                        <!-- 2.x 4.y : four text chunks -->
+                        <g transform="translate(0, 180)">
+                            <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="35" y="5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="50" y="10" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="10 20" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                        <!-- 1.x 2.y : two text chunks -->
+                        <g transform="translate(0, 210)">
+                            <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="15" y="5" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="0" y="-10 5" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                        <!-- 4.x 2.y : four text chunks -->
+                        <g transform="translate(0, 240)">
+                            <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="30" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="40" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="10 20 30 40" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                        <!-- 2.x 2.y : two text chunks -->
+                        <g transform="translate(0, 270)">
+                            <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+                            <use x="60" y="-5" xlink:href="#marker" fill="#8888ff"/>
+                            <text x="10 60" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+                        </g>
+
+                    </g>
+                </g>
+
+                <g id="anchorMiddle" text-anchor="middle" transform="translate(250, 40)">
+                    <text y="-17" text-anchor="middle">text-anchor</text>
+                    <text y="-3" text-anchor="middle">middle</text>
+                    <line x1="0" y1="10" x2="0" y2="290" stroke="red"/>
+                    <use xlink:href="#textContent"/>
+                </g>
+
+                <g id="anchorEnd" text-anchor="end" transform="translate(350, 40)">
+                    <text y="-17" text-anchor="middle">text-anchor</text>
+                    <text y="-3" text-anchor="middle">end</text>
+                    <line x1="0" y1="10" x2="0" y2="290" stroke="red"/>
+                    <use xlink:href="#textContent"/>
+                </g>
+
+        </g>
+
+    <text id="revision" x="10" y="350" font-size="40" stroke="none" fill="black">$Revision: 1.8 $</text>
+    <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+    
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-text-06-t-expected.checksum b/LayoutTests/svg/text/text-text-06-t-expected.checksum
new file mode 100644 (file)
index 0000000..faad28d
--- /dev/null
@@ -0,0 +1 @@
+499bb4186eb7c3430df9f178ebc63529
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-06-t-expected.png b/LayoutTests/svg/text/text-text-06-t-expected.png
new file mode 100644 (file)
index 0000000..19c5b6c
Binary files /dev/null and b/LayoutTests/svg/text/text-text-06-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-06-t-expected.txt b/LayoutTests/svg/text/text-text-06-t-expected.txt
new file mode 100644 (file)
index 0000000..3e8c387
--- /dev/null
@@ -0,0 +1,139 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (50,91.67) size 458.33x348.33
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGContainer {g} at (-4,-15) size 8x19
+          RenderPath {line} at (-0.50,-15) size 1x15 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00L0.00,-15.00"]
+          RenderPath {rect} at (-4,-4) size 8x8 [fill={[type=SOLID] [color=#000000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+      RenderSVGContainer {g} at (50,91.67) size 458.33x348.33 [transform={m=((1.00,0.00)(0.00,1.00)) t=(20.00,30.00)}]
+        RenderSVGContainer {g} at (50,98.33) size 118.33x256.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,40.00)}]
+          RenderSVGText {text} at (0,0) size 62x14 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-11) size 62x14
+              chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 13 width 62.00: "x positioning"
+          RenderSVGText {text} at (0,40) size 62x14 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-11) size 62x14
+              chunk 1 text run 1 at (0.00,40.00) startOffset 0 endOffset 13 width 62.00: "y positioning"
+          RenderSVGText {text} at (0,140) size 71x14 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-11) size 71x14
+              chunk 1 text run 1 at (0.00,140.00) startOffset 0 endOffset 15 width 71.00: "x/y positioning"
+        RenderSVGContainer {g} at (210,91.67) size 298.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,40.00)}]
+          RenderSVGContainer {use} at (210,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (210,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,0.00)}]
+              RenderSVGContainer {g} at (210,91.67) size 13.33x31.67
+                RenderPath {line} at (215.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (210,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (493.33,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (493.33,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,0.00)}]
+              RenderSVGContainer {g} at (493.33,91.67) size 13.33x31.67
+                RenderPath {line} at (499.17,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (493.33,110) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (260,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (260,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}]
+              RenderSVGContainer {g} at (260,91.67) size 13.33x31.67
+                RenderPath {line} at (265.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (260,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (310,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (310,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(70.00,0.00)}]
+              RenderSVGContainer {g} at (310,91.67) size 13.33x31.67
+                RenderPath {line} at (315.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (310,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (360,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (360,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,0.00)}]
+              RenderSVGContainer {g} at (360,91.67) size 13.33x31.67
+                RenderPath {line} at (365.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (360,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (410,91.67) size 13.33x31.67
+            RenderSVGContainer {g} at (410,91.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,0.00)}]
+              RenderSVGContainer {g} at (410,91.67) size 13.33x31.67
+                RenderPath {line} at (415.83,91.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (410,110) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (10,0) size 175x13 contains 6 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 175x13
+              chunk 1 text run 1 at (10.00,0.00) startOffset 0 endOffset 1 width 3.00: "f"
+              chunk 2 text run 1 at (180.00,0.00) startOffset 1 endOffset 2 width 3.00: "i"
+              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
+              chunk 4 text run 1 at (70.00,0.00) startOffset 3 endOffset 4 width 5.00: "2"
+              chunk 5 text run 1 at (100.00,0.00) startOffset 4 endOffset 5 width 5.00: "3"
+              chunk 6 text run 1 at (130.00,0.00) startOffset 5 endOffset 6 width 5.00: "4"
+        RenderSVGContainer {g} at (193.33,141.67) size 113.33x131.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,80.00)}]
+          RenderSVGContainer {use} at (193.33,141.67) size 13.33x31.67
+            RenderSVGContainer {g} at (193.33,141.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-10.00)}]
+              RenderSVGContainer {g} at (193.33,141.67) size 13.33x31.67
+                RenderPath {line} at (199.17,141.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (193.33,160.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (218.33,241.67) size 13.33x31.67
+            RenderSVGContainer {g} at (218.33,241.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,50.00)}]
+              RenderSVGContainer {g} at (218.33,241.67) size 13.33x31.67
+                RenderPath {line} at (224.17,241.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (218.33,260) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (218.33,158.33) size 13.33x31.67
+            RenderSVGContainer {g} at (218.33,158.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,0.00)}]
+              RenderSVGContainer {g} at (218.33,158.33) size 13.33x31.67
+                RenderPath {line} at (224.17,158.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (218.33,176.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (243.33,175) size 13.33x31.67
+            RenderSVGContainer {g} at (243.33,175) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(30.00,10.00)}]
+              RenderSVGContainer {g} at (243.33,175) size 13.33x31.67
+                RenderPath {line} at (249.17,175) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (243.33,193.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (268.33,191.67) size 13.33x31.67
+            RenderSVGContainer {g} at (268.33,191.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(45.00,20.00)}]
+              RenderSVGContainer {g} at (268.33,191.67) size 13.33x31.67
+                RenderPath {line} at (274.17,191.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (268.33,210.00) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (293.33,208.33) size 13.33x31.67
+            RenderSVGContainer {g} at (293.33,208.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(60.00,30.00)}]
+              RenderSVGContainer {g} at (293.33,208.33) size 13.33x31.67
+                RenderPath {line} at (299.17,208.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (293.33,226.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (0,-10) size 26x73 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 26x73
+              chunk 1 text run 1 at (0.00,-10.00) startOffset 0 endOffset 6 width 26.00: "fi1234"
+        RenderSVGContainer {g} at (210,308.33) size 298.33x131.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,180.00)}]
+          RenderSVGContainer {use} at (210,308.33) size 13.33x31.67
+            RenderSVGContainer {g} at (210,308.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(10.00,-10.00)}]
+              RenderSVGContainer {g} at (210,308.33) size 13.33x31.67
+                RenderPath {line} at (215.83,308.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (210,326.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (493.33,408.33) size 13.33x31.67
+            RenderSVGContainer {g} at (493.33,408.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(180.00,50.00)}]
+              RenderSVGContainer {g} at (493.33,408.33) size 13.33x31.67
+                RenderPath {line} at (499.17,408.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (493.33,426.67) size 13.33x13.33 [fill={[type=SOLID] [color=#FF0000]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (260,325) size 13.33x31.67
+            RenderSVGContainer {g} at (260,325) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(40.00,0.00)}]
+              RenderSVGContainer {g} at (260,325) size 13.33x31.67
+                RenderPath {line} at (265.83,325) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (260,343.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (310,341.67) size 13.33x31.67
+            RenderSVGContainer {g} at (310,341.67) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(70.00,10.00)}]
+              RenderSVGContainer {g} at (310,341.67) size 13.33x31.67
+                RenderPath {line} at (315.83,341.67) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (310,360) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (360,358.33) size 13.33x31.67
+            RenderSVGContainer {g} at (360,358.33) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(100.00,20.00)}]
+              RenderSVGContainer {g} at (360,358.33) size 13.33x31.67
+                RenderPath {line} at (365.83,358.33) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (360,376.67) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGContainer {use} at (410,375) size 13.33x31.67
+            RenderSVGContainer {g} at (410,375) size 13.33x31.67 [transform={m=((1.00,0.00)(0.00,1.00)) t=(130.00,30.00)}]
+              RenderSVGContainer {g} at (410,375) size 13.33x31.67
+                RenderPath {line} at (415.83,375) size 1.67x25 [stroke={[type=SOLID] [color=#FF0000]}] [fill={[type=SOLID] [color=#8888FF]}] [data="M0.00,0.00L0.00,-15.00"]
+                RenderPath {rect} at (410,393.33) size 13.33x13.33 [fill={[type=SOLID] [color=#8888FF]}] [data="M-4.00,-4.00L4.00,-4.00L4.00,4.00L-4.00,4.00"]
+          RenderSVGText {text} at (10,-10) size 175x73 contains 6 chunk(s)
+            RenderSVGInlineText {#text} at (0,-10) size 175x73
+              chunk 1 text run 1 at (10.00,-10.00) startOffset 0 endOffset 1 width 3.00: "f"
+              chunk 2 text run 1 at (180.00,50.00) startOffset 1 endOffset 2 width 3.00: "i"
+              chunk 3 text run 1 at (40.00,0.00) startOffset 2 endOffset 3 width 5.00: "1"
+              chunk 4 text run 1 at (70.00,10.00) startOffset 3 endOffset 4 width 5.00: "2"
+              chunk 5 text run 1 at (100.00,20.00) startOffset 4 endOffset 5 width 5.00: "3"
+              chunk 6 text run 1 at (130.00,30.00) startOffset 5 endOffset 6 width 5.00: "4"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.9 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 1 {g} of child 5 {g} of child 3 {g} of child 11 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 5 {text} of child 11 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-06-t.svg b/LayoutTests/svg/text/text-text-06-t.svg
new file mode 100755 (executable)
index 0000000..bbb9cce
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--======================================================================-->
+<!--=  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-text-06-t.svg                                                 -->
+<!--                                                                      -->
+<!-- Author : Vincent Hardy,  06-Jan-2004                                 --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+    <SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" owner="VH" desc="x/y glyph positioning on ligatures" status="accepted" version="$Revision: 1.9 $" testname="$RCSfile: text-text-06-t.svg,v $">
+        <OperatorScript>
+            <Paragraph>
+                The purpose of this test is to validate the interaction of x/y
+                glyph positioning an ligatures.
+            </Paragraph>
+            <Paragraph>
+                The first line shows an example where there is a ligature (fi) which
+                should be accounted for before breaking into text chunks (see specification
+                section 10.5, additional x/y/dx/dy processing rules, bullet discussing 
+                ligatures). In this first line, the ligatures cause the x position 180
+                (shown in red), to be ignored. As a result, a glyph should be shown over
+                each pale blue square markers. The glyphs are black squares of increasing sizes
+                except for the initial ligature which has the form of two small black triangles
+                joined at their tops. The ligature should show on the first pale blue 
+                marker position.
+            </Paragraph>
+            <Paragraph>
+                 The second line shows the same test but using multiple y positions.
+            </Paragraph>
+            <Paragraph>
+                 The third line shows the same test but using multiple x and y
+                 positions.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+    <g id="test-body-content" font-size="10">
+        <defs>
+        <font id="embeded" horiz-adv-x="224">
+<font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0"/>
+            <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+            <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+            <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+            <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+            <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+            <glyph unicode="fi" glyph-name="fi" horiz-adv-x="1500" d="M 0 0 L 500 0 L 0 700 L 500 700 Z"/>
+        </font>
+        </defs>
+
+        <defs>
+            <g id="marker">
+                <line y2="-15" stroke="red"/>
+                <rect x="-4" y="-4" width="8" height="8"/>
+            </g>
+        </defs>
+
+        <g transform="translate(20, 30)">
+        <g id="legend" transform="translate(10, 40)" font-size="12">
+            <text>x positioning</text>
+            <text y="40">y positioning</text>
+            <text y="140">x/y positioning</text>
+        </g>
+
+        <g transform="translate(100, 40)">
+            <use xlink:href="#marker" x="10" fill="#8888ff"/>
+            <use xlink:href="#marker" x="180" fill="red"/>
+            <use xlink:href="#marker" x="40" fill="#8888ff"/>
+            <use xlink:href="#marker" x="70" fill="#8888ff"/>
+            <use xlink:href="#marker" x="100" fill="#8888ff"/>
+            <use xlink:href="#marker" x="130" fill="#8888ff"/>
+            <text x="10 180 40 70 100 130" y="0" font-family="embeded">fi1234</text>
+        </g>
+
+        <g transform="translate(100, 80)">
+            <use xlink:href="#marker" y="-10" fill="#8888ff"/>
+            <use xlink:href="#marker" x="15" y="50" fill="red"/>
+            <use xlink:href="#marker" x="15" y="0" fill="#8888ff"/>
+            <use xlink:href="#marker" x="30" y="10" fill="#8888ff"/>
+            <use xlink:href="#marker" x="45" y="20" fill="#8888ff"/>
+            <use xlink:href="#marker" x="60" y="30" fill="#8888ff"/>
+            <text y="-10 50 0 10 20 30" x="0" font-family="embeded">fi1234</text>
+        </g>
+
+        <g transform="translate(100, 180)">
+            <use xlink:href="#marker" x="10" y="-10" fill="#8888ff"/>
+            <use xlink:href="#marker" x="180" y="50" fill="red"/>
+            <use xlink:href="#marker" x="40" y="0" fill="#8888ff"/>
+            <use xlink:href="#marker" x="70" y="10" fill="#8888ff"/>
+            <use xlink:href="#marker" x="100" y="20" fill="#8888ff"/>
+            <use xlink:href="#marker" x="130" y="30" fill="#8888ff"/>
+            <text x="10 180 40 70 100 130" y="-10 50 0 10 20 30" font-family="embeded">fi1234</text>
+        </g>
+        </g>
+    </g>
+
+    <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
+    <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-text-07-t-expected.checksum b/LayoutTests/svg/text/text-text-07-t-expected.checksum
new file mode 100644 (file)
index 0000000..246e09f
--- /dev/null
@@ -0,0 +1 @@
+19914efd47b3875144595ecd71ebe9dc
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-07-t-expected.png b/LayoutTests/svg/text/text-text-07-t-expected.png
new file mode 100644 (file)
index 0000000..b92f7c6
Binary files /dev/null and b/LayoutTests/svg/text/text-text-07-t-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-07-t-expected.txt b/LayoutTests/svg/text/text-text-07-t-expected.txt
new file mode 100644 (file)
index 0000000..15df5d2
--- /dev/null
@@ -0,0 +1,38 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (16.67,48.33) size 681.67x466.67
+      RenderSVGText {text} at (240,60) size 179x180 contains 7 chunk(s)
+        RenderSVGInlineText {#text} at (0,-31) size 179x180
+          chunk 1 text run 1 at (240.00,60.00) startOffset 0 endOffset 1 width 31.00: "M"
+          chunk 2 text run 1 at (260.00,80.00) startOffset 1 endOffset 2 width 18.00: "u"
+          chunk 3 text run 1 at (280.00,100.00) startOffset 2 endOffset 3 width 10.00: "l"
+          chunk 4 text run 1 at (300.00,120.00) startOffset 3 endOffset 4 width 10.00: "t"
+          chunk 5 text run 1 at (320.00,140.00) startOffset 4 endOffset 5 width 10.00: "i"
+          chunk 6 text run 1 at (340.00,160.00) startOffset 5 endOffset 6 width 9.00: " "
+          chunk 7 text run 1 at (360.00,180.00) startOffset 6 endOffset 9 width 59.00: "X Y"
+      RenderSVGText {text} at (10,60) size 136x40 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-31) size 136x40
+          chunk 1 text run 1 at (10.00,60.00) startOffset 0 endOffset 6 width 136.00: "ROTATE"
+      RenderSVGText {text} at (10,180) size 252x160 contains 13 chunk(s)
+        RenderSVGInlineText {#text} at (0,-31) size 252x160
+          chunk 1 text run 1 at (10.00,300.00) startOffset 0 endOffset 1 width 23.00: "B"
+          chunk 2 text run 1 at (30.00,290.00) startOffset 1 endOffset 2 width 18.00: "o"
+          chunk 3 text run 1 at (50.00,280.00) startOffset 2 endOffset 3 width 10.00: "t"
+          chunk 4 text run 1 at (70.00,270.00) startOffset 3 endOffset 4 width 18.00: "h"
+          chunk 5 text run 1 at (90.00,260.00) startOffset 4 endOffset 5 width 9.00: " "
+          chunk 6 text run 1 at (110.00,250.00) startOffset 5 endOffset 6 width 21.00: "T"
+          chunk 7 text run 1 at (130.00,240.00) startOffset 6 endOffset 7 width 18.00: "o"
+          chunk 8 text run 1 at (150.00,230.00) startOffset 7 endOffset 8 width 18.00: "g"
+          chunk 9 text run 1 at (170.00,220.00) startOffset 8 endOffset 9 width 16.00: "e"
+          chunk 10 text run 1 at (190.00,210.00) startOffset 9 endOffset 10 width 10.00: "t"
+          chunk 11 text run 1 at (210.00,200.00) startOffset 10 endOffset 11 width 18.00: "h"
+          chunk 12 text run 1 at (230.00,190.00) startOffset 11 endOffset 12 width 16.00: "e"
+          chunk 13 text run 1 at (250.00,180.00) startOffset 12 endOffset 13 width 12.00: "r"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.8 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 8 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 8 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-07-t.svg b/LayoutTests/svg/text/text-text-07-t.svg
new file mode 100755 (executable)
index 0000000..9e58657
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--======================================================================-->
+<!--=  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/.                =-->
+<!--======================================================================-->
+<!--======================================================================-->
+<!--=  Author   : Michael Ingrassia 20-Oct-2003                          =--><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">
+    <SVGTestCase
+        xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/"
+        xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+        reviewer="AE" status="accepted" owner="MI" desc="Tests multiple x, y,
+        rotate" version="$Revision: 1.8 $" testname="$RCSfile: text-text-07-t.svg,v $">
+<!--nav data here-->
+        <OperatorScript>
+            <Paragraph>
+                Tests multiple x, y, rotate, with various combinations. Since an 
+               array of values is given, each glyph must use the value from the
+               corresponding character in the list.
+            </Paragraph>
+            <Paragraph>
+                The rendered picture should match the reference image exactly, except for possible
+                variations in the labelling text (per CSS2 rules).  
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+    <title id="test-title">text-text-07-t</title>
+    <desc id="test-desc">Tests multiple x, y, rotate, with various combinations</desc>
+    <!--======================================================================-->
+    <!--= Content of Test Case follows...                                    =-->
+    <!--======================================================================-->
+       <g id="test-body-content">
+        <text x="240 260 280 300 320 340 360" y="60 80 100 120 140 160 180 200" font-size="35">Multi X Y</text>
+        <text x="10" y="60" rotate="0 10 20 30 40 50 60" font-size="35">ROTATE</text>
+        <text x="10 30 50 70 90 110 130 150 170 190 210 230 250" y="300 290 280 270 260 250 240 230 220 210 200 190 180" rotate="0 -10 -20 -30 -40 -50 -60 -70 -80 -90 -100 -110 -120" font-size="35">Both Together</text>  
+    </g>
+    <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.8 $</text>
+    <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-text-08-b-expected.checksum b/LayoutTests/svg/text/text-text-08-b-expected.checksum
new file mode 100644 (file)
index 0000000..1fa3b84
--- /dev/null
@@ -0,0 +1 @@
+8b9db6d7a439d65c2bbe412f2491a25e
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-text-08-b-expected.png b/LayoutTests/svg/text/text-text-08-b-expected.png
new file mode 100644 (file)
index 0000000..16b545e
Binary files /dev/null and b/LayoutTests/svg/text/text-text-08-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-text-08-b-expected.txt b/LayoutTests/svg/text/text-text-08-b-expected.txt
new file mode 100644 (file)
index 0000000..397f500
--- /dev/null
@@ -0,0 +1,23 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,-10) size 809.17x609.17
+    RenderSVGContainer {g} at (28.33,-10) size 781.67x435
+      RenderSVGText {text} at (19,60) size 395x77 contains 1 chunk(s) [color=#FF0000]
+        RenderSVGInlineText {#text} at (0,-64) size 395x77
+          chunk 1 text run 1 at (19.00,60.00) startOffset 0 endOffset 11 width 395.00: "Normal Text"
+      RenderSVGText {text} at (19,120) size 345x77 contains 1 chunk(s) [color=#FF0000]
+        RenderSVGInlineText {#text} at (0,-64) size 345x77
+          chunk 1 text run 1 at (19.00,120.00) startOffset 0 endOffset 12 width 345.00: "Fill opacity"
+      RenderSVGText {text} at (19,180) size 465x77 contains 1 chunk(s) [color=#FF0000]
+        RenderSVGInlineText {#text} at (0,-64) size 465x77
+          chunk 1 text run 1 at (19.00,180.00) startOffset 0 endOffset 14 width 465.00: "Stroke opacity"
+      RenderSVGText {text} at (19,240) size 242x77 contains 1 chunk(s) [color=#FF0000]
+        RenderSVGInlineText {#text} at (0,-64) size 242x77
+          chunk 1 text run 1 at (19.00,240.00) startOffset 0 endOffset 7 width 242.00: "Opacity"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.3 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 1 {text} of child 13 {g} of child 13 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 13 {svg} of document
diff --git a/LayoutTests/svg/text/text-text-08-b.svg b/LayoutTests/svg/text/text-text-08-b.svg
new file mode 100755 (executable)
index 0000000..8c8de3b
--- /dev/null
@@ -0,0 +1,54 @@
+<?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/.                = -->
+<!--====================================================================== -->
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!-- $RCSfile: text-text-08-b.svg,v $ -->
+<!--                                                                       -->
+<!-- Author : Scott Hayman                                                 -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<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 480 360">
+    <SVGTestCase
+        xmlns="http://www.w3.org/2000/02/svg/testsuite/description/"
+        version="$Revision" testname="$RCSfile: text-text-08-b.svg,v $" owner="SH" reviewer="DJ"
+        status="accepted" desc="tests text opacity properties">
+        <OperatorScript>
+            <Paragraph>
+                The three opacity properties (fill-opacity,
+                stroke-opacity, and opacity) of 'text' elements are
+                covered in this test.
+            </Paragraph>
+        </OperatorScript>
+    </SVGTestCase>
+    <title id="test-title">text-text-08-b</title>
+    <desc id="test-desc">Test for opacity properties of 'text' elements.</desc>
+    <!--======================================================================-->
+    <!--Content of Test Case follows...                  =====================-->
+    <!--======================================================================-->
+    <g id="test-body-content">
+        <text x="19" y="60" font-size="64" font-family="Verdana"
+            fill="blue" stroke="red" stroke-width="2">Normal Text</text>
+        <text x="19" y="120" font-size="64" font-family="Verdana"
+            fill="blue" stroke="red" stroke-width="2"
+            fill-opacity="0.50">Fill opacity</text>
+        <text x="19" y="180" font-size="64" font-family="Verdana"
+            fill="blue" stroke="red" stroke-width="2"
+            stroke-opacity="0.50">Stroke opacity</text>
+        <text x="19" y="240" font-size="64" font-family="Verdana"
+            fill="blue" stroke="red" stroke-width="2"
+            opacity="0.50">Opacity</text>
+    </g>
+    <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.3 $</text>
+    <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-tref-01-b-expected.checksum b/LayoutTests/svg/text/text-tref-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..5b4bb12
--- /dev/null
@@ -0,0 +1 @@
+874c7d5a9f63d4d302f3f599a8c78f81
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-tref-01-b-expected.png b/LayoutTests/svg/text/text-tref-01-b-expected.png
new file mode 100644 (file)
index 0000000..a3bddc9
Binary files /dev/null and b/LayoutTests/svg/text/text-tref-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-tref-01-b-expected.txt b/LayoutTests/svg/text/text-tref-01-b-expected.txt
new file mode 100644 (file)
index 0000000..0d2cd8c
--- /dev/null
@@ -0,0 +1,21 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (120.83,23.33) size 472.50x343.33
+      RenderSVGText {text} at (75,25) size 281x14 contains 1 chunk(s) [color=#0000FF]
+        RenderSVGInlineText {#text} at (0,-11) size 281x14
+          chunk 1 text run 1 at (75.00,25.00) startOffset 0 endOffset 55 width 281.00: "Test 'tref' element with an external referenced string."
+      RenderSVGText {text}
+        RenderSVGInline {tref} at (0,0) size 0x0
+        RenderSVGInlineText {#text} at (0,0) size 0x0
+      RenderPath {rect} at (120.83,304.17) size 435x38.33 [stroke={[type=SOLID] [color=#000000]}] [data="M73.00,183.00L333.00,183.00L333.00,205.00L73.00,205.00"]
+      RenderSVGText {text} at (73,217) size 154x14 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-11) size 154x14
+          chunk 1 text run 1 at (73.00,217.00) startOffset 0 endOffset 34 width 154.00: "'tref' to a string in another file"
+    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
+      RenderSVGInlineText {#text} at (0,-36) size 264x46
+        chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.6 $"
+    RenderPath {rect} at (0.83,0.83) size 798.33x598.33 [stroke={[type=SOLID] [color=#000000]}] [data="M1.00,1.00L479.00,1.00L479.00,359.00L1.00,359.00"]
+selection start: position 0 of child 0 {#text} of child 3 {text} of child 13 {g} of child 29 {svg} of document
+selection end:   position 16 of child 0 {#text} of child 15 {text} of child 29 {svg} of document
diff --git a/LayoutTests/svg/text/text-tref-01-b.svg b/LayoutTests/svg/text/text-tref-01-b.svg
new file mode 100644 (file)
index 0000000..1550c14
--- /dev/null
@@ -0,0 +1,86 @@
+<?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-extTref-BE-18.svg                                                -->
+<!-- renamed for 1.1 suite to text-tref-01-b.svg                                -->
+<!--                                                                       -->
+<!-- Test capability to handle 'tref' to external text strings.            -->
+<!--                                                                       -->
+<!-- Note.  This test uses text-tref-BE-18-targ.svg as its target file for -->
+<!-- the external references.                                              -->
+<!--                                                                       -->
+<!-- Author : Lofton Henderson, 24-Oct-2000.                               -->
+<!--          1.1 revision by Rick Graham                                  -->
+<!-- Revised for SVGT/B : Mathias Larsson Carlander Jul/1/2002               -->
+<!--                                                                       -->
+<!-- History:                                                              -->
+<!--   24-Oct-2000, LH: Serial#1 created.                                  -->
+<!--   27-Oct-2000, LH=" completely revise and simplify" ser#2.             -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+<!--======================================================================-->
+<!--= 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 480 360">
+       <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/">
+               <OperatorScript version="$Revision: 1.6 $" testname="text-tref-01-b.svg">
+                       <Paragraph>
+                               Test viewer capability to handle a basic 'tref' element
+                               which points to a text string in an external file.
+                       </Paragraph>
+                       <Paragraph>
+                               The test case consists of a single sub-test.  
+                               The box in the middle of the frame should 
+                               contain green "Simple external referenced text.",
+                               which is obtained by a 'tref' element reference to a 'text' element in a 'defs'
+                               section of another file (text-extTref-BE-18-targ.svg). 
+                       </Paragraph>
+                       <Paragraph>
+                               The rendered picture should match the reference image, except for possible
+                               variations in the text fonts and layout (per CSS2 rules).
+                       </Paragraph>
+                       <Paragraph>
+                               The test also uses 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-tref-01-b.svg</title>
+       <desc id="test-desc">Test 'tref' element with an external referenced string.</desc>
+       <!--======================================================================-->
+       <!--Content of Test Case follows...                  =====================-->
+       <!--======================================================================-->
+       <g id="test-body-content">
+               <!-- Test case label -->
+               <text x="75" y="25" font-family="Arial" font-size="12" fill="blue">Test 'tref' element with an external referenced string.</text>
+               <!-- External tref reference, to another file -->
+               <text x="75" y="200" font-size="18" font-family="Arial" fill="green">
+                       <tref xlink:href="resources/text-extTref-BE-18-targ.svg#tref-external-reference"/>
+               </text>
+               <rect x="73" y="183" width="260" height="22" fill="none" stroke="black"/>
+               <text x="73" y="217" font-family="Arial" font-size="12" fill="black">'tref' to a string in another file</text>
+               <!-- Patch code -->
+               <!--
+       <text x="75" y="200" font-size="18" font-family="Arial" fill="green" >
+       Simple external referenced text.
+       </text>
+-->
+       </g>
+       <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.6 $</text>
+       <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+<script>
+if (window.layoutTestController)
+    window.layoutTestController.dumpSelectionRect();
+document.execCommand("SelectAll");
+</script>
+</svg>
diff --git a/LayoutTests/svg/text/text-tselect-01-b-expected.checksum b/LayoutTests/svg/text/text-tselect-01-b-expected.checksum
new file mode 100644 (file)
index 0000000..dabfc08
--- /dev/null
@@ -0,0 +1 @@
+9dd40058b514beca91ea3024d30dc15e
\ No newline at end of file
diff --git a/LayoutTests/svg/text/text-tselect-01-b-expected.png b/LayoutTests/svg/text/text-tselect-01-b-expected.png
new file mode 100644 (file)
index 0000000..22c5fc3
Binary files /dev/null and b/LayoutTests/svg/text/text-tselect-01-b-expected.png differ
diff --git a/LayoutTests/svg/text/text-tselect-01-b-expected.txt b/LayoutTests/svg/text/text-tselect-01-b-expected.txt
new file mode 100644 (file)
index 0000000..7339192
--- /dev/null
@@ -0,0 +1,47 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderSVGRoot {svg} at (0.83,0.83) size 798.33x598.33
+    RenderSVGContainer {g} at (0.83,0.83) size 798.33x598.33
+      RenderSVGText {text} at (10,20) size 304x17 contains 1 chunk(s)
+        RenderSVGInlineText {#text} at (0,-14) size 304x17
+          chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 46 width 304.00: "Test single line and multiline text selection."
+      RenderSVGContainer {g} at (41.67,85) size 598.33x361.67
+        RenderSVGText {text} at (25,65) size 252x17 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 252x17
+            chunk 1 text run 1 at (25.00,65.00) startOffset 0 endOffset 37 width 252.00: "Here is a stand-alone 'text' element."
+        RenderSVGText {text} at (25,90) size 296x17 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 296x17
+            chunk 1 text run 1 at (25.00,90.00) startOffset 0 endOffset 43 width 296.00: "Here is a second 'text' element just below."
+        RenderSVGText {text} at (25,115) size 338x17 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 338x17
+            chunk 1 text run 1 at (25.00,115.00) startOffset 0 endOffset 48 width 338.00: "Because these are four separate 'text' elements,"
+        RenderSVGText {text} at (25,140) size 322x17 contains 1 chunk(s)
+          RenderSVGInlineText {#text} at (0,-14) size 322x17
+            chunk 1 text run 1 at (25.00,140.00) startOffset 0 endOffset 47 width 322.00: "text selection should not go across lines here."
+        RenderSVGText {text} at (25,190) size 359x92 contains 4 chunk(s)
+          RenderSVGTSpan {tspan} at (0,0) size 355x17
+            RenderSVGInlineText {#text} at (0,-14) size 355x17
+              chunk 1 text run 1 at (25.00,190.00) startOffset 0 endOffset 50 width 355.00: "However, these lines of text are achieved by using"
+          RenderSVGInlineText {#text} at (355,-14) size 4x17
+            chunk 1 text&nb