| <!DOCTYPE html> | |
| <title>lengthAdjust content/IDL attribute</title> | |
| <link rel="help" href="https://svgwg.org/svg2-draft/text.html#TextElementLengthAdjustAttribute"> | |
| <link rel="help" href="https://svgwg.org/svg2-draft/text.html#__svg__SVGTextContentElement__getComputedTextLength"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <svg> | |
| <text x="0" y="215" textLength="200">Stretched text</text> | |
| <text x="0" y="215" textLength="200">Stretched text</text> | |
| </svg> | |
| <script> | |
| test(() => { | |
| const text = document.querySelectorAll('text')[0]; | |
| assert_equals(text.getAttribute('lengthAdjust'), null); | |
| assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACING); | |
| assert_equals(text.textLength.baseVal.value, 200); | |
| let lastLength = text.getComputedTextLength(); | |
| assert_between_exclusive(lastLength, 0, 200); | |
| text.setAttribute('lengthAdjust', 'spacingAndGlyphs'); | |
| assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS); | |
| assert_equals(text.textLength.baseVal.value, 200); | |
| assert_greater_than(text.getComputedTextLength(), lastLength); | |
| }, 'Tests dynamic updates of the "lengthAdjust" content attribute'); | |
| test(() => { | |
| const text = document.querySelectorAll('text')[1]; | |
| assert_equals(text.getAttribute('lengthAdjust'), null); | |
| assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACING); | |
| assert_equals(text.textLength.baseVal.value, 200); | |
| let lastLength = text.getComputedTextLength(); | |
| assert_between_exclusive(lastLength, 0, 200); | |
| text.lengthAdjust.baseVal = SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS; | |
| assert_equals(text.getAttribute('lengthAdjust'), 'spacingAndGlyphs'); | |
| assert_equals(text.lengthAdjust.baseVal, SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS); | |
| assert_equals(text.textLength.baseVal.value, 200); | |
| assert_greater_than(text.getComputedTextLength(), lastLength); | |
| }, 'Tests dynamic updates of the "lengthAdjust" IDL attribute'); | |
| </script> |