This tests the methods and properties of the SVGTextContentElement interface on the text element with the id 'testText' and the content 'This is a test of the interface SVGTextContentElement'. The word 'is' has two glyphs with different rotation values defined with a <tspan/> element. There are 12 subtests testing the 9 methods and 2 properties. Note that the numeric results of some methods may vary. The additional instructions state where the result may vary and where it should have an exact value.
[[ Describe how to use the here. The instructions should specify any steps requied to run the test or any manual operation that need to be performed to run the test. ]]
The first subtest is testing the method .getCharNumAtPosition(svgPt), where svgPt has an x value of 240 and y value of 25. The result of this subtest must be "30".
The second subtest is testing the method .getComputedTextLength(). The rounded result may vary in the implementations but should be around 364. A red line below the testText is visually indicating the result of the method .getComputedTextLength() and must look like a red underline with a length that spans the whole text length from 'T' to '.'.
The third subtest is testing the method .getEndPositionOfChar() at the 11th character ('e'). The rounded result may vary in the implementations but should be around 131 for the 'x' value and must be 30 for the 'y' value. Additionally, a red vertical line is indicating the end position of the character 'e'. Its lower 'y' value must be at 30 and the 'x' values must match the end position of the 11th character 'e'.
The fourth subtest is testing the method .getExtentOfChar() at the 11th character ('e'). The rounded result may vary in the implementations but should be around '123,16,8,17' for the 'x,y,width,height' values. A lightblue rectangle below the character 'e' must fully enclose the 11th glyph.
The fifth subtest is testing the method .getNumberOfChars(). The result must be 54.
The sixth subtest is testing the method .getRotationOfChar() for the fifth character. The result must be 45. Additionally, a lightblue rectangle below the text indicates the extent of the fifth glyph 'i'. It must fully enclose the diagonally rotated fifth glyph 'i'.
The seventh subtest is testing the method .getStartPositionOfChar() at the 11th character ('e'). The rounded result may vary in the implementations but should be around 123 for the 'x' value and must be 30 for the 'y' value. Additionally, a red vertical line is indicating the start position of the character 'e'. Its lower 'y' value must be at 30 and the 'x' values must match the end position of the 11th character 'e'.
The eighth subtest is testing the method .getSubStringLength(), starting at character 22 and including the 9 following characters. The result may vary in the implementations but should be around 58. Additionally, a green (lime) line visually indicates the result of the method. The word 'interface' must be fully underlined with the green line.
The ninth subtest is testing the method .selectSubString(). After loading the file, the word "the" must be selected.
The tenth subtest is testing the property .textLength. The rounded result of .textLength.baseVal.value may vary in the implementations but should be around 364. It must match the value calculated in the second subtest (.getComputedTextLength()).
The eleventh subtest is again testing the property .textLength. The rounded result of .textLength.animVal.value may vary in the implementations but should be around 364. It must match the value calculated in the second subtest (.getComputedTextLength()).
The twelfth subtest is again testing the property .lengthAdjust. The results of .lengthAdjust.baseVal and .lengthAdjust.animVal must be 1 and 1.