blob: 5c890d968e76159c5e0ad5687423bc45e6df6043 [file] [log] [blame]
<!DOCTYPE html>
<title>Text queries on elements with collapsed whitespace</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg>
<text transform="translate(0 20)">A B C</text>
<text transform="translate(0 40)">A <tspan>B</tspan> C</text>
<text transform="translate(0 60)"> A B C </text>
<text transform="translate(0 80)"> A <tspan> B C </tspan> </text>
<text transform="translate(0 100)"> <tspan> A B </tspan> C </text>
<text transform="translate(0 120)"> A <tspan> B </tspan> C </text>
</svg>
<script>
setup(function() {
window.textElements = document.getElementsByTagName('text');
var referenceElement = textElements[0];
window.reference = [];
for (var i = 0; i < 5; ++i)
reference.push(referenceElement.getExtentOfChar(i));
});
test(function() {
for (var j = 1; j < textElements.length; ++j) {
var element = textElements[j];
assert_equals(element.getNumberOfChars(), 5, 'collapsed length');
for (var i = 0; i < 5; ++i) {
var extents = element.getExtentOfChar(i);
for (var attr of ['x', 'y', 'width', 'height'])
assert_equals(extents[attr], reference[i][attr], 'same extents as reference (' + attr + ')');
}
var queryPoint = element.ownerSVGElement.createSVGPoint();
for (var i = 0; i < 5; ++i) {
queryPoint.x = reference[i].x + reference[i].width / 2;
queryPoint.y = reference[i].y + reference[i].height / 2;
assert_equals(element.getCharNumAtPosition(queryPoint), i, 'at same position as reference');
}
}
});
</script>