Index: third_party/WebKit/LayoutTests/imported/wpt/mathml/presentation-markup/scripts/underover-1.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/mathml/presentation-markup/scripts/underover-1.html b/third_party/WebKit/LayoutTests/imported/wpt/mathml/presentation-markup/scripts/underover-1.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..25e087971da3dccbc786b45944295b32bba3356e |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/mathml/presentation-markup/scripts/underover-1.html |
@@ -0,0 +1,161 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<meta charset="utf-8"> |
+<title>Underscripts and Overscripts parameters</title> |
+<link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS4"> |
+<meta name="assert" content="Elements munder, mover, munderover correctly ."> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<style> |
+ math, mspace, mo { |
+ font-size: 10px; |
+ } |
+</style> |
+<script> |
+ /* This test does not use any specific fonts and so the exact rules are not |
+ specified precisely. We assume reasonable values for script shifts and |
+ spacing. */ |
+ |
+ function getBox(aId) { |
+ var box = document.getElementById(aId).getBoundingClientRect(); |
+ box.middle = (box.bottom + box.top) / 2; |
+ box.center = (box.left + box.right) / 2; |
+ return box; |
+ } |
+ |
+ setup({ explicit_done: true }); |
+ window.addEventListener("load", runTests); |
+ |
+ function runTests() { |
+ test(function() { |
+ var e = 1; |
+ for (var i = 0; i <= 3; i++) { |
+ assert_approx_equals(getBox("under" + i + "base").middle, getBox("baseline").bottom, e, "munder " + i + ": base is placed on the baseline"); |
+ assert_approx_equals(getBox("over" + i + "base").middle, getBox("baseline").bottom, e, "mover " + i + ": base is placed on the baseline"); |
+ } |
+ for (var i = 0; i <= 5; i++) { |
+ assert_approx_equals(getBox("underover" + i + "base").middle, getBox("baseline").bottom, e, "munderover " + i + ": base is placed on the baseline"); |
+ } |
+ }, "Alignment of the base on the baseline"); |
+ |
+ test(function() { |
+ var e = 1; |
+ for (var i = 0; i <= 3; i++) { |
+ assert_approx_equals(getBox("under" + i + "under").center, getBox("under" + i + "base").center, e, "munder " + i + ": base and script are horizontally centered"); |
+ assert_approx_equals(getBox("over" + i + "over").center, getBox("over" + i + "base").center, e, "mover " + i + ": base and script are horizontally centered"); |
+ } |
+ for (var i = 0; i <= 5; i++) { |
+ assert_approx_equals(getBox("underover" + i + "under").center, getBox("underover" + i + "base").center, e, "munderover " + i + ": base and underscript are horizontally centered"); |
+ assert_approx_equals(getBox("underover" + i + "over").center, getBox("underover" + i + "base").center, e, "munderover " + i + ": base and overscript are horizontally centered"); |
+ } |
+ }, "Horizontal alignments of base and scripts"); |
+ |
+ test(function() { |
+ for (var i = 0; i <= 3; i++) { |
+ assert_greater_than_equal(getBox("under" + i + "under").top, getBox("under" + i + "base").bottom, "munder " + i + ": script is under base"); |
+ assert_less_than_equal(getBox("over" + i + "over").bottom, getBox("over" + i + "base").top, "mover " + i + ": script is over base"); |
+ } |
+ for (var i = 0; i <= 5; i++) { |
+ assert_greater_than_equal(getBox("underover" + i + "under").top, getBox("underover" + i + "base").bottom, "munderover " + i + ": underscript is under base"); |
+ assert_less_than_equal(getBox("underover" + i + "over").bottom, getBox("underover" + i + "base").top, "munderover " + i + ": overscript is over base"); |
+ } |
+ }, "Relative vertical positions of base and scripts"); |
+ |
+ test(function() { |
+ var e = 1; |
+ for (var i = 0; i <= 3; i++) { |
+ assert_approx_equals(getBox("under" + i).width, Math.max(getBox("under" + i + "base").width, getBox("under" + i + "under").width), e, "munder " + i + ": width is determined by the maximum of width of base and script"); |
+ assert_approx_equals(getBox("over" + i).width, Math.max(getBox("over" + i + "base").width, getBox("over" + i + "over").width), e, "mover " + i + ": width is determined by the maximum of width of base and script"); |
+ } |
+ for (var i = 0; i <= 5; i++) { |
+ assert_approx_equals(getBox("underover" + i).width, Math.max(getBox("underover" + i + "base").width, getBox("underover" + i + "under").width, getBox("underover" + i + "over").width), e, "munderover " + i + ": width is determined by the maximum of width of base and scripts"); |
+ } |
+ }, "Width of scripted elements"); |
+ |
+ test(function() { |
+ var e = 3; |
+ for (var i = 0; i <= 3; i++) { |
+ assert_approx_equals(getBox("under" + i).height, getBox("under" + i + "base").height + getBox("under" + i + "under").height + e, e, "munder " + i + ": height is determined by the sum of heights of base and script plus some spacing."); |
+ assert_approx_equals(getBox("over" + i).height, getBox("over" + i + "base").height + getBox("over" + i + "over").height + e, e, "mover " + i + ": height is determined by the sum of heights of base and script plus some spacing."); |
+ } |
+ for (var i = 0; i <= 5; i++) { |
+ assert_approx_equals(getBox("underover" + i).height, getBox("underover" + i + "base").height + getBox("underover" + i + "under").height + getBox("underover" + i + "over").height + e, e, "munderover " + i + ": height is determined by the sum heights of base and scripts"); |
+ } |
+ }, "Height of scripted elements"); |
+ |
+ done(); |
+ } |
+</script> |
+</head> |
+<body> |
+ <p> |
+ <math> |
+ <mspace id="baseline" width="30px" height="2px" depth="0px" mathbackground="blue"/> |
+ <munder id="under0"> |
+ <mspace id="under0base" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="under0under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munder> |
+ <munder id="under1"> |
+ <mspace id="under1base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="under1under" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ </munder> |
+ <munder id="under2"> |
+ <mspace id="under2base" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ <mspace id="under2under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munder> |
+ <munder id="under3"> |
+ <mspace id="under3base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="under3under" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ </munder> |
+ <mover id="over0"> |
+ <mspace id="over0base" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="over0over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </mover> |
+ <mover id="over1"> |
+ <mspace id="over1base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="over1over" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ </mover> |
+ <mover id="over2"> |
+ <mspace id="over2base" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ <mspace id="over2over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </mover> |
+ <mover id="over3"> |
+ <mspace id="over3base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="over3over" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ </mover> |
+ <munderover id="underover0"> |
+ <mspace id="underover0base" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover0under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover0over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munderover> |
+ <munderover id="underover1"> |
+ <mspace id="underover1base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover1under" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover1over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munderover> |
+ <munderover id="underover2"> |
+ <mspace id="underover2base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover2under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover2over" width="30px" height="5px" depth="5px" mathbackground="black"/> |
+ </munderover> |
+ <munderover id="underover3"> |
+ <mspace id="underover3base" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ <mspace id="underover3under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover3over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munderover> |
+ <munderover id="underover4"> |
+ <mspace id="underover4base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover4under" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ <mspace id="underover4over" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ </munderover> |
+ <munderover id="underover5"> |
+ <mspace id="underover5base" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover5under" width="10px" height="5px" depth="5px" mathbackground="black"/> |
+ <mspace id="underover5over" width="10px" height="15px" depth="15px" mathbackground="black"/> |
+ </munderover> |
+ </math> |
+ </p> |
+ <hr/> |
+</body> |
+</html> |