| <svg id="svg-root" width="100%" height="100%" onload="test()" xmlns="http://www.w3.org/2000/svg" |
| viewBox="0 0 480 360" xmlns:xlink="http://www.w3.org/1999/xlink"> |
| <!--======================================================================--> |
| <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =--> |
| <!--= Institute of Technology, European Research Consortium for =--> |
| <!--= Informatics and Mathematics (ERCIM), Keio University). =--> |
| <!--= All Rights Reserved. =--> |
| <!--= See http://www.w3.org/Consortium/Legal/. =--> |
| <!--======================================================================--> |
| <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" |
| template-version="1.4" reviewer="AG" author="ED" status="reviewed" |
| version="$Revision: 1.4 $" testname="$RCSfile: text-dom-04-f.svg,v $"> |
| <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/text.html#InterfaceSVGTextContentElement"> |
| <p> |
| This tests the SVGTextContentElement.getSubStringLength method. |
| </p> |
| </d:testDescription> |
| <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> |
| <p> |
| Run the test. No interaction required. |
| </p> |
| </d:operatorScript> |
| <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> |
| <p> |
| To pass the test there should be no red visible. |
| </p> |
| </d:passCriteria> |
| </d:SVGTestCase> |
| <title id="test-title">$RCSfile: text-dom-04-f.svg,v $</title> |
| <defs> |
| <font-face |
| font-family="SVGFreeSansASCII" |
| unicode-range="U+0-7F"> |
| <font-face-src> |
| <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/> |
| </font-face-src> |
| </font-face> |
| </defs> |
| <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18"> |
| <defs> |
| <font horiz-adv-x="4000" id="mini"> |
| <font-face font-family="simplesvgfont" units-per-em="4000" ascent="800" descent="-200" alphabetic="0"/> |
| <missing-glyph horiz-adv-x="10000" d="M0 0 4000 0"/> |
| <glyph unicode="a" glyph-name="a" horiz-adv-x="4100" d="M0 4000l2000 -4000l2000 4000Z"/> |
| <glyph unicode="b" glyph-name="b" horiz-adv-x="2000" d="M0 0l2000 0000l0 2000l-2000 0Z"/> |
| <glyph unicode="cb" d="M0 0l2000 2000l-2000 2000Z" horiz-adv-x="800"/> |
| <glyph unicode="c" glyph-name="c" horiz-adv-x="1900" d="M0 0L2000 2000l-2000 0L2000 0Z"/> |
| <glyph unicode="𝍒" glyph-name="compliance" d="M1000,0 h1000 v-1000 h-1000 z" horiz-adv-x="2100"/> |
| <hkern u1="c" u2="a" k="500"/> |
| </font> |
| </defs> |
| |
| <script type="text/ecmascript"><![CDATA[ |
| function test() |
| { |
| var t = document.getElementById("t"); |
| var r = document.getElementById("r"); |
| var res = document.getElementById("res"); |
| var isPassed = true; |
| |
| // string: abca𝍒cb |
| // indices: 0123 4 5 67 |
| |
| var tests = new Array("getSubStringLength(0,1)", "4100", // 'a' |
| "getSubStringLength(0,2)", "6100", // 'ab' |
| "getSubStringLength(0,3)", "7500", // 'abc' |
| "getSubStringLength(0,4)", "11600", // 'abca' |
| "getSubStringLength(0,5)", "13700", // 'abca' and high surrogate of 1D352 |
| "getSubStringLength(0,6)", "13700", // 'abca𝍒' |
| "getSubStringLength(0,7)", "14500", // 'abca𝍒' and half of ligature 'cb' |
| "getSubStringLength(0,8)", "14500", // 'abca�' |
| "getSubStringLength(0,9)", "14500", // 'abca�' |
| "getSubStringLength(3,1)", "4100", // 'a' |
| "getSubStringLength(1,1)", "2000", // 'b' |
| "getSubStringLength(4,1)", "2100", // high surrogate of 1D352 |
| "getSubStringLength(4,2)", "2100", // '𝍒' |
| "getSubStringLength(5,1)", "2100", // low surrogate of 1D352 |
| "getSubStringLength(6,1)", "800", // first half of ligature 'cb' |
| "getSubStringLength(6,2)", "800", // ligature 'cb' |
| "getSubStringLength(7,1)", "800", // second half of ligature 'cb' |
| "getSubStringLength(8,1)", "INDEX_SIZE_ERR", |
| "getSubStringLength(9,0)", "INDEX_SIZE_ERR", |
| "getSubStringLength(-1,1)", "INDEX_SIZE_ERR", |
| "getSubStringLength(-57,0)", "INDEX_SIZE_ERR", |
| "getSubStringLength(0,-52)", "INDEX_SIZE_ERR", |
| "getSubStringLength(-1,-5)", "INDEX_SIZE_ERR", |
| "getSubStringLength(7,0)", "0", // second half of ligature 'cb' |
| "getSubStringLength(5,0)", "0", // high surrogate of 1D352 |
| "getSubStringLength(4,0)", "0" // low surrogate of 1D352 |
| ); |
| |
| try |
| { |
| for(var i = 0; i < tests.length; i=i+2) |
| { |
| try |
| { |
| val = eval("t."+tests[i]); |
| } |
| catch(e) |
| { |
| if(e.code == DOMException.INDEX_SIZE_ERR) |
| { |
| val = "INDEX_SIZE_ERR" |
| } |
| else |
| { |
| val = e; |
| } |
| } |
| |
| if(val != tests[i+1]) |
| { |
| throw "Failed " + tests[i] + " got " + val + " but expected " + tests[i+1]; |
| } |
| } |
| } |
| catch(f) |
| { |
| isPassed = false; |
| res.textContent = f; |
| } |
| |
| if(isPassed) |
| { |
| r.setAttribute("fill", "none"); |
| } |
| } |
| ]]></script> |
| |
| <g transform="scale(0.02 0.02) translate(4000 2000)"> |
| <g id="reference" fill="red"> |
| <path d="M0 4000l2000 -4000l2000 4000Z" transform="scale(1 -1) translate(0 -8000)"/> |
| <path d="M0 0l2000 0000l0 2000l-2000 0Z" transform="translate(4100 6000)"/> |
| <path d="M0 0L2000 2000l-2000 0L2000 0Z" transform="translate(6100 6000)"/> |
| <path d="M0 4000l2000 -4000l2000 4000Z" transform="scale(1 -1) translate(7500 -8000)"/> |
| <path d="M1000,0 h1000 v-1000 h-1000 z" transform="scale(1 -1) translate(11600 -8000)"/> |
| <path d="M0 0l2000 2000l-2000 2000Z" transform="scale(1 -1) translate(13700 -8000)"/> |
| </g> |
| |
| <text id="t" font-family="simplesvgfont" font-size="4000" y="2em" fill="lime">abca𝍒cb</text> |
| <rect id="r" x="5000" y="10%" width="2000" height="2000" fill="red"/> |
| <text id="res" x="50%" text-anchor="middle" font-family="sans-serif" font-size="200" y="80%"></text> |
| </g> |
| </g> |
| <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> |
| <text id="revision" x="10" y="340" stroke="none" |
| fill="black">$Revision: 1.4 $</text> |
| </g> |
| <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/> |
| <!-- comment out this watermark once the test is approved --> |
| <g id="draft-watermark"> |
| <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/> |
| <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240" |
| text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text> |
| </g> |
| </svg> |