Ensure tests for legacy features are in LayoutTests/mathml
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Sep 2019 14:45:41 +0000 (14:45 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Sep 2019 14:45:41 +0000 (14:45 +0000)
https://bugs.webkit.org/show_bug.cgi?id=201604

Patch by Frederic Wang <fwang@igalia.com> on 2019-09-10
Reviewed by Rob Buis.

This patch copies MathML WPT tests verifying legacy support for features removed from MathML
Core. These tests will be overriden or removed in a future WPT synchronization, so we need
to keep local copies to check these legacy features when the "MathML Core" option is
disabled.

* TestExpectations: Copy expectation.
* mathml/non-core/frac-linethickness-001-expected.html: Added.
* mathml/non-core/frac-linethickness-001.html: Added.
* mathml/non-core/frac-linethickness-002-expected.html: Added.
* mathml/non-core/frac-linethickness-002.html: Added.
* mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
* mathml/non-core/frac-numalign-denomalign-001.html: Added.
* mathml/non-core/lengths-1-expected.html: Added.
* mathml/non-core/lengths-1.html: Added.
* mathml/non-core/lengths-2-expected.html: Added.
* mathml/non-core/lengths-2.html: Added.
* mathml/non-core/lengths-3-expected.txt: Added.
* mathml/non-core/lengths-3.html: Added.
* platform/gtk/TestExpectations: Copy expectation.
* platform/win/TestExpectations: Add failure expectations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/mathml/non-core/frac-linethickness-001-expected.html [new file with mode: 0644]
LayoutTests/mathml/non-core/frac-linethickness-001.html [new file with mode: 0644]
LayoutTests/mathml/non-core/frac-linethickness-002-expected.html [new file with mode: 0644]
LayoutTests/mathml/non-core/frac-linethickness-002.html [new file with mode: 0644]
LayoutTests/mathml/non-core/frac-numalign-denomalign-001-expected.html [new file with mode: 0644]
LayoutTests/mathml/non-core/frac-numalign-denomalign-001.html [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-1-expected.html [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-1.html [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-2-expected.html [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-2.html [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-3-expected.txt [new file with mode: 0644]
LayoutTests/mathml/non-core/lengths-3.html [new file with mode: 0644]
LayoutTests/platform/gtk/TestExpectations
LayoutTests/platform/win/TestExpectations

index a6df777..9b9db01 100644 (file)
@@ -1,3 +1,31 @@
+2019-09-10  Frederic Wang  <fwang@igalia.com>
+
+        Ensure tests for legacy features are in LayoutTests/mathml
+        https://bugs.webkit.org/show_bug.cgi?id=201604
+
+        Reviewed by Rob Buis.
+
+        This patch copies MathML WPT tests verifying legacy support for features removed from MathML
+        Core. These tests will be overriden or removed in a future WPT synchronization, so we need
+        to keep local copies to check these legacy features when the "MathML Core" option is
+        disabled.
+
+        * TestExpectations: Copy expectation.
+        * mathml/non-core/frac-linethickness-001-expected.html: Added.
+        * mathml/non-core/frac-linethickness-001.html: Added.
+        * mathml/non-core/frac-linethickness-002-expected.html: Added.
+        * mathml/non-core/frac-linethickness-002.html: Added.
+        * mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
+        * mathml/non-core/frac-numalign-denomalign-001.html: Added.
+        * mathml/non-core/lengths-1-expected.html: Added.
+        * mathml/non-core/lengths-1.html: Added.
+        * mathml/non-core/lengths-2-expected.html: Added.
+        * mathml/non-core/lengths-2.html: Added.
+        * mathml/non-core/lengths-3-expected.txt: Added.
+        * mathml/non-core/lengths-3.html: Added.
+        * platform/gtk/TestExpectations: Copy expectation.
+        * platform/win/TestExpectations: Add failure expectations.
+
 2019-09-10  Ryosuke Niwa  <rniwa@webkit.org>
 
         Option + arrow moves caret past whitespace on iOS
index 0e16496..fdeca19 100644 (file)
@@ -950,6 +950,7 @@ imported/w3c/web-platform-tests/html/browsers/windows/targeting-cross-origin-nes
 
 # These MathML WPT tests fail.
 webkit.org/b/180013 imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2.html [ ImageOnlyFailure ]
+webkit.org/b/180013 mathml/non-core/lengths-2.html [ ImageOnlyFailure ]
 webkit.org/b/194952 imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html [ ImageOnlyFailure ]
 webkit.org/b/194952 imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html  [ ImageOnlyFailure ]
 webkit.org/b/194952 imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html [ ImageOnlyFailure ]
diff --git a/LayoutTests/mathml/non-core/frac-linethickness-001-expected.html b/LayoutTests/mathml/non-core/frac-linethickness-001-expected.html
new file mode 100644 (file)
index 0000000..ec7a30d
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>fractions linethickness</title>
+    <style type="text/css">
+      @font-face {
+        font-family: TestFont;
+        src: url("../../imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff");
+      }
+      math {
+        /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+        font-family: "TestFont";
+        font-size: 1px;
+      }
+    </style>
+  </head>
+  <body>
+    <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p>
+    <math>
+      <mfrac linethickness="5px">
+        <mspace width="20px" height="5px" style="background: blue"></mspace>
+        <mspace width="20px" height="5px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="10px">
+        <mspace width="20px" height="10px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="20px">
+        <mspace width="20px" height="20px" style="background: blue"></mspace>
+        <mspace width="20px" height="20px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="50px">
+        <mspace width="20px" height="50px" style="background: blue"></mspace>
+        <mspace width="20px" height="50px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/frac-linethickness-001.html b/LayoutTests/mathml/non-core/frac-linethickness-001.html
new file mode 100644 (file)
index 0000000..9b1067c
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>fractions linethickness</title>
+    <meta name="assert" content="Verifies 'thin', 'medium', 'thick' and unitless values for the linethickness attribute of the mfrac element">
+    <link rel="match" href="frac-linethickness-001-ref.html">
+    <style type="text/css">
+      @font-face {
+        font-family: TestFont;
+        src: url("../../imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff");
+      }
+      math {
+        /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+        font-family: "TestFont";
+        font-size: 1px;
+      }
+    </style>
+  </head>
+  <body>
+    <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p>
+    <math>
+      <mfrac linethickness="thin">
+        <mspace width="20px" height="5px" style="background: blue"></mspace>
+        <mspace width="20px" height="5px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="medium">
+        <mspace width="20px" height="10px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="thick">
+        <mspace width="20px" height="20px" style="background: blue"></mspace>
+        <mspace width="20px" height="20px" style="background: cyan"></mspace>
+      </mfrac>
+      <mfrac linethickness="5">
+        <mspace width="20px" height="50px" style="background: blue"></mspace>
+        <mspace width="20px" height="50px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/frac-linethickness-002-expected.html b/LayoutTests/mathml/non-core/frac-linethickness-002-expected.html
new file mode 100644 (file)
index 0000000..1cc9791
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>fractions linethickness</title>
+    <style type="text/css">
+      @font-face {
+        font-family: TestFont;
+        src: url("../../imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff");
+      }
+      math {
+        /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+        font-family: "TestFont";
+        font-size: 1px;
+      }
+    </style>
+  </head>
+  <body>
+    <p>This test passes if you see fraction with a cyan denominator and
+      a blue numerator as tall as its black bar.</p>
+    <math>
+      <mfrac linethickness="0px">
+        <mspace width="20px" height="0px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+    <math>
+      <mfrac linethickness="50px">
+        <mspace width="20px" height="50px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+    <math style="font-size: 180px">
+      <mfrac linethickness="0.3888888888888889em">
+        <mspace width="20px" height="70px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/frac-linethickness-002.html b/LayoutTests/mathml/non-core/frac-linethickness-002.html
new file mode 100644 (file)
index 0000000..0ec6423
--- /dev/null
@@ -0,0 +1,42 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>fractions linethickness</title>
+    <meta name="assert" content="Verifies fraction with negative, percent and named space linethickness values.">
+    <link rel="match" href="frac-linethickness-002-ref.html">
+    <style type="text/css">
+      @font-face {
+        font-family: TestFont;
+        src: url("../../imported/w3c/web-platform-tests/fonts/math/fraction-rulethickness10000.woff");
+      }
+      math {
+        /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+        font-family: "TestFont";
+        font-size: 1px;
+      }
+    </style>
+  </head>
+  <body>
+    <p>This test passes if you see fraction with a cyan denominator and
+      a blue numerator as tall as its black bar.</p>
+    <math>
+      <mfrac linethickness="-1.23em">
+        <mspace width="20px" height="0px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+    <math>
+      <mfrac linethickness="500%">
+        <mspace width="20px" height="50px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+    <math style="font-size: 180px">
+      <mfrac linethickness="veryverythickmathspace">
+        <mspace width="20px" height="70px" style="background: blue"></mspace>
+        <mspace width="20px" height="10px" style="background: cyan"></mspace>
+      </mfrac>
+    </math>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/frac-numalign-denomalign-001-expected.html b/LayoutTests/mathml/non-core/frac-numalign-denomalign-001-expected.html
new file mode 100644 (file)
index 0000000..e6f3c89
--- /dev/null
@@ -0,0 +1,73 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Fraction numalign denomalign</title>
+  </head>
+  <body>
+    <p>This test passes if you see 3 fractions with a numerator respectively
+      aligned left/center/right with respect to the denominator ;
+      followed by 3 fractions with a denominator respectively aligned
+      left/center/right with respect to the numerator.</p>
+    <p>
+      <math>
+        <mfrac>
+          <mrow>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+            <mspace width="20px" height="20px"></mspace>
+          </mrow>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac>
+          <mrow>
+            <mspace width="10px" height="20px"></mspace>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+            <mspace width="10px" height="20px"></mspace>
+          </mrow>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac>
+          <mrow>
+            <mspace width="20px" height="20px"></mspace>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+          </mrow>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+    </p>
+    <p>
+      <math>
+        <mfrac>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mrow>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+            <mspace width="20px" height="20px"></mspace>
+          </mrow>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mrow>
+            <mspace width="10px" height="20px"></mspace>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+            <mspace width="10px" height="20px"></mspace>
+          </mrow>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mrow>
+            <mspace width="20px" height="20px"></mspace>
+            <mspace width="10px" height="20px" style="background: blue;"></mspace>
+          </mrow>
+        </mfrac>
+      </math>
+    </p>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/frac-numalign-denomalign-001.html b/LayoutTests/mathml/non-core/frac-numalign-denomalign-001.html
new file mode 100644 (file)
index 0000000..155ae2f
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Fraction numalign denomalign</title>
+    <meta name="assert" content="This fraction alignment with the numalign/denomalign attributes.">
+    <link rel="match" href="frac-numalign-denomalign-001-ref.html">
+  </head>
+  <body>
+    <p>This test passes if you see 3 fractions with a numerator respectively
+      aligned left/center/right with respect to the denominator ;
+      followed by 3 fractions with a denominator respectively aligned
+      left/center/right with respect to the numerator.</p>
+    <p>
+      <math>
+        <mfrac numalign="left">
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac numalign="center">
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac numalign="right">
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+        </mfrac>
+      </math>
+    </p>
+    <p>
+      <math>
+        <mfrac denomalign="left">
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac denomalign="center">
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+        </mfrac>
+      </math>
+      <math>
+        <mfrac denomalign="right">
+          <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+          <mspace width="10px" height="20px" style="background: blue;"></mspace>
+        </mfrac>
+      </math>
+    </p>
+  </body>
+</html>
diff --git a/LayoutTests/mathml/non-core/lengths-1-expected.html b/LayoutTests/mathml/non-core/lengths-1-expected.html
new file mode 100644 (file)
index 0000000..40a7070
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>MathML lengths (reference)</title>
+</head>
+<body>
+  <p>Test passes if there is a green square and no red.</p>
+  <div>
+    <div id="red" style="position: absolute; width: 200px; height: 200px; background: green;">
+    </div>
+  </div>
+</body>
+</html>
diff --git a/LayoutTests/mathml/non-core/lengths-1.html b/LayoutTests/mathml/non-core/lengths-1.html
new file mode 100644 (file)
index 0000000..daad56b
--- /dev/null
@@ -0,0 +1,118 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>MathML lengths</title>
+<link rel="match" href="lengths-1-ref.html"/>
+<meta name="assert" content="Verify whether the different units are accepted for MathML lengths.">
+<style>
+  @font-face {
+    font-family: TestFont;
+    src: url("../../imported/w3c/web-platform-tests/fonts/math/xheight500.woff");
+  }
+  span, math {
+    font-family: TestFont;
+    font-size: 10px; /* 1em = 10px, 1ex is about 5px */
+  }
+  span {
+    position: absolute;
+    display: inline-block;
+    height: 10px;
+  }
+  #red > span {
+    background: red;
+  }
+  #green > span {
+    background: green;
+  }
+</style>
+</head>
+<body>
+  <p>Test passes if there is a green square and no red.</p>
+  <div>
+    <div id="red" style="position: absolute; width: 200px; height: 200px; background: green;">
+      <!-- px -->
+      <span style="top: 0px"><math><mspace width="200px"/></math></span>
+      <span style="top: 10px; width: 200px"></span>
+
+      <!-- cm -->
+      <span style="top: 20px"><math><mspace width="5.08cm"/></math></span>
+      <span style="top: 30px; width: 192px"></span>
+
+      <!-- em -->
+      <span style="top: 40px"><math><mspace width="20em"/></math></span>
+      <span style="top: 50px; width: 200px"></span>
+
+      <!-- ex -->
+      <span style="top: 60px"><math><mspace width="30ex"/></math></span>
+      <span style="top: 70px; width: 30ex"></span>
+
+      <!-- in -->
+      <span style="top: 80px"><math><mspace width="2in"/></math></span>
+      <span style="top: 90px; width: 192px"></span>
+
+      <!-- mm -->
+      <span style="top: 100px"><math><mspace width="50.8mm"/></math></span>
+      <span style="top: 110px; width: 192px"></span>
+
+      <!-- pc -->
+      <span style="top: 120px"><math><mspace width="12.5pc"/></math></span>
+      <span style="top: 130px; width: 200px"></span>
+
+      <!-- pt -->
+      <span style="top: 140px"><math><mspace width="150pt"/></math></span>
+      <span style="top: 150px; width: 200px"></span>
+
+      <!-- % -->
+      <span style="top: 160px"><math><mstyle mathsize="2000%"><mspace width="1em"/></mstyle></math></span>
+      <span style="top: 170px; width: 200px"></span>
+
+      <!-- unitless -->
+      <span style="top: 180px"><math><mstyle mathsize="20.0"><mspace width="1em"/></mstyle></math></span>
+      <span style="top: 190px; width: 200px"></span>
+    </div>
+
+    <div id="green" style="position: absolute; width: 200px; height: 200px;">
+      <!-- px -->
+      <span style="top: 10px"><math><mspace width="200px"/></math></span>
+      <span style="top: 0px; width: 200px"></span>
+
+      <!-- cm -->
+      <span style="top: 30px"><math><mspace width="5.08cm"/></math></span>
+      <span style="top: 20px; width: 192px"></span>
+
+      <!-- em -->
+      <span title="em" style="top: 50px"><math><mspace width="20em"/></math></span>
+      <span title="em" style="top: 40px; width: 200px"></span>
+
+      <!-- ex -->
+      <span title="ex" style="top: 70px"><math><mspace width="30ex"/></math></span>
+      <span title="ex" style="top: 60px; width: 30ex"></span>
+
+      <!-- in -->
+      <span style="top: 90px"><math><mspace width="2in"/></math></span>
+      <span style="top: 80px; width: 192px"></span>
+
+      <!-- mm -->
+      <span style="top: 110px"><math><mspace width="50.8mm"/></math></span>
+      <span style="top: 100px; width: 192px"></span>
+
+      <!-- pc -->
+      <span style="top: 130px"><math><mspace width="12.5pc"/></math></span>
+      <span style="top: 120px; width: 200px"></span>
+
+      <!-- pt -->
+      <span style="top: 150px"><math><mspace width="150pt"/></math></span>
+      <span style="top: 140px; width: 200px"></span>
+
+      <!-- % -->
+      <span style="top: 170px"><math><mstyle mathsize="2000%"><mspace width="1em"/></mstyle></math></span>
+      <span style="top: 160px; width: 200px"></span>
+
+      <!-- unitless -->
+      <span style="top: 190px"><math><mstyle mathsize="20.0"><mspace width="1em"/></mstyle></math></span>
+      <span style="top: 180px; width: 200px"></span>
+    </div>
+  </div>
+</body>
+</html>
diff --git a/LayoutTests/mathml/non-core/lengths-2-expected.html b/LayoutTests/mathml/non-core/lengths-2-expected.html
new file mode 100644 (file)
index 0000000..40a7070
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>MathML lengths (reference)</title>
+</head>
+<body>
+  <p>Test passes if there is a green square and no red.</p>
+  <div>
+    <div id="red" style="position: absolute; width: 200px; height: 200px; background: green;">
+    </div>
+  </div>
+</body>
+</html>
diff --git a/LayoutTests/mathml/non-core/lengths-2.html b/LayoutTests/mathml/non-core/lengths-2.html
new file mode 100644 (file)
index 0000000..3d0b3b7
--- /dev/null
@@ -0,0 +1,121 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>MathML lengths</title>
+<link rel="match" href="lengths-2-ref.html"/>
+<meta name="assert" content="Verify whether the different namedspaces are accepted for MathML lengths.">
+<style>
+  @font-face {
+    font-family: TestFont;
+    src: url("../../imported/w3c/web-platform-tests/fonts/math/xheight500.woff");
+  }
+  mpadded {
+    font-family: TestFont;
+    font-size: 200px; /* 1em = 200px */
+  }
+  div {
+    position: absolute;
+  }
+  #red mspace {
+    background: red;
+  }
+  #green mspace {
+    background: green;
+  }
+</style>
+</head>
+<body>
+  <p>Test passes if there is a green square and no red.</p>
+  <div>
+    <div id="red" style="position: absolute; width: 200px; height: 200px; background: green;">
+      <!-- veryverythinmathspace -->
+      <div style="left: 0px;"><math><mpadded height="100px" depth="100px" voffset="1veryverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 10px;"><math><mpadded height="100px" depth="100px" voffset="0.05555555555555556em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- verythinmathspace -->
+      <div style="left: 20px;"><math><mpadded height="100px" depth="100px" voffset="1verythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 30px;"><math><mpadded height="100px" depth="100px" voffset="0.1111111111111111em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- thinmathspace -->
+      <div style="left: 40px;"><math><mpadded height="100px" depth="100px" voffset="1thinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 50px;"><math><mpadded height="100px" depth="100px" voffset="0.1666666666666667em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- mediummathspace -->
+      <div style="left: 60px;"><math><mpadded height="100px" depth="100px" voffset="1mediummathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 70px;"><math><mpadded height="100px" depth="100px" voffset="0.2222222222222222em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- thickmathspace -->
+      <div style="left: 80px;"><math><mpadded height="100px" depth="100px" voffset="1thickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 90px;"><math><mpadded height="100px" depth="100px" voffset="0.2777777777777778em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- verythickmathspace -->
+      <div style="left: 100px;"><math><mpadded height="100px" depth="100px" voffset="1verythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 110px;"><math><mpadded height="100px" depth="100px" voffset="0.3333333333333333em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- veryverythickmathspace -->
+      <div style="left: 120px;"><math><mpadded height="100px" depth="100px" voffset="1veryverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 130px;"><math><mpadded height="100px" depth="100px" voffset="0.3888888888888889em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeveryverythinmathspace -->
+      <div style="left: 0px;"><math><mpadded height="100px" depth="100px" voffset="1negativeveryverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 10px;"><math><mpadded height="100px" depth="100px" voffset="-0.05555555555555556em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeverythinmathspace -->
+      <div style="left: 20px;"><math><mpadded height="100px" depth="100px" voffset="1negativeverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 30px;"><math><mpadded height="100px" depth="100px" voffset="-0.1111111111111111em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativethinmathspace -->
+      <div style="left: 40px;"><math><mpadded height="100px" depth="100px" voffset="1negativethinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 50px;"><math><mpadded height="100px" depth="100px" voffset="-0.1666666666666667em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativemediummathspace -->
+      <div style="left: 60px;"><math><mpadded height="100px" depth="100px" voffset="1negativemediummathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 70px;"><math><mpadded height="100px" depth="100px" voffset="-0.2222222222222222em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativethickmathspace -->
+      <div style="left: 80px;"><math><mpadded height="100px" depth="100px" voffset="1negativethickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 90px;"><math><mpadded height="100px" depth="100px" voffset="-0.2777777777777778em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeverythickmathspace -->
+      <div style="left: 100px;"><math><mpadded height="100px" depth="100px" voffset="1negativeverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 110px;"><math><mpadded height="100px" depth="100px" voffset="-0.3333333333333333em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeveryverythickmathspace -->
+      <div style="left: 120px;"><math><mpadded height="100px" depth="100px" voffset="1negativeveryverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 130px;"><math><mpadded height="100px" depth="100px" voffset="-0.3888888888888889em"><mspace width="10px" height="10px"/></mpadded></math></div>
+    </div>
+    <div id="green" style="position: absolute; width: 200px; height: 200px;">
+      <!-- veryverythinmathspace -->
+      <div style="left: 10px;"><math><mpadded height="100px" depth="100px" voffset="1veryverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 0px;"><math><mpadded height="100px" depth="100px" voffset="0.05555555555555556em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- verythinmathspace -->
+      <div style="left: 30px;"><math><mpadded height="100px" depth="100px" voffset="1verythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 20px;"><math><mpadded height="100px" depth="100px" voffset="0.1111111111111111em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- thinmathspace -->
+      <div style="left: 50px;"><math><mpadded height="100px" depth="100px" voffset="1thinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 40px;"><math><mpadded height="100px" depth="100px" voffset="0.1666666666666667em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- mediummathspace -->
+      <div style="left: 70px;"><math><mpadded height="100px" depth="100px" voffset="1mediummathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 60px;"><math><mpadded height="100px" depth="100px" voffset="0.2222222222222222em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- thickmathspace -->
+      <div style="left: 90px;"><math><mpadded height="100px" depth="100px" voffset="1thickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 80px;"><math><mpadded height="100px" depth="100px" voffset="0.2777777777777778em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- verythickmathspace -->
+      <div style="left: 110px;"><math><mpadded height="100px" depth="100px" voffset="1verythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 100px;"><math><mpadded height="100px" depth="100px" voffset="0.3333333333333333em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- veryverythickmathspace -->
+      <div style="left: 130px;"><math><mpadded height="100px" depth="100px" voffset="1veryverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 120px;"><math><mpadded height="100px" depth="100px" voffset="0.3888888888888889em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeveryverythinmathspace -->
+      <div style="left: 10px;"><math><mpadded height="100px" depth="100px" voffset="1negativeveryverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 0px;"><math><mpadded height="100px" depth="100px" voffset="-0.05555555555555556em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeverythinmathspace -->
+      <div style="left: 30px;"><math><mpadded height="100px" depth="100px" voffset="1negativeverythinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 20px;"><math><mpadded height="100px" depth="100px" voffset="-0.1111111111111111em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativethinmathspace -->
+      <div style="left: 50px;"><math><mpadded height="100px" depth="100px" voffset="1negativethinmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 40px;"><math><mpadded height="100px" depth="100px" voffset="-0.1666666666666667em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativemediummathspace -->
+      <div style="left: 70px;"><math><mpadded height="100px" depth="100px" voffset="1negativemediummathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 60px;"><math><mpadded height="100px" depth="100px" voffset="-0.2222222222222222em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativethickmathspace -->
+      <div style="left: 90px;"><math><mpadded height="100px" depth="100px" voffset="1negativethickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 80px;"><math><mpadded height="100px" depth="100px" voffset="-0.2777777777777778em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeverythickmathspace -->
+      <div style="left: 110px;"><math><mpadded height="100px" depth="100px" voffset="1negativeverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 100px;"><math><mpadded height="100px" depth="100px" voffset="-0.3333333333333333em"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <!-- negativeveryverythickmathspace -->
+      <div style="left: 130px;"><math><mpadded height="100px" depth="100px" voffset="1negativeveryverythickmathspace"><mspace width="10px" height="10px"/></mpadded></math></div>
+      <div style="left: 120px;"><math><mpadded height="100px" depth="100px" voffset="-0.3888888888888889em"><mspace width="10px" height="10px"/></mpadded></math></div>
+    </div>
+  </div>
+</body>
+</html>
diff --git a/LayoutTests/mathml/non-core/lengths-3-expected.txt b/LayoutTests/mathml/non-core/lengths-3-expected.txt
new file mode 100644 (file)
index 0000000..7f6cfc6
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS Units 
+PASS Trimming of space 
+PASS Non-negative numbers 
+PASS Non-positive numbers 
+
+
+
+
diff --git a/LayoutTests/mathml/non-core/lengths-3.html b/LayoutTests/mathml/non-core/lengths-3.html
new file mode 100644 (file)
index 0000000..311647c
--- /dev/null
@@ -0,0 +1,155 @@
+<!DOCTYPE html><!-- webkit-test-runner [ experimental:CoreMathMLEnabled=false ] -->
+<html>
+<head>
+<meta charset="utf-8">
+<title>MathML lengths</title>
+<meta name="assert" content="Verify various cases of the MathML length syntax.">
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<style>
+  @font-face {
+    font-family: TestFont;
+    src: url("../../imported/w3c/web-platform-tests/fonts/math/xheight500.woff");
+  }
+  math {
+    font-family: TestFont;
+    font-size: 10px;
+  }
+</style>
+<script>
+  var epsilon = .5;
+
+  function getBox(aId) {
+    return document.getElementById(aId).getBoundingClientRect();
+  }
+
+  setup({ explicit_done: true });
+  window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
+
+  function runTests() {
+    test(function() {
+      assert_equals(getBox("unitCm").width, 96, "cm");
+      assert_equals(getBox("unitEm").width, 120, "em");
+      assert_equals(getBox("unitEx").width, 500, "ex");
+      assert_equals(getBox("unitIn").width, 288, "in");
+      assert_equals(getBox("unitNamed").width, 700, "namedspace");
+      assert_equals(getBox("unitMm").width, 576, "mm");
+      assert_equals(getBox("unitPc").width, 96, "pc");
+      assert_equals(getBox("unitPercentage").width, 60, "%");
+      assert_equals(getBox("unitPt").width, 96, "pt");
+      assert_equals(getBox("unitPx").width, 123, "px");
+      assert_equals(getBox("unitNone").width, 150, "Unitless");
+    }, "Units");
+
+    test(function() {
+      assert_equals(getBox("spaceCm").width, 96, "cm");
+      assert_equals(getBox("spaceEm").width, 120, "em");
+      assert_equals(getBox("spaceEx").width, 500, "ex");
+      assert_equals(getBox("spaceIn").width, 288, "in");
+      assert_equals(getBox("spaceNamed").width, 700, "namedspace");
+      assert_equals(getBox("spaceMm").width, 576, "mm");
+      assert_equals(getBox("spacePc").width, 96, "pc");
+      assert_equals(getBox("spacePercentage").width, 60, "%");
+      assert_equals(getBox("spacePt").width, 96, "pt");
+      assert_equals(getBox("spacePx").width, 123, "px");
+      assert_equals(getBox("spaceNone").width, 150, "Unitless");
+    }, "Trimming of space");
+
+    test(function() {
+      assert_approx_equals(getBox("n0").width, 0, epsilon, "n0");
+      assert_approx_equals(getBox("n1").width, 90, epsilon, "n1");
+      assert_approx_equals(getBox("n2").width, 8, epsilon, "n2");
+      assert_approx_equals(getBox("n3").width, 70, epsilon, "n3");
+      assert_approx_equals(getBox("n4").width, 650, epsilon, "n4");
+      assert_approx_equals(getBox("n5").width, 4320, epsilon, "n5");
+      assert_approx_equals(getBox("n6").width, 1, epsilon, "n6");
+      assert_approx_equals(getBox("n7").width, 8, epsilon, "n7");
+      assert_approx_equals(getBox("n8").width, 65, epsilon, "n8");
+      assert_approx_equals(getBox("n9").width, 432, epsilon, "n9");
+      assert_approx_equals(getBox("n10").width, 123, epsilon, "n10");
+    }, "Non-negative numbers");
+
+    test(function() {
+      var topRef = getBox("ref").top;
+      assert_approx_equals(getBox("N0").top - topRef, -0, epsilon, "N0");
+      assert_approx_equals(topRef - getBox("N1").top, -90, epsilon, "N1");
+      assert_approx_equals(topRef - getBox("N2").top, -8, epsilon, "N2");
+      assert_approx_equals(topRef - getBox("N3").top, -70, epsilon, "N3");
+      assert_approx_equals(topRef - getBox("N4").top, -650, epsilon, "N4");
+      assert_approx_equals(topRef - getBox("N5").top, -4320, epsilon, "N5");
+      assert_approx_equals(topRef - getBox("N6").top, -1, epsilon, "N6");
+      assert_approx_equals(topRef - getBox("N7").top, -8, epsilon, "N7");
+      assert_approx_equals(topRef - getBox("N8").top, -65, epsilon, "N8");
+      assert_approx_equals(topRef - getBox("N9").top, -432, epsilon, "N9");
+      assert_approx_equals(topRef - getBox("N10").top, -123, epsilon, "N10");
+    }, "Non-positive numbers");
+
+    done();
+  }
+</script>
+</head>
+<body>
+  <div id="log"></div>
+  <p>
+    <math>
+      <mspace id="unitCm" width="2.54cm"/>
+      <mspace id="unitEm" width="12em"/>
+      <mspace id="unitEx" width="100ex"/>
+      <mspace id="unitIn" width="3in"/>
+      <mspace style="font-size: 1800px" id="unitNamed" width="veryverythickmathspace"/>
+      <mspace id="unitMm" width="152.4mm"/>
+      <mspace id="unitPc" width="6pc"/>
+      <mstyle mathsize="200%"><mspace id="unitPercentage" width="3em"/></mstyle>
+      <mspace id="unitPt" width="72pt"/>
+      <mspace id="unitPx" width="123px"/>
+      <mstyle mathsize="5"><mspace id="unitNone" width="3em"/></mstyle>
+    </math>
+  </p>
+  <p>
+    <math>
+      <mspace id="spaceCm" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;2.54cm&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spaceEm" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;12em&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spaceEx" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;100ex&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spaceIn" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;3in&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace style="font-size: 1800px" id="spaceNamed" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;veryverythickmathspace&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spaceMm" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;152.4mm&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spacePc" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;6pc&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mstyle mathsize="200%"><mspace id="spacePercentage" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;3em&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/></mstyle>
+      <mspace id="spacePt" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;72pt&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mspace id="spacePx" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;123px&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/>
+      <mstyle mathsize="5"><mspace id="spaceNone" width="&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;3em&#x20;&#x9;&#xA;&#xD;&#x20;&#x9;&#xA;&#xD;"/></mstyle>
+    </math>
+  </p>
+  <p>
+    <math>
+      <mspace id="n0" width="0em"/>
+      <mspace id="n1" width="9em"/>
+      <mspace id="n2" width=".8em"/>
+      <mspace id="n3" width="7.em"/>
+      <mspace id="n4" width="65em"/>
+      <mspace id="n5" width="432em"/>
+      <mspace id="n6" width=".10em"/>
+      <mspace id="n7" width=".789em"/>
+      <mspace id="n8" width="6.5em"/>
+      <mspace id="n9" width="43.21em"/>
+      <mspace id="n10" width="012.345em"/>
+    </math>
+  </p>
+  <p>
+    <math>
+      <mspace id="ref"></mspace>
+      <mpadded voffset="-0em"><mspace id="N0"/></mpadded>
+      <mpadded voffset="-9em"><mspace id="N1"/></mpadded>
+      <mpadded voffset="-.8em"><mspace id="N2"/></mpadded>
+      <mpadded voffset="-7.em"><mspace id="N3"/></mpadded>
+      <mpadded voffset="-65em"><mspace id="N4"/></mpadded>
+      <mpadded voffset="-432em"><mspace id="N5"/></mpadded>
+      <mpadded voffset="-.10em"><mspace id="N6"/></mpadded>
+      <mpadded voffset="-.789em"><mspace id="N7"/></mpadded>
+      <mpadded voffset="-6.5em"><mspace id="N8"/></mpadded>
+      <mpadded voffset="-43.21em"><mspace id="N9"/></mpadded>
+      <mpadded voffset="-012.345em"><mspace id="N10"/></mpadded>
+    </math>
+  </p>
+</body>
+</html>
index 2a4990d..4997e45 100644 (file)
@@ -3718,6 +3718,7 @@ webkit.org/b/194609 http/tests/local/blob/send-hybrid-blob-using-open-panel.html
 webkit.org/b/194611 http/wpt/webrtc/getUserMedia-processSwapping.html [ Failure ]
 
 webkit.org/b/195133 imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-3.html [ Failure ]
+webkit.org/b/195133 mathml/non-core/lengths-3.html [ Failure ]
 
 webkit.org/b/195134 inspector/cpu-profiler/threads.html [ Failure ]
 
index 87df174..11d851c 100644 (file)
@@ -2028,6 +2028,8 @@ mathml/presentation/href-style.html [ ImageOnlyFailure ]
 mathml/presentation/mathvariant-inheritance.html  [ ImageOnlyFailure ]
 mathml/presentation/mathvariant-tokens.html [ ImageOnlyFailure ]
 mathml/presentation/tokenElements-mathvariant.html [ ImageOnlyFailure ]
+mathml/non-core/lengths-1.html [ ImageOnlyFailure ]
+mathml/non-core/lengths-3.html [ Failure ]
 ################################################################################
 #################          End MathML Issues                ####################
 ################################################################################