| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Dynamic stretch properties</title> |
| <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> |
| <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dictionary-based-attributes"> |
| <meta name="assert" content="Verify stretchy, symmetric, largeop, minsize and maxsize are updated dynamically."> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/mathml/support/fonts.js"></script> |
| <style> |
| math { |
| font: 25px/1 Ahem; |
| } |
| @font-face { |
| font-family: operators; |
| src: url("/fonts/math/operators.woff"); |
| } |
| mo { |
| font-family: operators; |
| } |
| </style> |
| <script> |
| setup({ explicit_done: true }); |
| window.addEventListener("load", () => { loadAllFonts().then(runTests); }); |
| |
| function runTests() { |
| |
| var epsilon = 1; |
| var emToPx = 25; |
| var element; |
| |
| test(function() { |
| element = document.getElementById("minsize_attach"); |
| element.setAttribute("minsize", "4em"); |
| assert_approx_equals(element.getBoundingClientRect().height, 4 * emToPx, epsilon, "attach"); |
| |
| element = document.getElementById("minsize_modify"); |
| element.setAttribute("minsize", "5em"); |
| assert_approx_equals(element.getBoundingClientRect().height, 5 * emToPx, epsilon, "modify"); |
| |
| element = document.getElementById("minsize_remove"); |
| element.removeAttribute("minsize"); |
| assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "remove"); |
| }, `minsize`); |
| |
| test(function() { |
| element = document.getElementById("maxsize_attach"); |
| element.setAttribute("maxsize", "4em"); |
| assert_approx_equals(element.getBoundingClientRect().height, 4 * emToPx, epsilon, "attach"); |
| |
| element = document.getElementById("maxsize_modify"); |
| element.setAttribute("maxsize", "5em"); |
| assert_approx_equals(element.getBoundingClientRect().height, 5 * emToPx, epsilon, "modify"); |
| |
| element = document.getElementById("maxsize_remove"); |
| element.removeAttribute("maxsize"); |
| assert_approx_equals(element.getBoundingClientRect().height, 6 * emToPx, epsilon, "remove"); |
| }, `maxsize`); |
| |
| test(function() { |
| element = document.getElementById("largeop_set_true"); |
| element.setAttribute("largeop", "true"); |
| assert_approx_equals(element.getBoundingClientRect().height, 2 * emToPx, epsilon, "set true"); |
| |
| element = document.getElementById("largeop_set_false"); |
| element.setAttribute("largeop", "false"); |
| assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "set false"); |
| }, `largeop`); |
| |
| test(function() { |
| element = document.getElementById("symmetric_set_true"); |
| element.setAttribute("symmetric", "true"); |
| assert_approx_equals(element.getBoundingClientRect().height, 6 * emToPx, epsilon, "set true"); |
| |
| element = document.getElementById("symmetric_set_false"); |
| element.setAttribute("symmetric", "false"); |
| assert_approx_equals(element.getBoundingClientRect().height, 3 * emToPx, epsilon, "set false"); |
| }, `symmetric`); |
| |
| test(function() { |
| element = document.getElementById("stretchy_set_true"); |
| element.setAttribute("stretchy", "true"); |
| assert_approx_equals(element.getBoundingClientRect().height, 3 * emToPx, epsilon, "set true"); |
| |
| element = document.getElementById("stretchy_set_false"); |
| element.setAttribute("stretchy", "false"); |
| assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "set false"); |
| }, `stretchy`); |
| |
| done(); |
| } |
| </script> |
| </head> |
| <body> |
| <div id="log"></div> |
| <p> |
| <math> |
| <mrow> |
| <mspace width="1em" height="1em" style="background: blue"/> |
| <mo id="minsize_attach" stretchy="true" symmetric="false">⥯</mo> |
| <mo id="minsize_modify" minsize="3em" stretchy="true" symmetric="false">⥯</mo> |
| <mo id="minsize_remove" minsize="2em" stretchy="true" symmetric="false">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| </math> |
| </p> |
| <p> |
| <math> |
| <mrow> |
| <mspace width="1em" height="6em" style="background: blue"/> |
| <mo id="maxsize_attach" stretchy="true" symmetric="false">⥯</mo> |
| <mo id="maxsize_modify" maxsize="3em" stretchy="true" symmetric="false">⥯</mo> |
| <mo id="maxsize_remove" maxsize="2em" stretchy="true" symmetric="false">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| </math> |
| </p> |
| <p> |
| <math displaystyle="true"> |
| <mspace width="1em" height="1em" style="background: blue"/> |
| <mrow> |
| <mo id="largeop_set_true" largeop="false" stretchy="false">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| <mrow> |
| <mo id="largeop_set_false" largeop="true" stretchy="false">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| </math> |
| </p> |
| <p> |
| <math> |
| <mrow> |
| <mspace width="1em" height="3em" style="background: blue"/> |
| <mo id="symmetric_set_true" symmetric="false" stretchy="true">⥯</mo> |
| <mo id="symmetric_set_false" symmetric="true" stretchy="true">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| </math> |
| </p> |
| <p> |
| <math> |
| <mrow> |
| <mspace width="1em" height="3em" style="background: blue"/> |
| <mo id="stretchy_set_true" symmetric="false" stretchy="false">⥯</mo> |
| <mo id="stretchy_set_false" symmetric="false" stretchy="true">⥯</mo> |
| <mn><!-- not space like --></mn> |
| </mrow> |
| </math> |
| </p> |
| </body> |
| </html> |