<!DOCTYPE html>
<meta charset="UTF-8">
<title>BiDi getCharNumAtPosition()</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg width="50px" height="60px" font-family="Arial" font-size="30px">
<text y="40" direction="ltr">Foo הפוך</text>
<text text-anchor="end" y="70" direction="rtl">Foo הפוך</text>
</svg>
<script>
function getExtents(textElement) {
var glyphBBoxes = [];
for (var i = 0; i < 8; ++i)
glyphBBoxes.push(textElement.getExtentOfChar(i));
return glyphBBoxes;
}
function getCharNums(textElement, glyphBBoxes) {
var charNums = [];
var point = textElement.ownerSVGElement.createSVGPoint();
for (var i = 0; i < glyphBBoxes.length; ++i) {
var bbox = glyphBBoxes[i];
point.x = bbox.x + bbox.width / 2;
point.y = bbox.y + bbox.height / 2;
charNums.push(textElement.getCharNumAtPosition(point));
}
return charNums;
}
var textElements = document.querySelectorAll("text");
for (var j = 0; j < textElements.length; ++j) {
var textElement = textElements[j];
test(function() {
assert_equals(textElement.textContent.length, 10);
var glyphChars = getCharNums(textElement, getExtents(textElement));
for (var i = 0; i < glyphChars.length; ++i)
assert_equals(glyphChars[i], i);
}, document.title+', direction='+textElement.getAttribute("direction")+'.');
}
</script>