Source code
Revision control
Copy as Markdown
Other Tools
<!DOCTYPE html>
<html lang='en'>
<head>
<title>text-dom-04-f-manual.svg</title>
<meta charset='utf-8'>
</head>
<body>
<h1>Source SVG: text-dom-04-f-manual.svg</h1>
<!--======================================================================-->
<!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, European Research Consortium for =-->
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
<!--= All Rights Reserved. =-->
<!--======================================================================-->
<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>
</body>
</html>