summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/svg/text/scripted/lengthadjust.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/svg/text/scripted/lengthadjust.html')
-rw-r--r--testing/web-platform/tests/svg/text/scripted/lengthadjust.html42
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/svg/text/scripted/lengthadjust.html b/testing/web-platform/tests/svg/text/scripted/lengthadjust.html
new file mode 100644
index 0000000000..51b06675b0
--- /dev/null
+++ b/testing/web-platform/tests/svg/text/scripted/lengthadjust.html
@@ -0,0 +1,42 @@
+<!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>