summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/mathml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/mozilla/tests/mathml
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/mozilla/tests/mathml')
-rw-r--r--testing/web-platform/mozilla/tests/mathml/README.md57
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.xhtml133
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.html130
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.xhtml134
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/dynamic-math-tree-001.html47
-rw-r--r--testing/web-platform/mozilla/tests/mathml/disabled/math-parse01.html62
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/README6
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/axis-height-1.otfbin0 -> 1968 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/axis-height-2.otfbin0 -> 1968 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/default-font-ref.html14
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/default-font.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-1-ref.html132
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.html135
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.otfbin0 -> 1812 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-2-ref.html175
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-2.html214
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-3-ref.html175
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/dtls-3.html217
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1-ref.html74
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1.html108
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/generate.py320
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/limits-5.otfbin0 -> 1872 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1-ref.html45
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1.html38
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2-ref.html25
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2.html40
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/mathssty.woffbin0 -> 1384 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/opentype-axis-height.html51
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/opentype-limits.html60
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy-ref.html69
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy.html70
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/ssty-1-ref.html337
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/ssty-1.html325
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/ssty-2-ref.html275
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/ssty-2.html268
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/ssty.woffbin0 -> 1412 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/fonts/stretchy.otfbin0 -> 3336 bytes
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathml-console-messages.html245
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathml-type-supported-ref.xml4
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathml-type-supported.xhtml12
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace-ref.html54
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace.html57
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace-ref.html54
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace.html57
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a-ref.html233
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a.html225
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b-ref.html126
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b.html127
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c-ref.html247
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c.html248
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d-ref.html64
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d.html65
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2-ref.html25
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2.html26
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4-ref.html55
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4.html47
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5-ref.html49
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5.html71
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font.html20
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur-ref.html79
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur.html85
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic-ref.html137
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic.html143
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-ref.html149
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif-ref.html147
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif.html153
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script-ref.html79
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script.html85
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold.html155
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity-ref.html163
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity.html168
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight-ref.html25
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight.html30
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-ref.html114
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck.html120
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur-ref.html79
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur.html85
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial-ref.html47
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial.html53
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic-ref.html139
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic.html145
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped-ref.html54
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped.html60
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace-ref.html89
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace.html95
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic-ref.html137
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic.html143
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic-ref.html79
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic.html85
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-ref.html89
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif.html95
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script-ref.html79
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script.html85
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched-ref.html50
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched.html56
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed-ref.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed.html48
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1-ref.html21
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1a.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1b.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1d.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1e.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1f.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1g.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1h.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1i.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1j.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1k.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1l.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1m.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1n.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1o.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1p.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-1q.html14
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial-ref.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box-ref.html45
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle-ref.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv-ref.html45
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle-ref.html47
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle.html46
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox-ref.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox.html41
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow-ref.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike-ref.html43
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid-ref.html13
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-4.html30
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-actuarial.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-bottom.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-box.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-circle.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-downdiagonalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-horizontalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-left.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-longdiv.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-madruwb.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-phasorangle.html23
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-right.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-roundedbox.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-top.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalarrow.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-verticalstrike.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir-ref.html61
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir.html64
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/menclose-in-mphantom-ref.html12
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation.html17
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic-ref.html12
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic.html20
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10.html12
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11-ref.html11
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11.html12
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001-ref.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001-ref.html45
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001.html21
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002-ref.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002.html19
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001-ref.xhtml9
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001.xhtml16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1-ref.html25
-rw-r--r--testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1.html30
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-1-ref.html77
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-1a.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-1b.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-1c.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-2-ref.html41
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-2a.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-2b.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1-ref.html32
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1.html49
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2-ref.html32
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2.html49
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/dir-6a-ref.html67
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/dir-6a.html70
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mstyle-align-ref.html26
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mstyle-align.html27
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2-ref.html21
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2.html22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-ref.html15
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber.html16
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace-ref.html342
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace.html339
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable-dynamic.html147
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr-dynamic.html156
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-ref.html128
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable-dynamic.html147
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr-dynamic.html156
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-ref.html128
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-mtable-dynamic.html106
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-ref.html90
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-mtable-dynamic.html106
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-ref.html90
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable-dynamic.html147
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-ref.html128
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable-dynamic.html147
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr-dynamic.html156
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr.html129
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-ref.html128
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-mtable-dynamic.html106
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-ref.html90
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-mtable-dynamic.html106
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-ref.html90
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-width-ref.html44
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/mtable-width.html46
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-1-ref.html77
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-1a.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-1b.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-1c.html78
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-2-ref.html51
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-2a.html52
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-2b.html52
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1-ref.html40
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1.html60
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2-ref.html40
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2.html60
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496-ref.xhtml22
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496.xhtml25
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/semantics-4-ref.html24
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/semantics-4.html41
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/spacing-attributes-001.html103
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1-ref.html66
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1.html69
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2-ref.html134
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2.html137
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3-ref.html133
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3.html136
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4-ref.html95
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4.html124
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5-ref.html274
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5.html296
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a-ref.html278
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a.html296
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6-ref.html123
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6.html136
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7-ref.html97
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7.html100
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8-ref.html38
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8a.html42
-rw-r--r--testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8b.html41
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3-ref.html32
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3.html32
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1-ref.html2
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1.html3
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2-ref.html2
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2.html3
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3-ref.html2
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3.html3
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4-ref.html2
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4.html3
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5-ref.html5
-rw-r--r--testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5.html6
325 files changed, 21288 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/mathml/README.md b/testing/web-platform/mozilla/tests/mathml/README.md
new file mode 100644
index 0000000000..092dae0251
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/README.md
@@ -0,0 +1,57 @@
+# Internal MathML tests
+
+The web-platform-tests Project provides [MathML tests](https://github.com/web-platform-tests/wpt/tree/master/mathml/)
+for the [MathML Core](https://w3c.github.io/mathml-core/) specification. This
+directory contains tests for [MathML3](https://www.w3.org/TR/MathML3/) features
+implemented in Gecko or for Gecko-specific behaviors that are not described in
+any specification:
+
+- `disabled/`: Tests for MathML handling when support is disabled. This is
+ mostly used for Tor browser's "high security" mode, see
+ [bug 1173199](https://bugzilla.mozilla.org/1173199).
+
+- `fonts`: font-related tests, such as OpenType features not handled yet in
+ MathML Core or other Gecko-specific behavior.
+
+- `mathml-console-messages.html`: Tests for Gecko-specific console warning and
+ error messages triggered by MathML markup.
+
+- `mathspaces_names`: Tests for
+ [MathML3 namedspaces](https://www.w3.org/TR/MathML3/chapter2.html#type.namedspace)
+ which are removed from MathML Core. See
+ [bug 1793549](https://bugzilla.mozilla.org/1173199).
+
+- `mathvariant`: Tests for the
+ [mathvariant attribute](https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt),
+ which is reduced to the case `<mi mathvariant="normal">` in MathML
+ Core. See [bug 1821980](https://bugzilla.mozilla.org/1821980).
+
+- `mpadded`: Tests for some
+ [mpadded](https://www.w3.org/TR/MathML3/chapter3.html#presm.mpadded)
+ features, which are not in the initial version of MathML Core.
+
+- `menclose`: Tests for the
+ [menclose](https://www.w3.org/TR/MathML3/chapter3.html#presm.menclose)
+ element, which is not in the initial version of MathML Core.
+ See [issue 216](https://github.com/w3c/mathml/issues/216).
+
+- `mo-accent`: Tests for the
+ [mo@accent attribute](https://www.w3.org/TR/MathML3/chapter3.html#presm.mo.dict.attrs),
+ and the corresponding accent property from the dictionary,
+ which are removed from MathML Core.
+ See [bug 1790548](https://bugzilla.mozilla.org/1790548)
+ and [bug 1636428](https://bugzilla.mozilla.org/1636428).
+
+- `negative-lengths`: Tests for negative lengths, for which support or
+ interpretation is unclear in current version of MathML Core.
+ See [issue 132](https://github.com/w3c/mathml-core/issues/132).
+
+- `tables`: Tests for
+ [table features](https://www.w3.org/TR/MathML3/chapter3.html#presm.tabmat)
+ that are in the initial version of MathML Core.
+ See [issue 125](https://github.com/w3c/mathml-core/issues/125).
+
+- `whitespace-trimming`: Tests for
+ [whitespace trimming in token elements](https://www.w3.org/TR/MathML3/chapter2.html#fund.collapse)
+ which is not described in the initial version of MathML Core.
+ See [issue 149](https://github.com/w3c/mathml-core/issues/149).
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.html b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.html
new file mode 100644
index 0000000000..991a828085
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>scriptlevel</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+
+ <!-- Test scriptlevel on mstyle -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mtext>O</mtext>
+ <mstyle scriptlevel="1"><mtext>O</mtext></mstyle>
+ </mstyle>
+ </randomelement>
+
+ <!-- The mfrac element sets displaystyle to "false", or if it was already
+ false increments scriptlevel by 1, within numerator and denominator.
+ -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mstyle displaystyle="false">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ <mstyle displaystyle="true">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ </mstyle>
+ </randomelement>
+
+ <!-- The mroot element increments scriptlevel by 2, and sets
+ displaystyle to "false", within index, but leaves both attributes
+ unchanged within base.
+ The msqrt element leaves both attributes unchanged within its
+ argument. -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mroot>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mroot>
+ <msqrt>
+ <mtext>O</mtext>
+ </msqrt>
+ </mstyle>
+ </randomelement>
+
+<!--
+ The msub element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within subscript, but leaves both attributes unchanged within base.
+
+ The msup element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within superscript, but leaves both attributes unchanged within
+ base.
+
+ The msubsup element [...] increments scriptlevel by 1, and sets displaystyle
+ to "false", within subscript and superscript, but leaves both attributes
+ unchanged within base.
+
+ The mmultiscripts element increments scriptlevel by 1, and sets displaystyle
+ to "false", within each of its arguments except base, but leaves both
+ attributes unchanged within base.
+ -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <msub>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msub>
+ <msup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msup>
+ <msubsup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msubsup>
+ <mmultiscripts>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mprescripts/>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mmultiscripts>
+ </mstyle>
+ </randomelement>
+
+<!--
+ The munder element [...] always sets displaystyle to "false" within the
+ underscript, but increments scriptlevel by 1 only when accentunder is
+ "false". Within base, it always leaves both attributes unchanged.
+
+ The mover element [...] always sets displaystyle to "false" within
+ overscript, but increments scriptlevel by 1 only when accent is "false".
+ Within base, it always leaves both attributes unchanged.
+
+ The munderover [..] always sets displaystyle to "false" within underscript
+ and overscript, but increments scriptlevel by 1 only when accentunder or
+ accent, respectively, are "false". Within base, it always leaves both
+ attributes unchanged.
+-->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <munder>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munder>
+ <mover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mover>
+ <munderover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munderover>
+ </mstyle>
+ </randomelement>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.xhtml b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.xhtml
new file mode 100644
index 0000000000..5c5799ddd7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1-ref.xhtml
@@ -0,0 +1,133 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>scriptlevel</title>
+ <meta charset="utf-8"/>
+ <style>
+ h2 {
+ text-align:center;
+ }
+ </style>
+ </head>
+ <body>
+
+ <!-- Test scriptlevel on mstyle -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mtext>O</mtext>
+ <mstyle scriptlevel="1"><mtext>O</mtext></mstyle>
+ </mstyle>
+ </randomelement>
+
+ <!-- The mfrac element sets displaystyle to "false", or if it was already
+ false increments scriptlevel by 1, within numerator and denominator.
+ -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mstyle displaystyle="false">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ <mstyle displaystyle="true">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ </mstyle>
+ </randomelement>
+
+ <!-- The mroot element increments scriptlevel by 2, and sets
+ displaystyle to "false", within index, but leaves both attributes
+ unchanged within base.
+ The msqrt element leaves both attributes unchanged within its
+ argument. -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <mroot>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mroot>
+ <msqrt>
+ <mtext>O</mtext>
+ </msqrt>
+ </mstyle>
+ </randomelement>
+
+<!--
+ The msub element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within subscript, but leaves both attributes unchanged within base.
+
+ The msup element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within superscript, but leaves both attributes unchanged within
+ base.
+
+ The msubsup element [...] increments scriptlevel by 1, and sets displaystyle
+ to "false", within subscript and superscript, but leaves both attributes
+ unchanged within base.
+
+ The mmultiscripts element increments scriptlevel by 1, and sets displaystyle
+ to "false", within each of its arguments except base, but leaves both
+ attributes unchanged within base.
+ -->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <msub>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msub>
+ <msup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msup>
+ <msubsup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msubsup>
+ <mmultiscripts>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mprescripts/>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mmultiscripts>
+ </mstyle>
+ </randomelement>
+
+<!--
+ The munder element [...] always sets displaystyle to "false" within the
+ underscript, but increments scriptlevel by 1 only when accentunder is
+ "false". Within base, it always leaves both attributes unchanged.
+
+ The mover element [...] always sets displaystyle to "false" within
+ overscript, but increments scriptlevel by 1 only when accent is "false".
+ Within base, it always leaves both attributes unchanged.
+
+ The munderover [..] always sets displaystyle to "false" within underscript
+ and overscript, but increments scriptlevel by 1 only when accentunder or
+ accent, respectively, are "false". Within base, it always leaves both
+ attributes unchanged.
+-->
+ <randomelement>
+ <mstyle scriptsizemultiplier="2">
+ <munder>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munder>
+ <mover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mover>
+ <munderover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munderover>
+ </mstyle>
+ </randomelement>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.html b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.html
new file mode 100644
index 0000000000..ea5ff9272e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>scriptlevel</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="disabled-scriptlevel-1-ref.html"/>
+ </head>
+ <body>
+
+ <!-- Test scriptlevel on mstyle -->
+ <math>
+ <mstyle scriptsizemultiplier="2">
+ <mtext>O</mtext>
+ <mstyle scriptlevel="1"><mtext>O</mtext></mstyle>
+ </mstyle>
+ </math>
+
+ <!-- The mfrac element sets displaystyle to "false", or if it was already
+ false increments scriptlevel by 1, within numerator and denominator.
+ -->
+ <math>
+ <mstyle scriptsizemultiplier="2">
+ <mstyle displaystyle="false">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ <mstyle displaystyle="true">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ </mstyle>
+ </math>
+
+ <!-- The mroot element increments scriptlevel by 2, and sets
+ displaystyle to "false", within index, but leaves both attributes
+ unchanged within base.
+ The msqrt element leaves both attributes unchanged within its
+ argument. -->
+ <math>
+ <mstyle scriptsizemultiplier="2">
+ <mroot>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mroot>
+ <msqrt>
+ <mtext>O</mtext>
+ </msqrt>
+ </mstyle>
+ </math>
+
+<!--
+ The msub element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within subscript, but leaves both attributes unchanged within base.
+
+ The msup element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within superscript, but leaves both attributes unchanged within
+ base.
+
+ The msubsup element [...] increments scriptlevel by 1, and sets displaystyle
+ to "false", within subscript and superscript, but leaves both attributes
+ unchanged within base.
+
+ The mmultiscripts element increments scriptlevel by 1, and sets displaystyle
+ to "false", within each of its arguments except base, but leaves both
+ attributes unchanged within base.
+ -->
+ <math>
+ <mstyle scriptsizemultiplier="2">
+ <msub>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msub>
+ <msup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msup>
+ <msubsup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msubsup>
+ <mmultiscripts>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mprescripts/>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+<!--
+ The munder element [...] always sets displaystyle to "false" within the
+ underscript, but increments scriptlevel by 1 only when accentunder is
+ "false". Within base, it always leaves both attributes unchanged.
+
+ The mover element [...] always sets displaystyle to "false" within
+ overscript, but increments scriptlevel by 1 only when accent is "false".
+ Within base, it always leaves both attributes unchanged.
+
+ The munderover [..] always sets displaystyle to "false" within underscript
+ and overscript, but increments scriptlevel by 1 only when accentunder or
+ accent, respectively, are "false". Within base, it always leaves both
+ attributes unchanged.
+-->
+ <math>
+ <mstyle scriptsizemultiplier="2">
+ <munder>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munder>
+ <mover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mover>
+ <munderover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munderover>
+ </mstyle>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.xhtml b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.xhtml
new file mode 100644
index 0000000000..d571df76f0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/disabled-scriptlevel-1.xhtml
@@ -0,0 +1,134 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>scriptlevel</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="disabled-scriptlevel-1-ref.xhtml"/>
+ <style>
+ h2 {
+ text-align:center;
+ }
+ </style>
+ </head>
+ <body>
+
+ <!-- Test scriptlevel on mstyle -->
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="2">
+ <mtext>O</mtext>
+ <mstyle scriptlevel="1"><mtext>O</mtext></mstyle>
+ </mstyle>
+ </math>
+
+ <!-- The mfrac element sets displaystyle to "false", or if it was already
+ false increments scriptlevel by 1, within numerator and denominator.
+ -->
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="2">
+ <mstyle displaystyle="false">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ <mstyle displaystyle="true">
+ <mfrac>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mfrac>
+ </mstyle>
+ </mstyle>
+ </math>
+
+ <!-- The mroot element increments scriptlevel by 2, and sets
+ displaystyle to "false", within index, but leaves both attributes
+ unchanged within base.
+ The msqrt element leaves both attributes unchanged within its
+ argument. -->
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="2">
+ <mroot>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mroot>
+ <msqrt>
+ <mtext>O</mtext>
+ </msqrt>
+ </mstyle>
+ </math>
+
+<!--
+ The msub element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within subscript, but leaves both attributes unchanged within base.
+
+ The msup element [...] increments scriptlevel by 1, and sets displaystyle to
+ "false", within superscript, but leaves both attributes unchanged within
+ base.
+
+ The msubsup element [...] increments scriptlevel by 1, and sets displaystyle
+ to "false", within subscript and superscript, but leaves both attributes
+ unchanged within base.
+
+ The mmultiscripts element increments scriptlevel by 1, and sets displaystyle
+ to "false", within each of its arguments except base, but leaves both
+ attributes unchanged within base.
+ -->
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="2">
+ <msub>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msub>
+ <msup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msup>
+ <msubsup>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </msubsup>
+ <mmultiscripts>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mprescripts/>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+<!--
+ The munder element [...] always sets displaystyle to "false" within the
+ underscript, but increments scriptlevel by 1 only when accentunder is
+ "false". Within base, it always leaves both attributes unchanged.
+
+ The mover element [...] always sets displaystyle to "false" within
+ overscript, but increments scriptlevel by 1 only when accent is "false".
+ Within base, it always leaves both attributes unchanged.
+
+ The munderover [..] always sets displaystyle to "false" within underscript
+ and overscript, but increments scriptlevel by 1 only when accentunder or
+ accent, respectively, are "false". Within base, it always leaves both
+ attributes unchanged.
+-->
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mstyle scriptsizemultiplier="2">
+ <munder>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munder>
+ <mover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </mover>
+ <munderover>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ <mtext>O</mtext>
+ </munderover>
+ </mstyle>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/dynamic-math-tree-001.html b/testing/web-platform/mozilla/tests/mathml/disabled/dynamic-math-tree-001.html
new file mode 100644
index 0000000000..3f184e823c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/dynamic-math-tree-001.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=1173199
+-->
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="testnodes"><span>hi</span> there <!-- mon ami --></div>
+<script type="application/javascript">
+ const mathmlNS = "http://www.w3.org/1998/Math/MathML";
+ let t = document.getElementById('testnodes');
+
+ test(function() {
+ t.innerHTML = null;
+ t.appendChild(document.createElementNS(mathmlNS, "math:math"));
+ assert_equals(t.firstChild.namespaceURI, mathmlNS);
+ t.firstChild.textContent = "<foo>";
+ assert_equals(t.innerHTML, "<math:math>&lt;foo&gt;</math:math>");
+ }, "Writing '<foo>' element in a dynamically created MathML element.");
+
+ test(function() {
+ t.innerHTML = null;
+ t.appendChild(document.createElementNS(mathmlNS, "math"));
+ assert_equals(t.firstChild.namespaceURI, mathmlNS);
+ t.firstChild.appendChild(document.createElementNS(mathmlNS, "script"));
+ assert_equals(t.firstChild.firstChild.namespaceURI, mathmlNS);
+ t.firstChild.firstChild.textContent = "1&2<3>4\xA0";
+ assert_equals(t.innerHTML,
+ '<math><script>1&amp;2&lt;3&gt;4&nbsp;\u003C/script></math>');
+ }, "Writing '<script>' element in a dynamically created MathML element.");
+
+ test(function() {
+ t.innerHTML = null;
+ t.appendChild(document.createElementNS(mathmlNS, "math"));
+ assert_equals(t.firstChild.namespaceURI, mathmlNS);
+ t.firstChild.appendChild(document.createElementNS(mathmlNS, "style"));
+ assert_equals(t.firstChild.firstChild.namespaceURI, mathmlNS);
+ t.firstChild.firstChild.textContent = "1&2<3>4\xA0";
+ assert_equals(t.innerHTML,
+ '<math><style>1&amp;2&lt;3&gt;4&nbsp;\u003C/style></math>');
+ }, "Writing '<style>' element in a dynamically created MathML element.");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/disabled/math-parse01.html b/testing/web-platform/mozilla/tests/mathml/disabled/math-parse01.html
new file mode 100644
index 0000000000..3aff716d9f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/disabled/math-parse01.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>math in html: parsing</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<h1>math in html: parsing</h1>
+
+<div id="log" style="display:block"></div>
+
+<div style="display:none">
+<div><math id="m1"><mtext/></math></div>
+<div id="d1"><math><mrow/><mi/></math></div>
+<div id="d2"><math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math></div>
+<div id="d3">&lang;&rang;</div>
+<div id="d4">&Kopf;</div>
+<div id="d5"><math><semantics><mi>a</mi><annotation-xml><foo/><bar/></annotation-xml></semantics></math></div>
+<div id="d6"><math><semantics><mi>a</mi><annotation-xml encoding="text/html"><div></div></annotation-xml></semantics><mn/></math>
+</div>
+
+
+<script>
+
+test(function() {
+assert_equals(document.getElementById("m1"),document.getElementsByTagName("math")[0]);
+},"The id attribute should be recognised on math elements");
+
+test(function() {
+assert_equals(document.getElementById("d1").firstChild.nodeName,"math")
+},"The node name should be math");
+
+test(function() {
+assert_equals(document.getElementById("d1").firstChild.namespaceURI ,"http://www.w3.org/1998/Math/MathML")
+},"math should be in MathML Namespace");
+
+test(function() {
+assert_equals(document.getElementById("d1").firstChild.childNodes.length ,2)
+},"Math has 2 children (empty tag syntax)");
+
+test(function() {
+assert_equals(document.getElementById("d2").firstChild.childNodes.length ,1)
+},"Nested mrow elements should be parsed correctly");
+
+test(function() {
+assert_equals(document.getElementById("d3").firstChild.nodeValue ,"\u27E8\u27E9")
+},"Testing rang and lang entity code points");
+
+test(function() {
+assert_equals(document.getElementById("d4").firstChild.nodeValue ,"\uD835\uDD42")
+},"Testing Kopf (Plane 1) entity code point");
+
+test(function() {
+assert_equals(document.getElementById("d5").firstChild.firstChild.childNodes[1].childNodes.length ,2)
+},"Empty element tags in annotation-xml parsed as per XML.");
+
+test(function() {
+assert_equals(document.getElementById("d6").firstChild.childNodes.length ,2)
+},"html tags allowed in annotation-xml/@encoding='text/html'.");
+
+</script>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/README b/testing/web-platform/mozilla/tests/mathml/fonts/README
new file mode 100644
index 0000000000..ad19f66228
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/README
@@ -0,0 +1,6 @@
+The fonts in this directory are autogenerated with FontForge using the Python
+script generate.py. See the comments in that file for more information on how
+to run the script.
+
+These fonts are intended to test the The MATH table and OpenType Features used
+in MathML. See layout/reftests/mathml/ and layout/mathml/tests.
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-1.otf b/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-1.otf
new file mode 100644
index 0000000000..2d6cc2fa0a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-1.otf
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-2.otf b/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-2.otf
new file mode 100644
index 0000000000..fdb7c97ce0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/axis-height-2.otf
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/default-font-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/default-font-ref.html
new file mode 100644
index 0000000000..9917f14b6f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/default-font-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>default font</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body style="font: 20px monospace;">
+
+ <math style="font-family: serif; font-size: 40px;">
+ <mn>x-math language</mn>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/default-font.html b/testing/web-platform/mozilla/tests/mathml/fonts/default-font.html
new file mode 100644
index 0000000000..6fead9cbce
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/default-font.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>default font</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="default-font-ref.html"/>
+ </head>
+ <body style="font: 20px monospace;">
+
+ <!-- font.minimum-size.x-math set to 40 -->
+ <math>
+ <mn>x-math language</mn>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1-ref.html
new file mode 100644
index 0000000000..61f5e9c2f6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1-ref.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<head>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ math {
+ font-family: dtls-1;
+ }
+ </style>
+</head>
+<body>
+ <math>
+ <mover accent="true">
+ <mn>b</mn>
+ <mn>c</mn>
+ </mover>
+ <munder accentunder="true">
+ <mn>c</mn>
+ <mn>c</mn>
+ </munder>
+ <munderover accent="true" accentunder="true">
+ <mn>b</mn>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover accent="true">
+ <mover accent="true">
+ <mn>b</mn>
+ <mn>b</mn>
+ </mover>
+ <mn>c</mn>
+ </mover>
+ <mover accent="true">
+ <mover accent="true">
+ <mn>b</mn>
+ <mn>b</mn>
+ </mover>
+ <mover accent="true">
+ <mn>b</mn>
+ <mn>c</mn>
+ </mover>
+ </mover>
+ <munderover accent="true" accentunder="true">
+ <munderover accent="true" accentunder="true">
+ <mn>b</mn>
+ <mn>b</mn>
+ <mn>b</mn>
+ </munderover>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <munderover accent="true" accentunder="true">
+ <mn>b</mn>
+ <mn>b</mn>
+ <mn>b</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <mn>b</mn>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <mn>b</mn>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover accent="true">
+ <mn>c</mn>
+ <mn>c</mn>
+ </mover>
+ <munder accentunder="true">
+ <mn>c</mn>
+ <mn>c</mn>
+ </munder>
+ <munderover accent="true" accentunder="true">
+ <mn>c</mn>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover accent="false">
+ <mn>c</mn>
+ <mn>c</mn>
+ </mover>
+ <munderover accent="false" accentunder="false">
+ <mn>c</mn>
+ <mn>c</mn>
+ <mn>c</mn>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover>
+ <mo movablelimits="true">c</mo>
+ <mo>c</mo>
+ </mover>
+ <munderover>
+ <mo movablelimits="true">c</mo>
+ <mo>c</mo>
+ <mo>c</mo>
+ </munderover>
+ <mover accent="true">
+ <mo movablelimits="true">c</mo>
+ <mo>c</mo>
+ </mover>
+ <munderover accent="true">
+ <mo movablelimits="true">c</mo>
+ <mo>c</mo>
+ <mo>c</mo>
+ </munderover>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.html
new file mode 100644
index 0000000000..4e76a658e7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<head>
+ <link rel="match" href="dtls-1-ref.html"/>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ math {
+ font-family: dtls-1;
+ }
+ </style>
+</head>
+<body>
+ <math>
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <munder accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </munder>
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover accent="true">
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <mn>a</mn>
+ </mover>
+ <mover accent="true">
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ </mover>
+ <munderover accent="true" accentunder="true">
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-feature-settings: 'dtls' 0">
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <munder accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </munder>
+ <munderover accent="true" accentunder="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mover accent="false">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <munderover accent="false" accentunder="false">
+ <mn>a</mn>
+ <mn>a</mn>
+ <mn>a</mn>
+ </munderover>
+ </math>
+
+ <p>
+
+ <math>
+ <mover>
+ <mo movablelimits="true">a</mo>
+ <mo>a</mo>
+ </mover>
+ <munderover>
+ <mo movablelimits="true">a</mo>
+ <mo>a</mo>
+ <mo>a</mo>
+ </munderover>
+ <mover accent="true">
+ <mo movablelimits="true">a</mo>
+ <mo>a</mo>
+ </mover>
+ <munderover accent="true">
+ <mo movablelimits="true">a</mo>
+ <mo>a</mo>
+ <mo>a</mo>
+ </munderover>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.otf b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.otf
new file mode 100644
index 0000000000..1ffbe24427
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-1.otf
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2-ref.html
new file mode 100644
index 0000000000..49342c1aa7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2-ref.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ </style>
+ </head>
+ <body>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>a</mo>
+ <!-- deliberately invalid -->
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mo>c</mo>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mrow>
+ <mrow>
+ <mrow>
+ <mo>b</mo>
+ </mrow>
+ </mrow>
+ </mrow>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style ="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle5" style ="font-family: 'dtls-1'; font-feature-settings: 'dtls' 0">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>c</mo>
+ <mo>c</mo>
+ </mover>
+ <mover accent="true">
+ <mo>c</mo>
+ <mo>c</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover1" accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="false" id="mover2">
+ <mo>c</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover3">
+ <mo>c</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo movablelimits="true">c</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2.html
new file mode 100644
index 0000000000..63a42d4a22
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-2.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <link rel="match" href="dtls-2-ref.html"/>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ </style>
+ </head>
+ <body>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover0">
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>a</mo>
+ <mo id="mo0"></mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>a</mo>
+ <mo id="mo1">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';" id="mstyle0">
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle1">
+ <mover accent="true">
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ <mover accent="true">
+ <mn>a</mn>
+ <mn>a</mn>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mrow>
+ <mrow>
+ <mrow id="mrow0">
+ </mrow>
+ </mrow>
+ </mrow>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle4" style ="font-family: 'dtls-1'; font-feature-settings: 'dtls' 0">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ <mover accent="true">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle5" style ="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ <mover accent="true">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover1">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover2">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover3">
+ <mo>a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo id="mo2">a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo id="mo3" movablelimits="true">a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <script>
+ function doTest()
+ {
+ var mo = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mo");
+ mo.innerHTML = "a";
+ // An added child gets dtls font feature
+ document.getElementById("mover0").appendChild(mo);
+ // A child with changed text gets dtls font feature
+ document.getElementById("mo0").innerHTML = "a";
+ // A relocated child loses dtls font feature setting
+ document.getElementById("mstyle0").appendChild(document.getElementById("mo1"));
+ // A change in style
+ document.getElementById("mstyle1").setAttribute("style", "font-family: 'dtls-1';");
+
+ // dtls gets added to descendants as well
+ var mo1 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mo");
+ mo1.innerHTML = "a";
+ document.getElementById("mrow0").appendChild(mo1);
+ // removing explicit dtls setting works
+ document.getElementById("mstyle4").setAttribute(
+ "style", "font-family: 'dtls-1';")
+ // setting an explicit dtls font feature
+ document.getElementById("mstyle5").setAttribute(
+ "style" , "font-family: 'dtls-1'; font-feature-settings: 'dtls' 0");
+
+ // Adding accent="true" applies dtls font feature
+ document.getElementById("mover1").setAttribute("accent", "true");
+ // Changing accent="true" to false removes dtls font feature
+ document.getElementById("mover2").setAttribute("accent", "false");
+ // Removing accent="true" removes dtls font feature
+ document.getElementById("mover3").removeAttribute("accent");
+
+ // Movablelimits disables dtls font feature
+ document.getElementById("mo2").setAttribute("movablelimits", "true");
+ // Removing movablelimits restores dtls font feature
+ document.getElementById("mo3").removeAttribute("movablelimits");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3-ref.html
new file mode 100644
index 0000000000..ce5e5c6122
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3-ref.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ </style>
+ </head>
+ <body>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <!-- deliberately invalid -->
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mo>&#x1d520;</mo>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d51f;</mo>
+ </mover>
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mrow>
+ <mrow>
+ <mrow>
+ <mo>&#x1d51f;</mo>
+ </mrow>
+ </mrow>
+ </mrow>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style ="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ <mover accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle5" style ="font-family: 'dtls-1'; font-feature-settings: 'dtls' 0">
+ <mover accent="true">
+ <mover accent="true">
+ <mo>&#x1d520;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ <mover accent="true">
+ <mo>&#x1d520;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover1" accent="true">
+ <mo>&#x1d51f;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="false" id="mover2">
+ <mo>&#x1d520;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover3">
+ <mo>&#x1d520;</mo>
+ <mo>&#x1d520;</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>&#x1d51e;</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo>b</mo>
+ <mo>c</mo>
+ </mover>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3.html b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3.html
new file mode 100644
index 0000000000..50eb56b28f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/dtls-3.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <link rel="match" href="dtls-3-ref.html"/>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ </style>
+ </head>
+ <body>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover0">
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur" id="mo0"></mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur" id="mo1">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';" id="mstyle0">
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle1">
+ <mover accent="true">
+ <mover accent="true">
+ <mn mathvariant="fraktur">a</mn>
+ <mn mathvariant="fraktur">a</mn>
+ </mover>
+ <mover accent="true">
+ <mn mathvariant="fraktur">a</mn>
+ <mn mathvariant="fraktur">a</mn>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mrow>
+ <mrow>
+ <mrow id="mrow0">
+ </mrow>
+ </mrow>
+ </mrow>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle4" style ="font-family: 'dtls-1'; font-feature-settings: 'dtls' 0">
+ <mover accent="true">
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle id="mstyle5" style ="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ <mover accent="true">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover id="mover1">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover2">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true" id="mover3">
+ <mo mathvariant="fraktur">a</mo>
+ <mo mathvariant="fraktur">a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo id="mo2">a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'dtls-1';">
+ <mover accent="true">
+ <mo mathvariant="fraktur" id="mo3">a</mo>
+ <mo>a</mo>
+ </mover>
+ </mstyle>
+ </math>
+
+ <script>
+ function doTest()
+ {
+ var mo = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mo");
+ mo.innerHTML = "a";
+ mo.setAttribute("mathvariant", "fraktur");
+ // An added child gets dtls font feature
+ document.getElementById("mover0").appendChild(mo);
+ // A child with changed text gets dtls font feature
+ document.getElementById("mo0").innerHTML = "a";
+ // A relocated child loses dtls font feature setting
+ document.getElementById("mstyle0").appendChild(document.getElementById("mo1"));
+ // A change in style
+ document.getElementById("mstyle1").setAttribute("style", "font-family: 'dtls-1';");
+
+ // dtls gets added to descendants as well
+ var mo1 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mo");
+ mo1.innerHTML = "a";
+ mo1.setAttribute("mathvariant", "fraktur");
+ document.getElementById("mrow0").appendChild(mo1);
+ // removing explicit dtls setting works
+ document.getElementById("mstyle4").setAttribute(
+ "style", "font-family: 'dtls-1';")
+ // setting an explicit dtls font feature
+ document.getElementById("mstyle5").setAttribute(
+ "style" , "font-family: 'dtls-1'; font-feature-settings: 'dtls' 0");
+
+ // Adding accent="true" applies dtls font feature
+ document.getElementById("mover1").setAttribute("accent", "true");
+ // Changing accent="true" to false removes dtls font feature
+ document.getElementById("mover2").setAttribute("accent", "false");
+ // Removing accent="true" removes dtls font feature
+ document.getElementById("mover3").removeAttribute("accent");
+
+ // dtls applies when mathvariant is set
+ document.getElementById("mo2").setAttribute("mathvariant", "fraktur");
+
+ // dtls still applies when mathvariant is removed
+ document.getElementById("mo3").removeAttribute("mathvariant");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1-ref.html
new file mode 100644
index 0000000000..a7716454ec
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1-ref.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Font Inflation</title>
+ <meta charset="utf-8"/>
+ <style>
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ p, math {
+ font-family: serif;
+ }
+ </style>
+ </head>
+ <body>
+
+<p>The text
+'<math>
+ <mrow id="ref">
+ <mtext style="font-family: dtls-1">&#x1D51E;</mtext>
+ <mtext>+</mtext>
+ </mrow>
+ </math>'
+should have the same size as inline math
+'<math>
+ <mrow id="inline">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </math>'
+or math in a table: '<math><mtable><mtr>
+ <mtd>
+ <mrow id="cell">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </mtd>
+ </mtr></mtable></math>'
+(but not necessarily the same size as block-level math
+<math display="block">
+ <mrow id="display">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </math>
+because it forms a BFC and hence is its own inflation container.)
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem
+ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
+in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor
+sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
+labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
+aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit
+amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
+et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
+ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
+in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.</p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1.html b/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1.html
new file mode 100644
index 0000000000..3af93b2fc1
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/font-inflation-1.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Font Inflation</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="font-inflation-1-ref.html"/>
+ <style>
+ @font-face {
+ font-family: "dtls-1";
+ src: url(dtls-1.otf);
+ }
+ p, math {
+ font-family: serif;
+ }
+ </style>
+ <script type="text/javascript">
+ function almostEqual(aX, aY) {
+ var epsilon = 2.6;
+ return Math.abs(aX - aY) < epsilon;
+ }
+
+ function verifySize(aElement, aReference) {
+ /* Verify if the size of the element matches the reference, and
+ otherwise paint the element in red. */
+ if (!almostEqual(aElement.getBoundingClientRect().height,
+ aReference.getBoundingClientRect().height) ||
+ !almostEqual(aElement.getBoundingClientRect().width,
+ aReference.getBoundingClientRect().width)) {
+ aElement.setAttribute("mathcolor", "red");
+ }
+ }
+
+ function verifySizes() {
+ /* Compare the size of the elements in the inline and display equations
+ against the reference mtext elements. */
+ var ref = document.getElementById("ref");
+ var inline = document.getElementById("inline");
+ var cell = document.getElementById("cell");
+ for (var i = 0; i < ref.children.length; i++) {
+ verifySize(inline.children[i], ref.children[i]);
+ verifySize(cell.children[i], ref.children[i]);
+ }
+
+ document.documentElement.removeAttribute("class");
+ }
+
+ document.documentElement.addEventListener("TestRendered", verifySizes);
+ </script>
+ </head>
+ <body>
+
+<p>The text
+'<math>
+ <mrow id="ref">
+ <mtext style="font-family: dtls-1">&#x1D51E;</mtext>
+ <mtext>+</mtext>
+ </mrow>
+ </math>'
+should have the same size as inline math
+'<math>
+ <mrow id="inline">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </math>'
+or math in a table: '<math><mtable><mtr>
+ <mtd>
+ <mrow id="cell">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </mtd>
+ </mtr></mtable></math>'
+(but not necessarily the same size as block-level math
+<math display="block">
+ <mrow id="display">
+ <mtext style="font-family: dtls-1">&#x1D51E;<!-- MATHEMATICAL FRAKTUR SMALL A--></mtext>
+ <mo>+</mo>
+ </mrow>
+ </math>
+because it forms a BFC and hence is its own inflation container.)
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
+quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
+cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem
+ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
+Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
+eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
+in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor
+sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
+labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
+aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
+fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit
+amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore
+et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
+ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
+in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.</p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/generate.py b/testing/web-platform/mozilla/tests/mathml/fonts/generate.py
new file mode 100644
index 0000000000..6f5008c898
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/generate.py
@@ -0,0 +1,320 @@
+#!/usr/bin/python
+# vim: set shiftwidth=4 tabstop=8 autoindent expandtab:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# For general fontforge documentation, see:
+# http://fontforge.sourceforge.net/
+# For fontforge scripting documentation, see:
+# http://fontforge.sourceforge.net/scripting-tutorial.html
+# http://fontforge.sourceforge.net/scripting.html
+# and most importantly:
+# http://fontforge.sourceforge.net/python.html
+
+# To install what you need, on Ubuntu,
+# sudo apt-get install python-fontforge
+
+import fontforge
+
+em = 1000
+
+
+def newMathFont(aName):
+ print("Generating %s.otf..." % aName, end="")
+ mathFont = fontforge.font()
+ mathFont.fontname = aName
+ mathFont.familyname = aName
+ mathFont.fullname = aName
+ mathFont.copyright = "Copyright (c) 2014 Mozilla Corporation"
+ mathFont.encoding = "UnicodeFull"
+
+ # Create a space character. Also force the creation of some MATH subtables
+ # so that OTS will not reject the MATH table.
+ g = mathFont.createChar(ord(" "), "space")
+ g.width = em
+ g.italicCorrection = 0
+ g.topaccent = 0
+ g.mathKern.bottomLeft = tuple([(0, 0)])
+ g.mathKern.bottomRight = tuple([(0, 0)])
+ g.mathKern.topLeft = tuple([(0, 0)])
+ g.mathKern.topRight = tuple([(0, 0)])
+ mathFont[ord(" ")].horizontalVariants = "space"
+ mathFont[ord(" ")].verticalVariants = "space"
+ return mathFont
+
+
+def saveMathFont(aFont):
+ aFont.em = em
+ aFont.ascent = aFont.descent = em / 2
+ aFont.hhea_ascent = aFont.os2_typoascent = aFont.os2_winascent = em / 2
+ aFont.descent = aFont.hhea_descent = em / 2
+ aFont.os2_typodescent = aFont.os2_windescent = em / 2
+ aFont.hhea_ascent_add = aFont.hhea_descent_add = 0
+ aFont.os2_typoascent_add = aFont.os2_typodescent_add = 0
+ aFont.os2_winascent_add = aFont.os2_windescent_add = 0
+ aFont.os2_use_typo_metrics = True
+ aFont.generate(aFont.fontname + ".otf")
+ print(" done.")
+
+
+def createSquareGlyph(aFont, aCodePoint):
+ g = aFont.createChar(aCodePoint)
+ p = g.glyphPen()
+ p.moveTo(0, 0)
+ p.lineTo(em, 0)
+ p.lineTo(em, em)
+ p.lineTo(0, em)
+ p.closePath()
+
+
+def createLLTriangleGlyph(aFont, aCodePoint):
+ g = aFont.createChar(aCodePoint)
+ p = g.glyphPen()
+ p.moveTo(0, 0)
+ p.lineTo(em, 0)
+ p.lineTo(0, em)
+ p.closePath()
+
+
+def createURTriangleGlyph(aFont, aCodePoint):
+ g = aFont.createChar(aCodePoint)
+ p = g.glyphPen()
+ p.moveTo(em, 0)
+ p.lineTo(em, em)
+ p.lineTo(0, em)
+ p.closePath()
+
+
+def createDiamondGlyph(aFont, aCodePoint):
+ g = aFont.createChar(aCodePoint)
+ p = g.glyphPen()
+ p.moveTo(0, em / 2)
+ p.lineTo(em / 2, 0)
+ p.lineTo(em, em / 2)
+ p.lineTo(em / 2, em)
+ p.closePath()
+
+
+################################################################################
+# Glyph variants and constructions
+f = newMathFont("stretchy")
+nvariants = 3
+
+# Draw boxes for the size variants and glues
+for i in range(0, nvariants):
+ s = em * (i + 1)
+
+ g = f.createChar(-1, "h%d" % i)
+ p = g.glyphPen()
+ p.moveTo(0, -em)
+ p.lineTo(0, em)
+ p.lineTo(s, em)
+ p.lineTo(s, -em)
+ p.closePath()
+ g.width = s
+
+ g = f.createChar(-1, "v%d" % i)
+ p = g.glyphPen()
+ p.moveTo(0, 0)
+ p.lineTo(0, s)
+ p.lineTo(2 * em, s)
+ p.lineTo(2 * em, 0)
+ p.closePath()
+ g.width = 2 * em
+
+# Draw some pieces for stretchy operators
+s = em * nvariants
+
+g = f.createChar(-1, "left")
+p = g.glyphPen()
+p.moveTo(0, -2 * em)
+p.lineTo(0, 2 * em)
+p.lineTo(s, em)
+p.lineTo(s, -em)
+p.closePath()
+g.width = s
+
+g = f.createChar(-1, "right")
+p = g.glyphPen()
+p.moveTo(0, -em)
+p.lineTo(0, em)
+p.lineTo(s, 2 * em)
+p.lineTo(s, -2 * em)
+p.closePath()
+g.width = s
+
+g = f.createChar(-1, "hmid")
+p = g.glyphPen()
+p.moveTo(0, -em)
+p.lineTo(0, em)
+p.lineTo(s, 2 * em)
+p.lineTo(2 * s, em)
+p.lineTo(2 * s, -em)
+p.lineTo(s, -2 * em)
+p.closePath()
+g.width = 2 * s
+
+g = f.createChar(-1, "bottom")
+p = g.glyphPen()
+p.moveTo(0, 0)
+p.lineTo(0, s)
+p.lineTo(2 * em, s)
+p.lineTo(4 * em, 0)
+p.closePath()
+g.width = 4 * em
+
+g = f.createChar(-1, "top")
+p = g.glyphPen()
+p.moveTo(0, 0)
+p.lineTo(4 * em, 0)
+p.lineTo(2 * em, -s)
+p.lineTo(0, -s)
+p.closePath()
+g.width = 4 * em
+
+g = f.createChar(-1, "vmid")
+p = g.glyphPen()
+p.moveTo(0, s)
+p.lineTo(2 * em, s)
+p.lineTo(4 * em, 0)
+p.lineTo(2 * em, -s)
+p.lineTo(0, -s)
+p.closePath()
+g.width = 3 * em
+
+# Create small rectangle of various size for some exotic arrows that are
+# unlikely to be stretchable with standard fonts.
+hstretchy = [
+ 0x219C, # leftwards wave arrow
+ 0x219D, # rightwards wave arrow
+ 0x219E, # leftwards two headed arrow
+ 0x21A0, # rightwards two headed arrow
+ 0x21A2, # leftwards arrow with tail
+]
+vstretchy = [
+ 0x219F, # upwards two headed arrow
+ 0x21A1, # downwards two headed arrow
+ 0x21A5, # upwards arrow from bar
+ 0x21A7, # downwards arrow from bar
+ 0x21A8, # up down arrow with base
+]
+for i in range(0, 1 + nvariants + 1):
+ s = (i + 1) * em / 10
+
+ g = f.createChar(hstretchy[i])
+ p = g.glyphPen()
+ p.moveTo(0, -em / 10)
+ p.lineTo(0, em / 10)
+ p.lineTo(s, em / 10)
+ p.lineTo(s, -em / 10)
+ p.closePath()
+ g.width = s
+
+ g = f.createChar(vstretchy[i])
+ p = g.glyphPen()
+ p.moveTo(0, 0)
+ p.lineTo(0, s)
+ p.lineTo(2 * em / 10, s)
+ p.lineTo(2 * em / 10, 0)
+ p.closePath()
+ g.width = 2 * em / 10
+
+# hstretchy[0] and vstretchy[0] have all the variants and the components. The others only have one of them.
+s = em * nvariants
+
+f[hstretchy[0]].horizontalVariants = "uni219C h0 h1 h2"
+f[hstretchy[0]].horizontalComponents = (
+ ("left", False, 0, 0, s),
+ ("h2", True, 0, 0, s),
+ ("hmid", False, 0, 0, 2 * s),
+ ("h2", True, 0, 0, s),
+ ("right", False, 0, 0, s),
+)
+
+f[hstretchy[1]].horizontalVariants = "uni219D h0"
+f[hstretchy[2]].horizontalVariants = "uni219E h1"
+f[hstretchy[3]].horizontalVariants = "uni21A0 h2"
+f[hstretchy[4]].horizontalVariants = "uni21A2 h2"
+f[hstretchy[4]].horizontalComponents = f[hstretchy[0]].horizontalComponents
+
+f[vstretchy[0]].verticalVariants = "uni219F v0 v1 v2"
+f[vstretchy[0]].verticalComponents = (
+ ("bottom", False, 0, 0, s),
+ ("v2", True, 0, 0, s),
+ ("vmid", False, 0, 0, 2 * s),
+ ("v2", True, 0, 0, s),
+ ("top", False, 0, 0, s),
+)
+
+f[vstretchy[1]].verticalVariants = "uni21A1 v0"
+f[vstretchy[2]].verticalVariants = "uni21A5 v1"
+f[vstretchy[3]].verticalVariants = "uni21A7 v2"
+f[vstretchy[4]].verticalVariants = "uni21A8"
+f[vstretchy[4]].verticalComponents = f[vstretchy[0]].verticalComponents
+
+################################################################################
+# Testing DisplayOperatorMinHeight
+f.math.DisplayOperatorMinHeight = 8 * em
+largeop = [0x2A1B, 0x2A1C] # integral with overbar/underbar
+
+# Draw boxes of size 1, 2, 7, 8, 9em.
+for i in [1, 2, 7, 8, 9]:
+ s = em * i
+ if i == 1 or i == 2:
+ g = f.createChar(largeop[i - 1])
+ else:
+ g = f.createChar(-1, "L%d" % i)
+ p = g.glyphPen()
+ p.moveTo(0, 0)
+ p.lineTo(0, s)
+ p.lineTo(s, s)
+ p.lineTo(s, 0)
+ p.closePath()
+ g.width = s
+
+f[largeop[0]].verticalVariants = "uni2A1B L7 L8 L9"
+f[largeop[1]].verticalVariants = "uni2A1C L8"
+
+saveMathFont(f)
+
+################################################################################
+# Testing AxisHeight
+f = newMathFont("axis-height-1")
+f.math.AxisHeight = 0
+createSquareGlyph(f, ord("+"))
+saveMathFont(f)
+
+f = newMathFont("axis-height-2")
+f.math.AxisHeight = 20 * em
+createSquareGlyph(f, ord("+"))
+saveMathFont(f)
+
+################################################################################
+# Testing Limits Parameters
+f = newMathFont("limits-5")
+f.math.UpperLimitGapMin = 0
+f.math.UpperLimitBaselineRiseMin = 0
+f.math.LowerLimitGapMin = 0
+f.math.LowerLimitBaselineDropMin = 0
+f.math.AccentBaseHeight = 6 * em
+f.math.FlattenedAccentBaseHeight = 3 * em
+createSquareGlyph(f, ord("~"))
+saveMathFont(f)
+
+f = newMathFont("dtls-1")
+createSquareGlyph(f, ord("a"))
+createLLTriangleGlyph(f, ord("b"))
+createSquareGlyph(f, ord("c"))
+createDiamondGlyph(f, 0x1D51E) # mathvariant=fraktur a
+createURTriangleGlyph(f, 0x1D51F) # mathvariant=fraktur b
+createDiamondGlyph(f, 0x1D520) # mathvariant=fraktur c
+f.addLookup("gsub", "gsub_single", (), (("dtls", (("latn", ("dflt")),)),))
+f.addLookupSubtable("gsub", "gsub_n")
+glyph = f["a"]
+glyph.addPosSub("gsub_n", "b")
+glyph2 = f[0x1D51F]
+glyph2.glyphname = "urtriangle"
+glyph3 = f[0x1D51E]
+glyph3.addPosSub("gsub_n", "urtriangle")
+saveMathFont(f)
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/limits-5.otf b/testing/web-platform/mozilla/tests/mathml/fonts/limits-5.otf
new file mode 100644
index 0000000000..fb8e9ec4fc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/limits-5.otf
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1-ref.html
new file mode 100644
index 0000000000..d591150929
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1-ref.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<head>
+
+ <!-- This font only has glyphs defined for 'A', 'B', 'C' and 'D', and is
+ designed purely for testing ssty and OpenType 'math' script
+ functionality
+ The glyphs for 'A' and 'D' are identical, the difference between them is
+ that 'A' supports the ssty font feature.
+ 'A' with ssty = 1 maps to 'B'
+ 'A' with ssty = 2 maps to 'C'
+ The difference between this font and ssty.woff is that the font feature
+ is contained within the OpenType 'math' script. -->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "mathssty";
+ src: url("mathssty.woff");
+ }
+ </style>
+</head>
+<body>
+
+ <!-- Demonstrate that it has no effect outside MathML -->
+ <div style="font-family: 'mathssty';">D</div>
+ <div style="font-family: 'mathssty';">D</div>
+
+ <!-- Demonstrate that it works within MathML -->
+ <math>
+ <mstyle style="font-family: 'mathssty';">
+ <mrow>
+ <mo>D</mo>
+ <mo>B</mo>
+ <mo>C</mo>
+ </mrow>
+ </mstyle>
+ </math>
+ <p>
+ <!-- verify it works for the other elements except mtext -->
+ <math>
+ <mstyle style="font-family: 'mathssty';">
+ <mi mathvariant="normal">C</mi>
+ <mn>C</mn>
+ <mtext>D</mtext>
+ </mstyle>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1.html b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1.html
new file mode 100644
index 0000000000..808c27d030
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-1.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<head>
+ <link rel="match" href="mathscript-1-ref.html"/>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "mathssty";
+ src: url("mathssty.woff");
+ }
+ </style>
+</head>
+<body>
+
+ <!-- Demonstrate that it has no effect outside MathML -->
+ <div style="font-family: 'mathssty';
+ font-feature-settings: 'ssty' 1">A</div>
+ <div style="font-family: 'mathssty';
+ font-feature-settings: 'ssty' 2">A</div>
+
+ <!-- Demonstrate that it works within MathML -->
+ <math>
+ <mstyle style="font-family: 'mathssty';">
+ <mrow>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo style="font-feature-settings: 'ssty' 1">A</mo>
+ <mo style="font-feature-settings: 'ssty' 2">A</mo>
+ </mrow>
+ </mstyle>
+ </math>
+ <p>
+ <!-- verify it works for the other elements except mtext -->
+ <math>
+ <mstyle style="font-family: 'mathssty'; font-feature-settings: 'ssty' 2">
+ <mi mathvariant="normal">A</mi>
+ <mn>A</mn>
+ <mtext>A</mtext>
+ </mstyle>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2-ref.html
new file mode 100644
index 0000000000..6681292474
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic OpenType 'math' script tests</title>
+ <!-- See mathscript-1-ref.html for an explanation of this font -->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "mathssty";
+ src: url("mathssty.woff");
+ }
+ </style>
+ </head>
+ <body>
+
+ <!-- Demonstrate that it has no effect outside MathML -->
+ <div style="font-family: 'mathssty';" >DD</div>
+
+ <!-- Demonstrate that it works within MathML -->
+ <math>
+ <mstyle style="font-family: 'mathssty';">
+ <mo>CC</mo>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2.html b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2.html
new file mode 100644
index 0000000000..1a1ea1599e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/mathscript-2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic OpenType 'math' script tests</title>
+ <link rel="match" href="mathscript-2-ref.html"/>
+ <!-- See mathscript-1-ref.html for an explanation of this font -->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "mathssty";
+ src: url("mathssty.woff");
+ }
+ </style>
+ </head>
+ <body>
+
+ <!-- Demonstrate that it has no effect outside MathML -->
+ <div style="font-family: 'mathssty';
+ font-feature-settings: 'ssty' " id="div0">A</div>
+
+ <!-- Demonstrate that it works within MathML -->
+ <math>
+ <mstyle style="font-family: 'mathssty'; font-feature-settings: 'ssty' 2">
+ <mo id="mo0">A</mo>
+ </mstyle>
+ </math>
+
+ <script>
+ function doTest()
+ {
+ // Does nothing to non-MathML
+ document.getElementById("div0").appendChild(document.createTextNode("A"));
+ // Does something to MathML
+ document.getElementById("mo0").appendChild(document.createTextNode("A"));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/mathssty.woff b/testing/web-platform/mozilla/tests/mathml/fonts/mathssty.woff
new file mode 100644
index 0000000000..eb6a667753
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/mathssty.woff
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/opentype-axis-height.html b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-axis-height.html
new file mode 100644
index 0000000000..8a7050ad4b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-axis-height.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Open Type MATH - axis-height</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=961365"/>
+ <meta charset="utf-8"/>
+ <style type="text/css">
+ math {
+ font-size: 10px;
+ }
+ @font-face {
+ font-family: axis-height-1;
+ src: url(axis-height-1.otf);
+ }
+ @font-face {
+ font-family: axis-height-2;
+ src: url(axis-height-2.otf);
+ }
+ </style>
+ <script type="application/javascript">
+ setup({explicit_done : true});
+
+ var epsilon = 5;
+
+ function getBox(aId) {
+ return document.getElementById(aId).getBoundingClientRect();
+ }
+
+ function doTest() {
+ test(function() {
+ assert_approx_equals(getBox("plus1").top - getBox("plus2").top, 10 * 20, epsilon);
+ }, "AxisHeight");
+ done();
+ }
+ </script>
+ </head>
+ <body onload="doTest()">
+
+ <p>
+ <math style="font-family: axis-height-1;">
+ <mo id="plus1">+</mo>
+ </math>
+ <math style="font-family: axis-height-2;">
+ <mo id="plus2">+</mo>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/opentype-limits.html b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-limits.html
new file mode 100644
index 0000000000..575dfefc11
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-limits.html
@@ -0,0 +1,60 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Open Type MATH - limits</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=961365"/>
+ <meta charset="utf-8"/>
+ <style type="text/css">
+ math {
+ font-size: 10px;
+ }
+ @font-face {
+ font-family: limits-5;
+ src: url(limits-5.otf);
+ }
+ </style>
+ <script type="text/javascript">
+ setup({explicit_done : true});
+
+ var epsilon = 5;
+
+ function getBox(aId) {
+ return document.getElementById(aId).getBoundingClientRect();
+ }
+
+ function doTest() {
+ test(function() {
+ assert_approx_equals(getBox("base9").top - getBox("over9").bottom,
+ (6 - 2) * 10, epsilon);
+ assert_approx_equals(getBox("base10").top - getBox("over10").bottom,
+ (6 - 2) * 10, epsilon);
+ }, "AccentBaseHeight");
+ done();
+ }
+ </script>
+ </head>
+ <body onload="doTest()">
+
+ <p>
+ <math style="font-family: limits-5;" displaystyle="true">
+ <mspace id="ref5" height="1em" width="1em" mathbackground="green"/>
+ </math>
+ <math style="font-family: limits-5;" displaystyle="true">
+ <mover>
+ <mspace id="base9" height="2em" width="2em" mathbackground="blue"/>
+ <mo id="over9" stretchy="false">~</mo>
+ </mover>
+ </math>
+ <math style="font-family: limits-5;" displaystyle="true">
+ <munderover>
+ <mspace id="base10" height="2em" width="2em" mathbackground="blue"/>
+ <mspace id="under10" height="1em" width="1em" mathbackground="red"/>
+ <mo id="over10" stretchy="false">~</mo>
+ </munderover>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy-ref.html
new file mode 100644
index 0000000000..7de372170d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy-ref.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Open Type MATH - stretchy operator</title>
+ <meta charset="utf-8"/>
+ <style type="text/css">
+ @font-face {
+ font-family: stretchy;
+ src: url(stretchy.otf);
+ }
+ math {
+ font-family: stretchy;
+ font-size: 10px;
+ }
+ </style>
+ </head>
+ <body>
+
+<!--
+hstretchy = [
+ 0x219C, # leftwards wave arrow
+ 0x219D, # rightwards wave arrow
+ 0x219E, # leftwards two headed arrow
+ 0x21A0, # rightwards two headed arrow
+ 0x21A2 # leftwards arrow with tail
+]
+vstretchy = [
+ 0x219F, # upwards two headed arrow
+ 0x21A1, # downwards two headed arrow
+ 0x21A5, # upwards arrow from bar
+ 0x21A7, # downwards arrow from bar
+ 0x21A8 # up down arrow with base
+]
+
+hstretchy[0] and vstretchy[0] have all the variants and the components. The others only have one of them.
+-->
+
+ <p>
+ <math>
+ <mstyle>
+ <mover><mo stretchy="true">&#x219D;</mo><mspace width="1em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x219E;</mo><mspace width="2em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x21A0;</mo><mspace width="3em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x21A2;</mo><mspace width="15em" height="1px" mathbackground="red"/></mover>
+ </mstyle>
+ </math>
+ </p>
+
+ <p>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="1em">&#x21A1;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="2em">&#x21A5;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="3em">&#x21A7;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="15em">&#x21A8;</mo></mrow></math>
+ </p>
+
+<!--
+DisplayOperatorMinHeight = 8em
+largeop = [0x2A1B, 0x2A1C] # integral with overbar/underbar
+largeop[0] has variants of size 7, 8, 9em
+largeop[1] has one variant of size 8em.
+-->
+ <p>
+ <math displaystyle="true">
+ <mrow><mo>&#x2A1C;</mo></mrow>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy.html b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy.html
new file mode 100644
index 0000000000..50bccf9b02
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/opentype-stretchy.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Open Type MATH - stretchy operator</title>
+ <link rel="match" href="opentype-stretchy-ref.html"/>
+ <meta charset="utf-8"/>
+ <style type="text/css">
+ @font-face {
+ font-family: stretchy;
+ src: url(stretchy.otf);
+ }
+ math {
+ font-family: stretchy;
+ font-size: 10px;
+ }
+ </style>
+ </head>
+ <body>
+
+<!--
+hstretchy = [
+ 0x219C, # leftwards wave arrow
+ 0x219D, # rightwards wave arrow
+ 0x219E, # leftwards two headed arrow
+ 0x21A0, # rightwards two headed arrow
+ 0x21A2 # leftwards arrow with tail
+]
+vstretchy = [
+ 0x219F, # upwards two headed arrow
+ 0x21A1, # downwards two headed arrow
+ 0x21A5, # upwards arrow from bar
+ 0x21A7, # downwards arrow from bar
+ 0x21A8 # up down arrow with base
+]
+
+hstretchy[0] and vstretchy[0] have all the variants and the components. The others only have one of them.
+-->
+
+ <p>
+ <math>
+ <mstyle>
+ <mover><mo stretchy="true">&#x219C;</mo><mspace width="1em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x219C;</mo><mspace width="2em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x219C;</mo><mspace width="3em" height="1px" mathbackground="red"/></mover>
+ <mover><mo stretchy="true">&#x219C;</mo><mspace width="15em" height="1px" mathbackground="red"/></mover>
+ </mstyle>
+ </math>
+ </p>
+
+ <p>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="1em">&#x219F;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="2em">&#x219F;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="3em">&#x219F;</mo></mrow></math>
+ <math><mrow><mo symmetric="false" stretchy="true" minsize="15em">&#x219F;</mo></mrow></math>
+ </p>
+
+<!--
+DisplayOperatorMinHeight = 8em
+largeop = [0x2A1B, 0x2A1C] # integral with overbar/underbar
+largeop[0] has variants of size 7, 8, 9em
+largeop[1] has one variant of size 8em.
+-->
+ <p>
+ <math displaystyle="true">
+ <mrow><mo>&#x2A1B;</mo></mrow>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1-ref.html
new file mode 100644
index 0000000000..d01b0e5b08
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1-ref.html
@@ -0,0 +1,337 @@
+<!DOCTYPE html>
+<head>
+
+ <!-- This font only has glyphs defined for 'A', 'B', 'C' and 'D', and is
+ designed purely for testing ssty functionality
+ The glyphs for 'A' and 'D' are identical, the difference between them is
+ that 'A' supports the ssty font feature.
+ 'A' with ssty = 1 maps to 'B'
+ 'A' with ssty = 2 maps to 'C'-->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "sstyfont";
+ src: url("ssty.woff");
+ }
+ </style>
+</head>
+<body>
+
+ <!-- Test whether the ssty font feature setting is used appropriately for
+ supscripts et al.
+ Assumes kMathMLDefaultScriptSizeMultiplier is 0.71-->
+
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <msup>
+ <mo>D</mo>
+ <msup>
+ <mo>B</mo>
+ <msup>
+ <mo>C</mo>
+ <mo>C</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>D</mo>
+ <msub>
+ <mo>B</mo>
+ <msub>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>D</mo>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>D</mo>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- Automatically set ssty ignores user set scriptlevel -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';" scriptlevel="-3">
+ <msup>
+ <mo>D</mo>
+ <msup>
+ <mo>B</mo>
+ <msup>
+ <mo>C</mo>
+ <mo>C</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>D</mo>
+ <msub>
+ <mo>B</mo>
+ <msub>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>D</mo>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>D</mo>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- Automatically set ssty ignores user set scriptlevel -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';" scriptlevel="1">
+ <msup>
+ <mo>D</mo>
+ <msup>
+ <mo>B</mo>
+ <msup>
+ <mo>C</mo>
+ <mo>C</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>D</mo>
+ <msub>
+ <mo>B</mo>
+ <msub>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>D</mo>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>B</mo>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>D</mo>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>B</mo>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>C</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- User set ssty font feature setting overrides automatically set ssty, but
+ only for affected elements -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <msup>
+ <mo>D</mo>
+ <msup>
+ <mo>D</mo>
+ <mo>C</mo>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>D</mo>
+ <msub>
+ <mo>D</mo>
+ <mo>C</mo>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>D</mo>
+ <msubsup>
+ <mo>D</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ <msubsup>
+ <mo>D</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>D</mo>
+ <mmultiscripts>
+ <mo>D</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>D</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1.html b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1.html
new file mode 100644
index 0000000000..f918b9c6d2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-1.html
@@ -0,0 +1,325 @@
+<!DOCTYPE html>
+<head>
+ <link rel="match" href="ssty-1-ref.html"/>
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "sstyfont";
+ src: url("ssty.woff");
+ }
+ </style>
+</head>
+<body>
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <mo>A</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- Automatically set ssty ignores scriptlevel -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';" scriptlevel="-3">
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <mo>A</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- Automatically set ssty ignores scriptlevel -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';" scriptlevel="1">
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo>A</mo>
+ <mo>A</mo> <!-- ssty value capped at 2 -->
+ </msup>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msub>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <!-- User set ssty font feature setting overrides automatically set ssty -->
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <msup>
+ <mo>A</mo>
+ <msup>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ </msup>
+ </msup>
+
+ <msub>
+ <mo>A</mo>
+ <msub>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ </msub>
+ </msub>
+
+ <msubsup>
+ <mo>A</mo>
+ <msubsup>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ <msubsup>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </msubsup>
+ </msubsup>
+
+ <mmultiscripts>
+ <mo>A</mo>
+ <mmultiscripts>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ <mmultiscripts>
+ <mo style="font-feature-settings: 'ssty' 0">A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mmultiscripts>
+ </mmultiscripts>
+ </mstyle>
+ </math>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2-ref.html b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2-ref.html
new file mode 100644
index 0000000000..c11c328f38
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2-ref.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html>
+<head>
+ <!-- See ssty-1-ref.html for an explanation of this font -->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "sstyfont";
+ src: url("ssty.woff");
+ }
+ </style>
+</head>
+<body>
+ <!-- Test whether the ssty font feature setting is used appropriately for
+ mroot, mfrac, munderover et al.
+ Assumes kMathMLDefaultScriptSizeMultiplier is 0.71-->
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <mroot>
+ <mo>D</mo>
+ <mo>C</mo>
+ </mroot>
+
+ <mfrac>
+ <mo>B</mo>
+ <mo>B</mo>
+ </mfrac>
+
+ <mfrac>
+ <mfrac>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mfrac>
+ <mfrac>
+ <mo>C</mo>
+ <mo>C</mo>
+ </mfrac>
+ </mfrac>
+
+ <mfrac>
+ <mroot>
+ <mo>B</mo>
+ <mo>C</mo>
+ </mroot>
+ <mo>B</mo>
+ </mfrac>
+
+ <mover>
+ <mo>D</mo>
+ <mover>
+ <mo>B</mo>
+ <mo>C</mo>
+ </mover>
+ </mover>
+
+ <munder>
+ <mo>D</mo>
+ <munder>
+ <mo>B</mo>
+ <mo>C</mo>
+ </munder>
+ </munder>
+
+ <munderover>
+ <mo>D</mo>
+ <munderover>
+ <mo>B</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </munderover>
+ <munderover>
+ <mo>B</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </munderover>
+ </munderover>
+
+ </mstyle>
+ </math>
+
+ <p>
+ <!-- ssty font feature not set on mfrac et al when displaystyle is
+ set (still allowed on mroot, mover et al.)-->
+ <math>
+ <mstyle style="font-family: 'sstyfont';" displaystyle="true">
+ <mroot>
+ <mo>D</mo>
+ <mo>C</mo>
+ </mroot>
+
+ <mfrac>
+ <mo>D</mo>
+ <mo>D</mo>
+ </mfrac>
+
+ <mfrac>
+ <mfrac>
+ <!-- ssty gets set as script level incremented because displaystyle
+ is now false -->
+ <mo>B</mo>
+ <mo>B</mo>
+ </mfrac>
+ <mfrac>
+ <mo>B</mo>
+ <mo>B</mo>
+ </mfrac>
+ </mfrac>
+
+ <mfrac>
+ <mroot>
+ <mo>D</mo>
+ <mo>C</mo>
+ </mroot>
+ <mo>D</mo>
+ </mfrac>
+
+ <mover>
+ <mo>D</mo>
+ <mover>
+ <mo>B</mo>
+ <mo>C</mo>
+ </mover>
+ </mover>
+
+ <munder>
+ <mo>D</mo>
+ <munder>
+ <mo>B</mo>
+ <mo>C</mo>
+ </munder>
+ </munder>
+
+ <munderover>
+ <mo>D</mo>
+ <munderover>
+ <mo>B</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </munderover>
+ <munderover>
+ <mo>B</mo>
+ <mo>C</mo>
+ <mo>C</mo>
+ </munderover>
+ </munderover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <!-- scriptlevel is not incremented when accent for overframes and
+ accentunder for underframes are true, so there shouldn't be a
+ change in the ssty value -->
+ <mstyle style="font-family: 'sstyfont';">
+ <mover accent="true">
+ <mo>D</mo>
+ <mover accent="true">
+ <mo>D</mo>
+ <mo>D</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="true">
+ <mo>D</mo>
+ <munder accentunder="true">
+ <mo>D</mo>
+ <mo>D</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="true" accent="true">
+ <mo>D</mo>
+ <munderover accentunder="true" accent="true">
+ <mo>D</mo>
+ <mo>D</mo>
+ <mo>D</mo>
+ </munderover>
+ <munderover accentunder="true" accent="true">
+ <mo>D</mo>
+ <mo>D</mo>
+ <mo>D</mo>
+ </munderover>
+ </munderover>
+
+ <mover accent="true">
+ <mo>D</mo>
+ <mover accent="false">
+ <mo>D</mo>
+ <mo>B</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="true">
+ <mo>D</mo>
+ <munder accentunder="false">
+ <mo>D</mo>
+ <mo>B</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="true" accent="true">
+ <mo>D</mo>
+ <munderover accentunder="false" accent="false">
+ <mo>D</mo>
+ <mo>B</mo>
+ <mo>B</mo>
+ </munderover>
+ <munderover accentunder="false" accent="false">
+ <mo>D</mo>
+ <mo>B</mo>
+ <mo>B</mo>
+ </munderover>
+ </munderover>
+
+ <mover accentunder="false" accent="false">
+ <mo>D</mo>
+ <mover accentunder="true" accent="true">
+ <mo>B</mo>
+ <mo>B</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="false" accent="false">
+ <mo>D</mo>
+ <munder accentunder="true" accent="true">
+ <mo>B</mo>
+ <mo>B</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="false" accent="false">
+ <mo>D</mo>
+ <munderover accentunder="true" accent="true">
+ <mo>B</mo>
+ <mo>B</mo>
+ <mo>B</mo>
+ </munderover>
+ <munderover accentunder="true" accent="true">
+ <mo>B</mo>
+ <mo>B</mo>
+ <mo>B</mo>
+ </munderover>
+ </munderover>
+
+ <munderover accentunder="false" accent="true">
+ <mo>D</mo>
+ <munderover accentunder="false" accent="true">
+ <mo>B</mo>
+ <mo>C</mo>
+ <mo>B</mo>
+ </munderover>
+ <munderover accentunder="false" accent="true">
+ <mo>D</mo>
+ <mo>B</mo>
+ <mo>D</mo>
+ </munderover>
+ </munderover>
+
+ <munderover accentunder="true" accent="false">
+ <mo>D</mo>
+ <munderover accentunder="true" accent="false">
+ <mo>D</mo>
+ <mo>D</mo>
+ <mo>B</mo>
+ </munderover>
+ <munderover accentunder="true" accent="false">
+ <mo>B</mo>
+ <mo>B</mo>
+ <mo>C</mo>
+ </munderover>
+ </munderover>
+
+ </mstyle>
+ </math>
+
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2.html b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2.html
new file mode 100644
index 0000000000..c4ffe1bd8b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/ssty-2.html
@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<head>
+ <link rel="match" href="ssty-2-ref.html"/>
+ <!-- See ssty-1-ref.html for an explanation of this font -->
+ <style type="text/css" media="screen, print">
+ @font-face {
+ font-family: "sstyfont";
+ src: url("ssty.woff");
+ }
+ </style>
+</head>
+<body>
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+ <mroot>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mroot>
+
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+
+ <mfrac>
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+ </mfrac>
+
+ <mfrac>
+ <mroot>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mroot>
+ <mo>A</mo>
+ </mfrac>
+
+ <mover>
+ <mo>A</mo>
+ <mover>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mover>
+ </mover>
+
+ <munder>
+ <mo>A</mo>
+ <munder>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munder>
+ </munder>
+
+ <munderover>
+ <mo>A</mo>
+ <munderover>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'sstyfont';" displaystyle="true">
+ <mroot>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mroot>
+
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+
+ <mfrac>
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+ <mfrac>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mfrac>
+ </mfrac>
+
+ <mfrac>
+ <mroot>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mroot>
+ <mo>A</mo>
+ </mfrac>
+
+ <mover>
+ <mo>A</mo>
+ <mover>
+ <mo>A</mo>
+ <mo>A</mo>
+ </mover>
+ </mover>
+
+ <munder>
+ <mo>A</mo>
+ <munder>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munder>
+ </munder>
+
+ <munderover>
+ <mo>A</mo>
+ <munderover>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover>
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle style="font-family: 'sstyfont';">
+
+ <mover accent="true">
+ <mo>A</mo>
+ <mover accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="true">
+ <mo>A</mo>
+ <munder accentunder="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ <mover accentunder="true" accent="true">
+ <mo>A</mo>
+ <mover accentunder="false" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="true" accent="true">
+ <mo>A</mo>
+ <munder accentunder="false" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <munderover accentunder="false" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover accentunder="false" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ <mover accent="false">
+ <mo>A</mo>
+ <mover accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ </mover>
+ </mover>
+
+ <munder accentunder="false">
+ <mo>A</mo>
+ <munder accentunder="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ </munder>
+ </munder>
+
+ <munderover accentunder="false" accent="false">
+ <mo>A</mo>
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover accentunder="true" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ <munderover accentunder="false" accent="true">
+ <mo>A</mo>
+ <munderover accentunder="false" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover accentunder="false" accent="true">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ <munderover accentunder="true" accent="false">
+ <mo>A</mo>
+ <munderover accentunder="true" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ <munderover accentunder="true" accent="false">
+ <mo>A</mo>
+ <mo>A</mo>
+ <mo>A</mo>
+ </munderover>
+ </munderover>
+
+ </mstyle>
+ </math>
+
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/ssty.woff b/testing/web-platform/mozilla/tests/mathml/fonts/ssty.woff
new file mode 100644
index 0000000000..19312c713d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/ssty.woff
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/fonts/stretchy.otf b/testing/web-platform/mozilla/tests/mathml/fonts/stretchy.otf
new file mode 100644
index 0000000000..f192de3463
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/fonts/stretchy.otf
Binary files differ
diff --git a/testing/web-platform/mozilla/tests/mathml/mathml-console-messages.html b/testing/web-platform/mozilla/tests/mathml/mathml-console-messages.html
new file mode 100644
index 0000000000..183d11feaa
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathml-console-messages.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Test MathML console messages</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=553917"/>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=827713"/>
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1845461"/>
+<body>
+ <script>
+ const MessageLevel = {
+ ERROR: 0,
+ WARNING: 1,
+ };
+
+ function retrieveConsoleMessagesFor(markup) {
+ return new Promise(resolve => {
+ const iframe = document.createElement('iframe');
+ iframe.srcdoc = `<!DOCTYPE html>
+<script>let messages = [];
+ SpecialPowers.registerConsoleListener(msg => {
+ if (msg.message == "SENTINEL") {
+ window.parent.postMessage(messages);
+ } else if (msg.isScriptError) {
+ messages.push(msg);
+ }
+ });
+ window.addEventListener("load", () => SpecialPowers.postConsoleSentinel());
+<\/script>
+<body>${markup}</body>`;
+ window.addEventListener("message", event => {
+ iframe.remove();
+ resolve(event.data);
+ }, {once: true});
+ document.body.appendChild(iframe);
+ });
+ }
+
+ function testMessageForMarkup(markup, regexp, level) {
+ promise_test(async function() {
+ let messages = await retrieveConsoleMessagesFor(markup);
+
+ // Sometimes MathML messages are logged several times, so just
+ // ensure there is at least one.
+ assert_greater_than_equal(messages.length, 1);
+
+ // Compare against the regexp.
+ assert_regexp_match(messages[0].errorMessage, regexp);
+
+ // Check whether this is a warning or an error.
+ assert_equals(messages[0].isWarning, level == MessageLevel.WARNING);
+ }, `Message for ${markup}`);
+ }
+
+ function testNoMessageForMarkup(markup) {
+ promise_test(async function() {
+ let messages = await retrieveConsoleMessagesFor(markup);
+ assert_equals(messages.length, 0);
+ }, `No message for ${markup}`);
+ }
+
+ // ChildCountIncorrect
+ [
+ "mroot",
+ "msub",
+ "msup",
+ "mfrac",
+ "msubsup",
+ "munderover",
+ ].forEach(tag => {
+ testMessageForMarkup(
+ `<math><${tag}></${tag}></math>`,
+ new RegExp(`Incorrect number of children for <${tag}/>`),
+ MessageLevel.ERROR);
+ });
+
+ // AttributeParsingError
+ [
+ "width",
+ "height",
+ "voffset",
+ ].forEach(attribute => {
+ testMessageForMarkup(
+ `<math><mpadded ${attribute}="BAD!"></mpadded></math>`,
+ new RegExp(`Error in parsing the value ‘BAD!’ for ‘${attribute}’ attribute`),
+ MessageLevel.ERROR);
+ });
+
+ // LengthParsingError
+ [
+ '<math><mo rspace="2..0px">+</mo></math>',
+ '<math><mo minsize="1.5notaunit">+</mo></math>',
+ '<math><mspace width="2"/></math>',
+ '<math><mo lspace="BADlspace">+</mo></math>',
+ '<math><mspace height="BADheight"/></math>',
+ '<math><mspace depth="BADdepth"/></math>',
+ '<math><mfrac linethickness="thin"><mn>1</mn><mn>2</mn></mfrac></math>',
+ '<math><mfrac linethickness="medium"><mn>1</mn><mn>2</mn></mfrac></math>',
+ '<math><mfrac linethickness="thick"><mn>1</mn><mn>2</mn></mfrac></math>',
+ '<math><mstyle mathsize="small"></mstyle></math>',
+ '<math><mstyle mathsize="normal"></mstyle></math>',
+ '<math><mstyle mathsize="big"></mstyle></math>',
+ '<math><mspace width="12345."/></math>',
+ '<math><mo minsize="17">+</mo></math>',
+ ].forEach(markup => {
+ const value = /="([a-zA-Z0-9.]+)"/.exec(markup)[1];
+ testMessageForMarkup(
+ markup,
+ new RegExp(`Error in parsing MathML attribute value ‘${value}’`),
+ MessageLevel.ERROR);
+ });
+
+ // MathML_DeprecatedMathSpaceValueWarning
+ [
+ '<math><mspace width="mediummathspace"></mspace></math>',
+ '<math><mspace width="negativemediummathspace"></mspace></math>',
+ '<math><mspace width="negativethickmathspace"></mspace></math>',
+ '<math><mspace width="negativethinmathspace"></mspace></math>',
+ '<math><mspace width="negativeverythickmathspace"></mspace></math>',
+ '<math><mspace width="negativeverythinmathspace"></mspace></math>',
+ '<math><mspace width="negativeveryverythickmathspace"></mspace></math>',
+ '<math><mspace width="negativeveryverythinmathspace"></mspace></math>',
+ '<math><mspace width="thickmathspace"></mspace></math>',
+ '<math><mspace width="thinmathspace"></mspace></math>',
+ '<math><mspace width="verythickmathspace"></mspace></math>',
+ '<math><mspace width="verythinmathspace"></mspace></math>',
+ '<math><mspace width="veryverythickmathspace"></mspace></math>',
+ '<math><mspace width="veryverythinmathspace"></mspace></math>',
+ ].forEach(markup => {
+ const value = /="([a-zA-Z0-9.]+)"/.exec(markup)[1];
+ testMessageForMarkup(
+ markup,
+ new RegExp(`MathML length value “${value}” is deprecated`),
+ MessageLevel.WARNING);
+ });
+
+ // InvalidChild
+ [
+ `<math>
+ <msubsup>
+ <mprescripts/>
+ </msubsup>
+ </math>`,
+ `<math>
+ <msubsup>
+ <mprescripts/>
+ <mprescripts/>
+ </msubsup>
+ </math>`,
+ `<math>
+ <msub>
+ <mtext>a</mtext>
+ <mprescripts/>
+ <mtext>a</mtext>
+ <mprescripts/>
+ </msub>
+ </math>`,
+ '<math><msub><mn>0</mn><mprescripts/></msub></math>',
+ '<math><msup><mn>0</mn><mprescripts/></msup></math>',
+ '<math><msubsup><mn>0</mn><mn>1</mn><mprescripts/></msubsup></math>',
+ ].forEach(markup => {
+ const tag = /<math>\s*<([a-z]+)>/.exec(markup)[1];
+ testMessageForMarkup(
+ markup,
+ new RegExp(`<mprescripts> is not allowed as a child of <${tag}>`),
+ MessageLevel.ERROR);
+ });
+
+ // NoBase
+ testMessageForMarkup(
+ `<math><mmultiscripts></mmultiscripts></math>`,
+ /Expected exactly one Base element/,
+ MessageLevel.ERROR
+ );
+
+ // AttributeParsingErrorNoTag
+ testMessageForMarkup(
+ `<math scriptlevel="BAD!"></math>`,
+ /Error in parsing the value ‘BAD!’ for ‘scriptlevel’ attribute/,
+ MessageLevel.ERROR
+ );
+
+ // DuplicateMprescripts
+ testMessageForMarkup(
+ `<math>
+ <mmultiscripts>
+ <mprescripts/>
+ <mprescripts/>
+ </mmultiscripts>
+ </math>`,
+ /More than one <mprescripts\/>/,
+ MessageLevel.ERROR);
+
+ // SubSupMismatch
+ [
+ `<math>
+ <mmultiscripts>
+ <mi>x</mi>
+ <mi>y</mi>
+ </mmultiscripts>
+ </math>`,
+ `<math>
+ <mmultiscripts>
+ <mtext>b</mtext>
+ <mtext>c</mtext>
+ <mprescripts/>
+ <mtext>a</mtext>
+ </mmultiscripts>
+ </math>`,
+ ].forEach(markup => {
+ testMessageForMarkup(
+ markup,
+ /Incomplete subscript\/superscript pair/,
+ MessageLevel.ERROR);
+ });
+
+
+ // MathML_DeprecatedMathVariantWarning
+ testNoMessageForMarkup('<math><mi mathvariant="normal">A</mi></math>');
+ [
+ "bold",
+ "italic",
+ "bold-italic",
+ "script",
+ "bold-script",
+ "fraktur",
+ "double-struck",
+ "bold-fraktur",
+ "sans-serif",
+ "bold-sans-serif",
+ "sans-serif-italic",
+ "sans-serif-bold-italic",
+ "monospace",
+ "initial",
+ "tailed",
+ "looped",
+ "stretched"
+ ].forEach((value) => {
+ testMessageForMarkup(
+ `<math><mi mathvariant="${value}">A</mi></math>`,
+ new RegExp(`mathvariant='${value}'” .* deprecated`),
+ MessageLevel.WARNING);
+ });
+ </script>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathml-type-supported-ref.xml b/testing/web-platform/mozilla/tests/mathml/mathml-type-supported-ref.xml
new file mode 100644
index 0000000000..1a471a2c6e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathml-type-supported-ref.xml
@@ -0,0 +1,4 @@
+<math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mspace style="position: absolute; top: 0; left: 0; background: green;"
+ width="100px" height="100px" depth="0"/>
+</math>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathml-type-supported.xhtml b/testing/web-platform/mozilla/tests/mathml/mathml-type-supported.xhtml
new file mode 100644
index 0000000000..50a7dd2130
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathml-type-supported.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Test mime type application/mathml+xml</title>
+ <link rel="match" href="mathml-type-supported-ref.xml"/>
+ <link rel="help" href="https://github.com/w3c/mathml-core/issues/204"/>
+</head>
+<body>
+ <object type="application/mathml+xml" data="mathml-type-supported-ref.xml"
+ style="position: absolute; top: 0; left: 0; background: red;
+ width: 100px; height: 100px;"/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace-ref.html b/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace-ref.html
new file mode 100644
index 0000000000..235ef69a18
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace-ref.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head></head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.0555555556em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.111111111em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.166666667em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.222222222em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.277777778em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.333333333em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="-0.388888889em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace.html b/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace.html
new file mode 100644
index 0000000000..3ab0812a4e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathspace_names/negative-namedspace.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="match" href="negative-namedspace-ref.html"/>
+ </head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativeveryverythinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativeverythinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativethinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativemediummathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativethickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativeverythickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="negativeveryverythickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace-ref.html b/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace-ref.html
new file mode 100644
index 0000000000..00c89f0c85
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace-ref.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head></head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.0555555556em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.111111111em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.166666667em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.222222222em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.277777778em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.333333333em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="0.388888889em"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace.html b/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace.html
new file mode 100644
index 0000000000..08b45eadef
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathspace_names/positive-namedspace.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="match" href="positive-namedspace-ref.html"/>
+ </head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="veryverythinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="verythinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="thinmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="mediummathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="thickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="verythickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mi>x</mi> <mspace width="veryverythickmathspace"></mspace> <mi>y</mi>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a-ref.html
new file mode 100644
index 0000000000..b70be9312f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a-ref.html
@@ -0,0 +1,233 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext>ABCDEFGHIJKLMNOPQRSTUVWXYZ</mtext>
+ <mtext>abcdefghijklmnopqrstuvwxyz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d400;&#x1d401;&#x1d402;&#x1d403;&#x1d404;&#x1d405;
+ &#x1d406;&#x1d407;&#x1d408;&#x1d409;&#x1d40a;&#x1d40b;
+ &#x1d40c;&#x1d40d;&#x1d40e;&#x1d40f;&#x1d410;&#x1d411;
+ &#x1d412;&#x1d413;&#x1d414;&#x1d415;&#x1d416;&#x1d417;
+ &#x1d418;&#x1d419;
+ &#x1d41a;&#x1d41b;&#x1d41c;&#x1d41d;&#x1d41e;&#x1d41f;
+ &#x1d420;&#x1d421;&#x1d422;&#x1d423;&#x1d424;&#x1d425;
+ &#x1d426;&#x1d427;&#x1d428;&#x1d429;&#x1d42a;&#x1d42b;
+ &#x1d42c;&#x1d42d;&#x1d42e;&#x1d42f;&#x1d430;&#x1d431;
+ &#x1d432;&#x1d433;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d434;&#x1d435;&#x1d436;&#x1d437;&#x1d438;&#x1d439;
+ &#x1d43a;&#x1d43b;&#x1d43c;&#x1d43d;&#x1d43e;&#x1d43f;
+ &#x1d440;&#x1d441;&#x1d442;&#x1d443;&#x1d444;&#x1d445;
+ &#x1d446;&#x1d447;&#x1d448;&#x1d449;&#x1d44a;&#x1d44b;
+ &#x1d44c;&#x1d44d;
+ &#x1d44e;&#x1d44f;&#x1d450;&#x1d451;&#x1d452;&#x1d453;
+ &#x1d454;&#x210e;&#x1d456;&#x1d457;&#x1d458;&#x1d459;
+ &#x1d45a;&#x1d45b;&#x1d45c;&#x1d45d;&#x1d45e;&#x1d45f;
+ &#x1d460;&#x1d461;&#x1d462;&#x1d463;&#x1d464;&#x1d465;
+ &#x1d466;&#x1d467;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d468;&#x1d469;&#x1d46a;&#x1d46b;&#x1d46c;&#x1d46d;
+ &#x1d46e;&#x1d46f;&#x1d470;&#x1d471;&#x1d472;&#x1d473;
+ &#x1d474;&#x1d475;&#x1d476;&#x1d477;&#x1d478;&#x1d479;
+ &#x1d47a;&#x1d47b;&#x1d47c;&#x1d47d;&#x1d47e;&#x1d47f;
+ &#x1d480;&#x1d481;
+ &#x1d482;&#x1d483;&#x1d484;&#x1d485;&#x1d486;&#x1d487;
+ &#x1d488;&#x1d489;&#x1d48a;&#x1d48b;&#x1d48c;&#x1d48d;
+ &#x1d48e;&#x1d48f;&#x1d490;&#x1d491;&#x1d492;&#x1d493;
+ &#x1d494;&#x1d495;&#x1d496;&#x1d497;&#x1d498;&#x1d499;
+ &#x1d49a;&#x1d49b;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d49c;&#x212c;&#x1d49e;&#x1d49f;&#x2130;&#x2131;
+ &#x1d4a2;&#x210b;&#x2110;&#x1d4a5;&#x1d4a6;&#x2112;
+ &#x2133;&#x1d4a9;&#x1d4aa;&#x1d4ab;&#x1d4ac;&#x211b;
+ &#x1d4ae;&#x1d4af;&#x1d4b0;&#x1d4b1;&#x1d4b2;&#x1d4b3;
+ &#x1d4b4;&#x1d4b5;
+ &#x1d4b6;&#x1d4b7;&#x1d4b8;&#x1d4b9;&#x212f;&#x1d4bb;
+ &#x210a;&#x1d4bd;&#x1d4be;&#x1d4bf;&#x1d4c0;&#x1d4c1;
+ &#x1d4c2;&#x1d4c3;&#x2134;&#x1d4c5;&#x1d4c6;&#x1d4c7;
+ &#x1d4c8;&#x1d4c9;&#x1d4ca;&#x1d4cb;&#x1d4cc;&#x1d4cd;
+ &#x1d4ce;&#x1d4cf;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d4d0;&#x1d4d1;&#x1d4d2;&#x1d4d3;&#x1d4d4;&#x1d4d5;
+ &#x1d4d6;&#x1d4d7;&#x1d4d8;&#x1d4d9;&#x1d4da;&#x1d4db;
+ &#x1d4dc;&#x1d4dd;&#x1d4de;&#x1d4df;&#x1d4e0;&#x1d4e1;
+ &#x1d4e2;&#x1d4e3;&#x1d4e4;&#x1d4e5;&#x1d4e6;&#x1d4e7;
+ &#x1d4e8;&#x1d4e9;
+ &#x1d4ea;&#x1d4eb;&#x1d4ec;&#x1d4ed;&#x1d4ee;&#x1d4ef;
+ &#x1d4f0;&#x1d4f1;&#x1d4f2;&#x1d4f3;&#x1d4f4;&#x1d4f5;
+ &#x1d4f6;&#x1d4f7;&#x1d4f8;&#x1d4f9;&#x1d4fa;&#x1d4fb;
+ &#x1d4fc;&#x1d4fd;&#x1d4fe;&#x1d4ff;&#x1d500;&#x1d501;
+ &#x1d502;&#x1d503;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d504;&#x1d505;&#x212d;&#x1d507;&#x1d508;&#x1d509;
+ &#x1d50a;&#x210c;&#x2111;&#x1d50d;&#x1d50e;&#x1d50f;
+ &#x1d510;&#x1d511;&#x1d512;&#x1d513;&#x1d514;&#x211c;
+ &#x1d516;&#x1d517;&#x1d518;&#x1d519;&#x1d51a;&#x1d51b;
+ &#x1d51c;&#x2128;
+ &#x1d51e;&#x1d51f;&#x1d520;&#x1d521;&#x1d522;&#x1d523;
+ &#x1d524;&#x1d525;&#x1d526;&#x1d527;&#x1d528;&#x1d529;
+ &#x1d52a;&#x1d52b;&#x1d52c;&#x1d52d;&#x1d52e;&#x1d52f;
+ &#x1d530;&#x1d531;&#x1d532;&#x1d533;&#x1d534;&#x1d535;
+ &#x1d536;&#x1d537;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d538;&#x1d539;&#x2102;&#x1d53b;&#x1d53c;&#x1d53d;
+ &#x1d53e;&#x210d;&#x1d540;&#x1d541;&#x1d542;&#x1d543;
+ &#x1d544;&#x2115;&#x1d546;&#x2119;&#x211a;&#x211d;
+ &#x1d54a;&#x1d54b;&#x1d54c;&#x1d54d;&#x1d54e;&#x1d54f;
+ &#x1d550;&#x2124;
+ &#x1d552;&#x1d553;&#x1d554;&#x1d555;&#x1d556;&#x1d557;
+ &#x1d558;&#x1d559;&#x1d55a;&#x1d55b;&#x1d55c;&#x1d55d;
+ &#x1d55e;&#x1d55f;&#x1d560;&#x1d561;&#x1d562;&#x1d563;
+ &#x1d564;&#x1d565;&#x1d566;&#x1d567;&#x1d568;&#x1d569;
+ &#x1d56a;&#x1d56b;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d56c;&#x1d56d;&#x1d56e;&#x1d56f;&#x1d570;&#x1d571;
+ &#x1d572;&#x1d573;&#x1d574;&#x1d575;&#x1d576;&#x1d577;
+ &#x1d578;&#x1d579;&#x1d57a;&#x1d57b;&#x1d57c;&#x1d57d;
+ &#x1d57e;&#x1d57f;&#x1d580;&#x1d581;&#x1d582;&#x1d583;
+ &#x1d584;&#x1d585;
+ &#x1d586;&#x1d587;&#x1d588;&#x1d589;&#x1d58a;&#x1d58b;
+ &#x1d58c;&#x1d58d;&#x1d58e;&#x1d58f;&#x1d590;&#x1d591;
+ &#x1d592;&#x1d593;&#x1d594;&#x1d595;&#x1d596;&#x1d597;
+ &#x1d598;&#x1d599;&#x1d59a;&#x1d59b;&#x1d59c;&#x1d59d;
+ &#x1d59e;&#x1d59f;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d5a0;&#x1d5a1;&#x1d5a2;&#x1d5a3;&#x1d5a4;&#x1d5a5;
+ &#x1d5a6;&#x1d5a7;&#x1d5a8;&#x1d5a9;&#x1d5aa;&#x1d5ab;
+ &#x1d5ac;&#x1d5ad;&#x1d5ae;&#x1d5af;&#x1d5b0;&#x1d5b1;
+ &#x1d5b2;&#x1d5b3;&#x1d5b4;&#x1d5b5;&#x1d5b6;&#x1d5b7;
+ &#x1d5b8;&#x1d5b9;
+ &#x1d5ba;&#x1d5bb;&#x1d5bc;&#x1d5bd;&#x1d5be;&#x1d5bf;
+ &#x1d5c0;&#x1d5c1;&#x1d5c2;&#x1d5c3;&#x1d5c4;&#x1d5c5;
+ &#x1d5c6;&#x1d5c7;&#x1d5c8;&#x1d5c9;&#x1d5ca;&#x1d5cb;
+ &#x1d5cc;&#x1d5cd;&#x1d5ce;&#x1d5cf;&#x1d5d0;&#x1d5d1;
+ &#x1d5d2;&#x1d5d3;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d5d4;&#x1d5d5;&#x1d5d6;&#x1d5d7;&#x1d5d8;&#x1d5d9;
+ &#x1d5da;&#x1d5db;&#x1d5dc;&#x1d5dd;&#x1d5de;&#x1d5df;
+ &#x1d5e0;&#x1d5e1;&#x1d5e2;&#x1d5e3;&#x1d5e4;&#x1d5e5;
+ &#x1d5e6;&#x1d5e7;&#x1d5e8;&#x1d5e9;&#x1d5ea;&#x1d5eb;
+ &#x1d5ec;&#x1d5ed;
+ &#x1d5ee;&#x1d5ef;&#x1d5f0;&#x1d5f1;&#x1d5f2;&#x1d5f3;
+ &#x1d5f4;&#x1d5f5;&#x1d5f6;&#x1d5f7;&#x1d5f8;&#x1d5f9;
+ &#x1d5fa;&#x1d5fb;&#x1d5fc;&#x1d5fd;&#x1d5fe;&#x1d5ff;
+ &#x1d600;&#x1d601;&#x1d602;&#x1d603;&#x1d604;&#x1d605;
+ &#x1d606;&#x1d607;</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d608;&#x1d609;&#x1d60a;&#x1d60b;&#x1d60c;&#x1d60d;
+ &#x1d60e;&#x1d60f;&#x1d610;&#x1d611;&#x1d612;&#x1d613;
+ &#x1d614;&#x1d615;&#x1d616;&#x1d617;&#x1d618;&#x1d619;
+ &#x1d61a;&#x1d61b;&#x1d61c;&#x1d61d;&#x1d61e;&#x1d61f;
+ &#x1d620;&#x1d621;
+ &#x1d622;&#x1d623;&#x1d624;&#x1d625;&#x1d626;&#x1d627;
+ &#x1d628;&#x1d629;&#x1d62a;&#x1d62b;&#x1d62c;&#x1d62d;
+ &#x1d62e;&#x1d62f;&#x1d630;&#x1d631;&#x1d632;&#x1d633;
+ &#x1d634;&#x1d635;&#x1d636;&#x1d637;&#x1d638;&#x1d639;
+ &#x1d63a;&#x1d63b;</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d63c;&#x1d63d;&#x1d63e;&#x1d63f;&#x1d640;&#x1d641;
+ &#x1d642;&#x1d643;&#x1d644;&#x1d645;&#x1d646;&#x1d647;
+ &#x1d648;&#x1d649;&#x1d64a;&#x1d64b;&#x1d64c;&#x1d64d;
+ &#x1d64e;&#x1d64f;&#x1d650;&#x1d651;&#x1d652;&#x1d653;
+ &#x1d654;&#x1d655;
+ &#x1d656;&#x1d657;&#x1d658;&#x1d659;&#x1d65a;&#x1d65b;
+ &#x1d65c;&#x1d65d;&#x1d65e;&#x1d65f;&#x1d660;&#x1d661;
+ &#x1d662;&#x1d663;&#x1d664;&#x1d665;&#x1d666;&#x1d667;
+ &#x1d668;&#x1d669;&#x1d66a;&#x1d66b;&#x1d66c;&#x1d66d;
+ &#x1d66e;&#x1d66f;</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d670;&#x1d671;&#x1d672;&#x1d673;&#x1d674;&#x1d675;
+ &#x1d676;&#x1d677;&#x1d678;&#x1d679;&#x1d67a;&#x1d67b;
+ &#x1d67c;&#x1d67d;&#x1d67e;&#x1d67f;&#x1d680;&#x1d681;
+ &#x1d682;&#x1d683;&#x1d684;&#x1d685;&#x1d686;&#x1d687;
+ &#x1d688;&#x1d689;
+ &#x1d68a;&#x1d68b;&#x1d68c;&#x1d68d;&#x1d68e;&#x1d68f;
+ &#x1d690;&#x1d691;&#x1d692;&#x1d693;&#x1d694;&#x1d695;
+ &#x1d696;&#x1d697;&#x1d698;&#x1d699;&#x1d69a;&#x1d69b;
+ &#x1d69c;&#x1d69d;&#x1d69e;&#x1d69f;&#x1d6a0;&#x1d6a1;
+ &#x1d6a2;&#x1d6a3;</mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a.html
new file mode 100644
index 0000000000..0cd85b9bc9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1a.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ <link rel="match" href="mathvariant-1a-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="normal">ABCDEFGHIJKLMNOPQRSTUVWXYZ</mtext>
+ <mtext mathvariant="normal">abcdefghijklmnopqrstuvwxyz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="italic">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-italic">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="script">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-script">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="fraktur">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="double-struck">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-fraktur">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-sans-serif">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-italic">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-bold-italic">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="monospace">
+ ABCDEF
+ GHIJKL
+ MNOPQR
+ STUVWX
+ YZ
+ abcdef
+ ghijkl
+ mnopqr
+ stuvwx
+ yz</mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b-ref.html
new file mode 100644
index 0000000000..6dd2f622a0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b-ref.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext>0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d7ce;&#x1d7cf;&#x1d7d0;&#x1d7d1;&#x1d7d2;&#x1d7d3;
+ &#x1d7d4;&#x1d7d5;&#x1d7d6;&#x1d7d7;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d7d8;&#x1d7d9;&#x1d7da;&#x1d7db;&#x1d7dc;&#x1d7dd;
+ &#x1d7de;&#x1d7df;&#x1d7e0;&#x1d7e1;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d7e2;&#x1d7e3;&#x1d7e4;&#x1d7e5;&#x1d7e6;&#x1d7e7;
+ &#x1d7e8;&#x1d7e9;&#x1d7ea;&#x1d7eb;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d7ec;&#x1d7ed;&#x1d7ee;&#x1d7ef;&#x1d7f0;&#x1d7f1;
+ &#x1d7f2;&#x1d7f3;&#x1d7f4;&#x1d7f5;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d7f6;&#x1d7f7;&#x1d7f8;&#x1d7f9;&#x1d7fa;&#x1d7fb;
+ &#x1d7fc;&#x1d7fd;&#x1d7fe;&#x1d7ff;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b.html
new file mode 100644
index 0000000000..c744469e42
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1b.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ <link rel="match" href="mathvariant-1b-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="normal">0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="italic">0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-italic">0123456789</mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="script">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-script">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="fraktur">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="double-struck">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-fraktur">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-sans-serif">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-italic">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-bold-italic">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="monospace">
+ 012345
+ 6789
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c-ref.html
new file mode 100644
index 0000000000..6a4f8cf1c4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c-ref.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d6a8;&#x1d6a9;&#x1d6aa;&#x1d6ab;&#x1d6ac;&#x1d6ad;
+ &#x1d6ae;&#x1d6af;&#x1d6b0;&#x1d6b1;&#x1d6b2;&#x1d6b3;
+ &#x1d6b4;&#x1d6b5;&#x1d6b6;&#x1d6b7;&#x1d6b8;&#x1d6b9;
+ &#x1d6ba;&#x1d6bb;&#x1d6bc;&#x1d6bd;&#x1d6be;&#x1d6bf;
+ &#x1d6c0;&#x1d6c1;&#x1d6c2;&#x1d6c3;&#x1d6c4;&#x1d6c5;
+ &#x1d6c6;&#x1d6c7;&#x1d6c8;&#x1d6c9;&#x1d6ca;&#x1d6cb;
+ &#x1d6cc;&#x1d6cd;&#x1d6ce;&#x1d6cf;&#x1d6d0;&#x1d6d1;
+ &#x1d6d2;&#x1d6d3;&#x1d6d4;&#x1d6d5;&#x1d6d6;&#x1d6d7;
+ &#x1d6d8;&#x1d6d9;&#x1d6da;&#x1d6db;&#x1d6dc;&#x1d6dd;
+ &#x1d6de;&#x1d6df;&#x1d6e0;&#x1d6e1;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d6e2;&#x1d6e3;&#x1d6e4;&#x1d6e5;&#x1d6e6;&#x1d6e7;
+ &#x1d6e8;&#x1d6e9;&#x1d6ea;&#x1d6eb;&#x1d6ec;&#x1d6ed;
+ &#x1d6ee;&#x1d6ef;&#x1d6f0;&#x1d6f1;&#x1d6f2;&#x1d6f3;
+ &#x1d6f4;&#x1d6f5;&#x1d6f6;&#x1d6f7;&#x1d6f8;&#x1d6f9;
+ &#x1d6fa;&#x1d6fb;&#x1d6fc;&#x1d6fd;&#x1d6fe;&#x1d6ff;
+ &#x1d700;&#x1d701;&#x1d702;&#x1d703;&#x1d704;&#x1d705;
+ &#x1d706;&#x1d707;&#x1d708;&#x1d709;&#x1d70a;&#x1d70b;
+ &#x1d70c;&#x1d70d;&#x1d70e;&#x1d70f;&#x1d710;&#x1d711;
+ &#x1d712;&#x1d713;&#x1d714;&#x1d715;&#x1d716;&#x1d717;
+ &#x1d718;&#x1d719;&#x1d71a;&#x1d71b;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d71c;&#x1d71d;&#x1d71e;&#x1d71f;&#x1d720;&#x1d721;
+ &#x1d722;&#x1d723;&#x1d724;&#x1d725;&#x1d726;&#x1d727;
+ &#x1d728;&#x1d729;&#x1d72a;&#x1d72b;&#x1d72c;&#x1d72d;
+ &#x1d72e;&#x1d72f;&#x1d730;&#x1d731;&#x1d732;&#x1d733;
+ &#x1d734;&#x1d735;&#x1d736;&#x1d737;&#x1d738;&#x1d739;
+ &#x1d73a;&#x1d73b;&#x1d73c;&#x1d73d;&#x1d73e;&#x1d73f;
+ &#x1d740;&#x1d741;&#x1d742;&#x1d743;&#x1d744;&#x1d745;
+ &#x1d746;&#x1d747;&#x1d748;&#x1d749;&#x1d74a;&#x1d74b;
+ &#x1d74c;&#x1d74d;&#x1d74e;&#x1d74f;&#x1d750;&#x1d751;
+ &#x1d752;&#x1d753;&#x1d754;&#x1d755;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d756;&#x1d757;&#x1d758;&#x1d759;&#x1d75a;&#x1d75b;
+ &#x1d75c;&#x1d75d;&#x1d75e;&#x1d75f;&#x1d760;&#x1d761;
+ &#x1d762;&#x1d763;&#x1d764;&#x1d765;&#x1d766;&#x1d767;
+ &#x1d768;&#x1d769;&#x1d76a;&#x1d76b;&#x1d76c;&#x1d76d;
+ &#x1d76e;&#x1d76f;&#x1d770;&#x1d771;&#x1d772;&#x1d773;
+ &#x1d774;&#x1d775;&#x1d776;&#x1d777;&#x1d778;&#x1d779;
+ &#x1d77a;&#x1d77b;&#x1d77c;&#x1d77d;&#x1d77e;&#x1d77f;
+ &#x1d780;&#x1d781;&#x1d782;&#x1d783;&#x1d784;&#x1d785;
+ &#x1d786;&#x1d787;&#x1d788;&#x1d789;&#x1d78a;&#x1d78b;
+ &#x1d78c;&#x1d78d;&#x1d78e;&#x1d78f;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1d790;&#x1d791;&#x1d792;&#x1d793;&#x1d794;&#x1d795;
+ &#x1d796;&#x1d797;&#x1d798;&#x1d799;&#x1d79a;&#x1d79b;
+ &#x1d79c;&#x1d79d;&#x1d79e;&#x1d79f;&#x1d7a0;&#x1d7a1;
+ &#x1d7a2;&#x1d7a3;&#x1d7a4;&#x1d7a5;&#x1d7a6;&#x1d7a7;
+ &#x1d7a8;&#x1d7a9;&#x1d7aa;&#x1d7ab;&#x1d7ac;&#x1d7ad;
+ &#x1d7ae;&#x1d7af;&#x1d7b0;&#x1d7b1;&#x1d7b2;&#x1d7b3;
+ &#x1d7b4;&#x1d7b5;&#x1d7b6;&#x1d7b7;&#x1d7b8;&#x1d7b9;
+ &#x1d7ba;&#x1d7bb;&#x1d7bc;&#x1d7bd;&#x1d7be;&#x1d7bf;
+ &#x1d7c0;&#x1d7c1;&#x1d7c2;&#x1d7c3;&#x1d7c4;&#x1d7c5;
+ &#x1d7c6;&#x1d7c7;&#x1d7c8;&#x1d7c9;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c.html
new file mode 100644
index 0000000000..9e99d9ba64
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1c.html
@@ -0,0 +1,248 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ <link rel="match" href="mathvariant-1c-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="normal">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="italic">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-italic">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="script">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-script">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="fraktur">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="double-struck">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-fraktur">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="bold-sans-serif">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-italic">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="sans-serif-bold-italic">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="monospace">
+ &#x0391;&#x0392;&#x0393;&#x0394;&#x0395;&#x0396;
+ &#x0397;&#x0398;&#x0399;&#x039a;&#x039b;&#x039c;
+ &#x039d;&#x039e;&#x039f;&#x03a0;&#x03a1;&#x03f4;
+ &#x03a3;&#x03a4;&#x03a5;&#x03a6;&#x03a7;&#x03a8;
+ &#x03a9;&#x2207;&#x03b1;&#x03b2;&#x03b3;&#x03b4;
+ &#x03b5;&#x03b6;&#x03b7;&#x03b8;&#x03b9;&#x03ba;
+ &#x03bb;&#x03bc;&#x03bd;&#x03be;&#x03bf;&#x03c0;
+ &#x03c1;&#x03c2;&#x03c3;&#x03c4;&#x03c5;&#x03c6;
+ &#x03c7;&#x03c8;&#x03c9;&#x2202;&#x03f5;&#x03d1;
+ &#x03f0;&#x03d5;&#x03f1;&#x03d6;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d-ref.html
new file mode 100644
index 0000000000..6a7226e255
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d-ref.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1EEA1;&#x1EEA2;&#x1EEA3;&#x1EEA5;&#x1EEA6;&#x1EEA7;
+ &#x1EEA8;&#x1EEA9;&#x1EEAB;&#x1EEAC;&#x1EEAD;&#x1EEAE;
+ &#x1EEAF;&#x1EEB0;&#x1EEB1;&#x1EEB2;&#x1EEB3;&#x1EEB4;
+ &#x1EEB5;&#x1EEB6;&#x1EEB7;&#x1EEB8;&#x1EEB9;&#x1EEBA;
+ &#x1EEBB
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1EE21;&#x1EE22;&#x1EE24;&#x1EE27;&#x1EE29;&#x1EE2A;
+ &#x1EE2B;&#x1EE2C;&#x1EE2D;&#x1EE2E;&#x1EE2F;&#x1EE30;
+ &#x1EE31;&#x1EE32;&#x1EE34;&#x1EE35;&#x1EE36;&#x1EE37;
+ &#x1EE39;&#x1EE3B;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1EE42;&#x1EE47;&#x1EE49;&#x1EE4B;&#x1EE4D;&#x1EE4E;
+ &#x1EE4F;&#x1EE51;&#x1EE52;&#x1EE54;&#x1EE57;&#x1EE59
+ &#x1EE5B;&#x1EE5D;&#x1EE5F;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1EE80;&#x1EE81;&#x1EE82;&#x1EE83;&#x1EE84;&#x1EE85;
+ &#x1EE86;&#x1EE87;&#x1EE88;&#x1EE89;&#x1EE8B;&#x1EE8C;
+ &#x1EE8D;&#x1EE8E;&#x1EE8F;&#x1EE90;&#x1EE91;&#x1EE92;
+ &#x1EE93;&#x1EE94;&#x1EE95;&#x1EE96;&#x1EE97;&#x1EE98;
+ &#x1EE99;&#x1EE9A;&#x1EE9B;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext>
+ &#x1EE61;&#x1EE62;&#x1EE64;&#x1EE67;&#x1EE68;&#x1EE69;
+ &#x1EE6A;&#x1EE6C;&#x1EE6D;&#x1EE6E;&#x1EE6F;&#x1EE70;
+ &#x1EE71;&#x1EE72;&#x1EE74;&#x1EE75;&#x1EE76;&#x1EE77;
+ &#x1EE79;&#x1EE7A;&#x1EE7B;&#x1EE7C;&#x1EE7E;
+ </mtext>
+ </mrow>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d.html
new file mode 100644
index 0000000000..5d1de1e87b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-1d.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+
+ <head>
+ <title>Test mathvariant character mappings</title>
+ <link rel="match" href="mathvariant-1d-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="double-struck">
+ &#x0628;&#x062C;&#x062F;&#x0648;&#x0632;&#x062D;
+ &#x0637;&#x064A;&#x0644;&#x0645;&#x0646;&#x0633;
+ &#x0639;&#x0641;&#x0635;&#x0642;&#x0631;&#x0634;
+ &#x062A;&#x062B;&#x062E;&#x0630;&#x0636;&#x0638;
+ &#x063A;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="initial">
+ &#x0628;&#x062C;&#x0647;&#x062D;&#x064A;&#x0643;
+ &#x0644;&#x0645;&#x0646;&#x0633;&#x0639;&#x0641;
+ &#x0635;&#x0642;&#x0634;&#x062A;&#x062B;&#x062E;
+ &#x0636;&#x063A;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="tailed">
+ &#x062C;&#x062D;&#x064A;&#x0644;&#x0646;&#x0633;
+ &#x0639;&#x0635;&#x0642;&#x0634;&#x062E;&#x0636;
+ &#x063A;&#x06BA;&#x066F;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="looped">
+ &#x0627;&#x0628;&#x062C;&#x062F;&#x0647;&#x0648;
+ &#x0632;&#x062D;&#x0637;&#x064A;&#x0644;&#x0645;
+ &#x0646;&#x0633;&#x0639;&#x0641;&#x0635;&#x0642;
+ &#x0631;&#x0634;&#x062A;&#x062B;&#x062E;&#x0630;
+ &#x0636;&#x0638;&#x063A;
+ </mtext>
+ </mrow>
+ </math>
+ <br>
+ <math>
+ <mrow>
+ <mtext mathvariant="stretched">
+ &#x0628;&#x062C;&#x0647;&#x062D;&#x0637;&#x064A;
+ &#x0643;&#x0645;&#x0646;&#x0633;&#x0639;&#x0641;
+ &#x0635;&#x0642;&#x0634;&#x062A;&#x062B;&#x062E;
+ &#x0636;&#x0638;&#x063A;&#x066E;&#x06A1;
+ </mtext>
+ </mrow>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2-ref.html
new file mode 100644
index 0000000000..6118ad058a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mathvariant exception mappings</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext>&#x1d6a4;&#x1d6a5;</mtext>
+ <mtext>&#x0131;&#x0237;</mtext>
+ <mtext>&#x1d7ca;&#x1d7cb;</mtext>
+ <mtext>&#x03DC;&#x03DD;</mtext>
+ </mrow>
+ </math>
+ <p>
+ <math>
+ <mrow>
+ <mi mathvariant="italic">&imath;</mi>
+ <mi mathvariant="italic">&jmath;</mi>
+ <mi mathvariant="normal">&imath;&imath;</mi>
+ <mi mathvariant="normal">&jmath;&jmath;</mi>
+ </mrow>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2.html
new file mode 100644
index 0000000000..3c2cc7b45a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mathvariant exception mappings</title>
+ <link rel="match" href="mathvariant-2-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="italic">&#x0131;&#x0237;</mtext>
+ <mtext mathvariant="bold">&#x0131;&#x0237;</mtext>
+ <mtext mathvariant="bold">&#x03DC;&#x03DD;</mtext>
+ <mtext mathvariant="italic">&#x03DC;&#x03DD;</mtext>
+ </mrow>
+ </math>
+ <p>
+ <math>
+ <mrow>
+ <mi>&imath;</mi>
+ <mi>&jmath;</mi>
+ <mi>&imath;&imath;</mi>
+ <mi>&jmath;&jmath;</mi>
+ </mrow>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4-ref.html
new file mode 100644
index 0000000000..9c51d61b67
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4-ref.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>More mathvariant tests</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <!-- mathvariant on characters that are already in the Mathematical
+ AlphanumericSymbols or are exceptions (should not have any
+ effect).-->
+ <mtext>&#x1d49c;</mtext>
+ <mtext>&#x212c;</mtext>
+ <!-- mathvariant on characters for which there is no equivalent mathvariant
+ form in Unicode (should not have any effect) -->
+ <mtext>&#x00e1;</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <!-- mathvariant on multi-char token elements (should apply to all the
+ characters) -->
+ <mtext>&#x1d670;&#x1d670;&#x1d670;</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <!-- mathvariant on mstyle (should apply to all token element descendants
+ like single-char mi, mtext etc) -->
+ <mtext mathvariant="sans-serif">cos</mtext>
+ <mo>&#x2061;</mo>
+ <mi mathvariant="sans-serif">x</mi>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <!-- mathvariant on math (should apply to all token element descendants
+ like single-char mi, mtext etc) -->
+ <mtext mathvariant="sans-serif">cos</mtext>
+ <mo>&#x2061;</mo>
+ <mi mathvariant="sans-serif">x</mi>
+ </mrow>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4.html
new file mode 100644
index 0000000000..ca66e87f4a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-4.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>More mathvariant tests</title>
+ <link rel="match" href="mathvariant-4-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mtext mathvariant="fraktur">&#x1d49c;</mtext>
+ <mtext mathvariant="fraktur">&#x212c;</mtext>
+ <mtext mathvariant="fraktur">&#x00e1;</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <mtext mathvariant="monospace">AAA</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mstyle mathvariant="sans-serif">
+ <mrow>
+ <mtext>cos</mtext>
+ <mo>&#x2061;</mo>
+ <mi>x</mi>
+ </mrow>
+ </mstyle>
+ </math>
+
+ <p>
+
+ <math mathvariant="sans-serif">
+ <mrow>
+ <mtext>cos</mtext>
+ <mo>&#x2061;</mo>
+ <mi>x</mi>
+ </mrow>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5-ref.html
new file mode 100644
index 0000000000..1854ce4b13
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic mathvariant tests</title>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mi id="Mi0" mathvariant="script">A</mi>
+ <mi id="Mi1">BB</mi>
+ <mi id="Mi2">B</mi>
+ <mi id="Mi3">A</mi>
+ <mi id="Mi4" mathvariant="script">A</mi>
+ <mtext id="Mtext0">A</mtext>
+ <mtext id="Mtext2" mathvariant="script">A</mtext>
+ <mtext id="Mtext4" mathvariant="script">A</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <mstyle id="Mstyle0" mathvariant="fraktur">
+ <mtext>Hello</mtext>
+ </mstyle>
+ <mstyle id="Mstyle1" mathvariant="monospace">
+ <mtext>Hello</mtext>
+ </mstyle>
+ <mstyle id="Mstyle2">
+ <mtext>Hello</mtext>
+ </mstyle>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math id="Math0" mathvariant="fraktur">
+ <mtext>Hello</mtext>
+ </math>
+ <math id="Math1" mathvariant="monospace">
+ <mtext>Hello</mtext>
+ </math>
+ <math id="Math2">
+ <mtext>Hello</mtext>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5.html
new file mode 100644
index 0000000000..f135fbe7a7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-5.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic mathvariant tests</title>
+ <link rel="match" href="mathvariant-5-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mrow>
+ <mi id="Mi0">A</mi>
+ <mi id="Mi1">A</mi>
+ <mi id="Mi2">AA</mi>
+ <mi id="Mi3" mathvariant="fraktur">A</mi>
+ <mi id="Mi4" mathvariant="monospace">A</mi>
+ <mtext id="Mtext0" mathvariant="monospace">A</mtext>
+ <mtext id="Mtext2" mathvariant="monospace">A</mtext>
+ <mtext id="Mtext4">A</mtext>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math>
+ <mrow>
+ <mstyle id="Mstyle0">
+ <mtext>Hello</mtext>
+ </mstyle>
+ <mstyle id="Mstyle1" mathvariant="bold-fraktur">
+ <mtext>Hello</mtext>
+ </mstyle>
+ <mstyle id="Mstyle2" mathvariant="bold">
+ <mtext>Hello</mtext>
+ </mstyle>
+ </mrow>
+ </math>
+
+ <p>
+
+ <math id="Math0">
+ <mtext>Hello</mtext>
+ </math>
+ <math id="Math1" mathvariant="fraktur">
+ <mtext>Hello</mtext>
+ </math>
+ <math id="Math2" mathvariant="bold">
+ <mtext>Hello</mtext>
+ </math>
+ <script>
+ function doTest()
+ {
+ document.getElementById("Mi0").setAttribute("mathvariant", "script");
+ document.getElementById("Mi1").innerHTML = "BB";
+ document.getElementById("Mi2").innerHTML = "B";
+ document.getElementById("Mi3").removeAttribute("mathvariant");
+ document.getElementById("Mi4").setAttribute("mathvariant", "script");
+ document.getElementById("Mtext0").removeAttribute("mathvariant");
+ document.getElementById("Mtext2").setAttribute("mathvariant", "script");
+ document.getElementById("Mtext4").setAttribute("mathvariant", "script");
+ document.getElementById("Mstyle0").setAttribute("mathvariant", "fraktur");
+ document.getElementById("Mstyle1").setAttribute("mathvariant", "monospace");
+ document.getElementById("Mstyle2").removeAttribute("mathvariant");
+ document.getElementById("Math0").setAttribute("mathvariant", "fraktur");
+ document.getElementById("Math1").setAttribute("mathvariant", "monospace");
+ document.getElementById("Math2").removeAttribute("mathvariant");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font-ref.html
new file mode 100644
index 0000000000..6ebfd75c2f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Basic mathvariant transforms with the default font (reference)</title>
+ </head>
+ <body>
+ <p>Test passes if you see three lines of text rendered with corresponding
+ italic, bold, bold-italic characters from the
+ Mathematical Alphanumeric Symbols block:</p>
+ <p><math><mtext>𝐼𝑡𝑎𝑙𝑖𝑐</mtext></math></p>
+ <p><math><mtext>𝐁𝐨𝐥𝐝</mtext></math></p>
+ <p><math><mtext>𝑩𝒐𝒍𝒅𝑰𝒕𝒂𝒍𝒊𝒄</mtext></math></p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font.html
new file mode 100644
index 0000000000..24c868c495
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-basic-transforms-with-default-font.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Basic mathvariant transforms with the default font</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+ <link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1789083">
+ <link rel="match" href="mathvariant-basic-transforms-with-default-font-ref.html"/>
+ <meta name="assert" content="Verify that the default font provides Mathematical Alphanumeric Symbols to perform basic mathvariant transforms (italic, bold, bold-italic), without requiring some kind of style fallback.">
+ </head>
+ <body>
+ <p>Test passes if you see three lines of text rendered with corresponding
+ italic, bold, bold-italic characters from the
+ Mathematical Alphanumeric Symbols block:</p>
+ <p><math><mtext mathvariant="italic">Italic</mtext></math></p>
+ <p><math><mtext mathvariant="bold">Bold</mtext></math></p>
+ <p><math><mtext mathvariant="bold-italic">BoldItalic</mtext></math></p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur-ref.html
new file mode 100644
index 0000000000..44588948e7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-fraktur (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D56C;</mtext></math>=<span>1D56C</span></span>
+ <span><math class="testfont"><mtext>&#x1D56D;</mtext></math>=<span>1D56D</span></span>
+ <span><math class="testfont"><mtext>&#x1D56E;</mtext></math>=<span>1D56E</span></span>
+ <span><math class="testfont"><mtext>&#x1D56F;</mtext></math>=<span>1D56F</span></span>
+ <span><math class="testfont"><mtext>&#x1D570;</mtext></math>=<span>1D570</span></span>
+ <span><math class="testfont"><mtext>&#x1D571;</mtext></math>=<span>1D571</span></span>
+ <span><math class="testfont"><mtext>&#x1D572;</mtext></math>=<span>1D572</span></span>
+ <span><math class="testfont"><mtext>&#x1D573;</mtext></math>=<span>1D573</span></span>
+ <span><math class="testfont"><mtext>&#x1D574;</mtext></math>=<span>1D574</span></span>
+ <span><math class="testfont"><mtext>&#x1D575;</mtext></math>=<span>1D575</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D576;</mtext></math>=<span>1D576</span></span>
+ <span><math class="testfont"><mtext>&#x1D577;</mtext></math>=<span>1D577</span></span>
+ <span><math class="testfont"><mtext>&#x1D578;</mtext></math>=<span>1D578</span></span>
+ <span><math class="testfont"><mtext>&#x1D579;</mtext></math>=<span>1D579</span></span>
+ <span><math class="testfont"><mtext>&#x1D57A;</mtext></math>=<span>1D57A</span></span>
+ <span><math class="testfont"><mtext>&#x1D57B;</mtext></math>=<span>1D57B</span></span>
+ <span><math class="testfont"><mtext>&#x1D57C;</mtext></math>=<span>1D57C</span></span>
+ <span><math class="testfont"><mtext>&#x1D57D;</mtext></math>=<span>1D57D</span></span>
+ <span><math class="testfont"><mtext>&#x1D57E;</mtext></math>=<span>1D57E</span></span>
+ <span><math class="testfont"><mtext>&#x1D57F;</mtext></math>=<span>1D57F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D580;</mtext></math>=<span>1D580</span></span>
+ <span><math class="testfont"><mtext>&#x1D581;</mtext></math>=<span>1D581</span></span>
+ <span><math class="testfont"><mtext>&#x1D582;</mtext></math>=<span>1D582</span></span>
+ <span><math class="testfont"><mtext>&#x1D583;</mtext></math>=<span>1D583</span></span>
+ <span><math class="testfont"><mtext>&#x1D584;</mtext></math>=<span>1D584</span></span>
+ <span><math class="testfont"><mtext>&#x1D585;</mtext></math>=<span>1D585</span></span>
+ <span><math class="testfont"><mtext>&#x1D586;</mtext></math>=<span>1D586</span></span>
+ <span><math class="testfont"><mtext>&#x1D587;</mtext></math>=<span>1D587</span></span>
+ <span><math class="testfont"><mtext>&#x1D588;</mtext></math>=<span>1D588</span></span>
+ <span><math class="testfont"><mtext>&#x1D589;</mtext></math>=<span>1D589</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D58A;</mtext></math>=<span>1D58A</span></span>
+ <span><math class="testfont"><mtext>&#x1D58B;</mtext></math>=<span>1D58B</span></span>
+ <span><math class="testfont"><mtext>&#x1D58C;</mtext></math>=<span>1D58C</span></span>
+ <span><math class="testfont"><mtext>&#x1D58D;</mtext></math>=<span>1D58D</span></span>
+ <span><math class="testfont"><mtext>&#x1D58E;</mtext></math>=<span>1D58E</span></span>
+ <span><math class="testfont"><mtext>&#x1D58F;</mtext></math>=<span>1D58F</span></span>
+ <span><math class="testfont"><mtext>&#x1D590;</mtext></math>=<span>1D590</span></span>
+ <span><math class="testfont"><mtext>&#x1D591;</mtext></math>=<span>1D591</span></span>
+ <span><math class="testfont"><mtext>&#x1D592;</mtext></math>=<span>1D592</span></span>
+ <span><math class="testfont"><mtext>&#x1D593;</mtext></math>=<span>1D593</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D594;</mtext></math>=<span>1D594</span></span>
+ <span><math class="testfont"><mtext>&#x1D595;</mtext></math>=<span>1D595</span></span>
+ <span><math class="testfont"><mtext>&#x1D596;</mtext></math>=<span>1D596</span></span>
+ <span><math class="testfont"><mtext>&#x1D597;</mtext></math>=<span>1D597</span></span>
+ <span><math class="testfont"><mtext>&#x1D598;</mtext></math>=<span>1D598</span></span>
+ <span><math class="testfont"><mtext>&#x1D599;</mtext></math>=<span>1D599</span></span>
+ <span><math class="testfont"><mtext>&#x1D59A;</mtext></math>=<span>1D59A</span></span>
+ <span><math class="testfont"><mtext>&#x1D59B;</mtext></math>=<span>1D59B</span></span>
+ <span><math class="testfont"><mtext>&#x1D59C;</mtext></math>=<span>1D59C</span></span>
+ <span><math class="testfont"><mtext>&#x1D59D;</mtext></math>=<span>1D59D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D59E;</mtext></math>=<span>1D59E</span></span>
+ <span><math class="testfont"><mtext>&#x1D59F;</mtext></math>=<span>1D59F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur.html
new file mode 100644
index 0000000000..32d037603b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-fraktur.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-fraktur</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#bold-fraktur-mappings">
+<link rel="match" href="mathvariant-bold-fraktur-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a bold-fraktur mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x41;</mtext></math>=<span>1D56C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x42;</mtext></math>=<span>1D56D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x43;</mtext></math>=<span>1D56E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x44;</mtext></math>=<span>1D56F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x45;</mtext></math>=<span>1D570</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x46;</mtext></math>=<span>1D571</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x47;</mtext></math>=<span>1D572</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x48;</mtext></math>=<span>1D573</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x49;</mtext></math>=<span>1D574</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4A;</mtext></math>=<span>1D575</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4B;</mtext></math>=<span>1D576</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4C;</mtext></math>=<span>1D577</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4D;</mtext></math>=<span>1D578</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4E;</mtext></math>=<span>1D579</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x4F;</mtext></math>=<span>1D57A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x50;</mtext></math>=<span>1D57B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x51;</mtext></math>=<span>1D57C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x52;</mtext></math>=<span>1D57D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x53;</mtext></math>=<span>1D57E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x54;</mtext></math>=<span>1D57F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x55;</mtext></math>=<span>1D580</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x56;</mtext></math>=<span>1D581</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x57;</mtext></math>=<span>1D582</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x58;</mtext></math>=<span>1D583</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x59;</mtext></math>=<span>1D584</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x5A;</mtext></math>=<span>1D585</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x61;</mtext></math>=<span>1D586</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x62;</mtext></math>=<span>1D587</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x63;</mtext></math>=<span>1D588</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x64;</mtext></math>=<span>1D589</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x65;</mtext></math>=<span>1D58A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x66;</mtext></math>=<span>1D58B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x67;</mtext></math>=<span>1D58C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x68;</mtext></math>=<span>1D58D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x69;</mtext></math>=<span>1D58E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6A;</mtext></math>=<span>1D58F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6B;</mtext></math>=<span>1D590</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6C;</mtext></math>=<span>1D591</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6D;</mtext></math>=<span>1D592</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6E;</mtext></math>=<span>1D593</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x6F;</mtext></math>=<span>1D594</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x70;</mtext></math>=<span>1D595</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x71;</mtext></math>=<span>1D596</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x72;</mtext></math>=<span>1D597</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x73;</mtext></math>=<span>1D598</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x74;</mtext></math>=<span>1D599</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x75;</mtext></math>=<span>1D59A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x76;</mtext></math>=<span>1D59B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x77;</mtext></math>=<span>1D59C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x78;</mtext></math>=<span>1D59D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x79;</mtext></math>=<span>1D59E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-fraktur">&#x7A;</mtext></math>=<span>1D59F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic-ref.html
new file mode 100644
index 0000000000..9a93a37e35
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic-ref.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D468;</mtext></math>=<span>1D468</span></span>
+ <span><math class="testfont"><mtext>&#x1D469;</mtext></math>=<span>1D469</span></span>
+ <span><math class="testfont"><mtext>&#x1D46A;</mtext></math>=<span>1D46A</span></span>
+ <span><math class="testfont"><mtext>&#x1D46B;</mtext></math>=<span>1D46B</span></span>
+ <span><math class="testfont"><mtext>&#x1D46C;</mtext></math>=<span>1D46C</span></span>
+ <span><math class="testfont"><mtext>&#x1D46D;</mtext></math>=<span>1D46D</span></span>
+ <span><math class="testfont"><mtext>&#x1D46E;</mtext></math>=<span>1D46E</span></span>
+ <span><math class="testfont"><mtext>&#x1D46F;</mtext></math>=<span>1D46F</span></span>
+ <span><math class="testfont"><mtext>&#x1D470;</mtext></math>=<span>1D470</span></span>
+ <span><math class="testfont"><mtext>&#x1D471;</mtext></math>=<span>1D471</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D472;</mtext></math>=<span>1D472</span></span>
+ <span><math class="testfont"><mtext>&#x1D473;</mtext></math>=<span>1D473</span></span>
+ <span><math class="testfont"><mtext>&#x1D474;</mtext></math>=<span>1D474</span></span>
+ <span><math class="testfont"><mtext>&#x1D475;</mtext></math>=<span>1D475</span></span>
+ <span><math class="testfont"><mtext>&#x1D476;</mtext></math>=<span>1D476</span></span>
+ <span><math class="testfont"><mtext>&#x1D477;</mtext></math>=<span>1D477</span></span>
+ <span><math class="testfont"><mtext>&#x1D478;</mtext></math>=<span>1D478</span></span>
+ <span><math class="testfont"><mtext>&#x1D479;</mtext></math>=<span>1D479</span></span>
+ <span><math class="testfont"><mtext>&#x1D47A;</mtext></math>=<span>1D47A</span></span>
+ <span><math class="testfont"><mtext>&#x1D47B;</mtext></math>=<span>1D47B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D47C;</mtext></math>=<span>1D47C</span></span>
+ <span><math class="testfont"><mtext>&#x1D47D;</mtext></math>=<span>1D47D</span></span>
+ <span><math class="testfont"><mtext>&#x1D47E;</mtext></math>=<span>1D47E</span></span>
+ <span><math class="testfont"><mtext>&#x1D47F;</mtext></math>=<span>1D47F</span></span>
+ <span><math class="testfont"><mtext>&#x1D480;</mtext></math>=<span>1D480</span></span>
+ <span><math class="testfont"><mtext>&#x1D481;</mtext></math>=<span>1D481</span></span>
+ <span><math class="testfont"><mtext>&#x1D482;</mtext></math>=<span>1D482</span></span>
+ <span><math class="testfont"><mtext>&#x1D483;</mtext></math>=<span>1D483</span></span>
+ <span><math class="testfont"><mtext>&#x1D484;</mtext></math>=<span>1D484</span></span>
+ <span><math class="testfont"><mtext>&#x1D485;</mtext></math>=<span>1D485</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D486;</mtext></math>=<span>1D486</span></span>
+ <span><math class="testfont"><mtext>&#x1D487;</mtext></math>=<span>1D487</span></span>
+ <span><math class="testfont"><mtext>&#x1D488;</mtext></math>=<span>1D488</span></span>
+ <span><math class="testfont"><mtext>&#x1D489;</mtext></math>=<span>1D489</span></span>
+ <span><math class="testfont"><mtext>&#x1D48A;</mtext></math>=<span>1D48A</span></span>
+ <span><math class="testfont"><mtext>&#x1D48B;</mtext></math>=<span>1D48B</span></span>
+ <span><math class="testfont"><mtext>&#x1D48C;</mtext></math>=<span>1D48C</span></span>
+ <span><math class="testfont"><mtext>&#x1D48D;</mtext></math>=<span>1D48D</span></span>
+ <span><math class="testfont"><mtext>&#x1D48E;</mtext></math>=<span>1D48E</span></span>
+ <span><math class="testfont"><mtext>&#x1D48F;</mtext></math>=<span>1D48F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D490;</mtext></math>=<span>1D490</span></span>
+ <span><math class="testfont"><mtext>&#x1D491;</mtext></math>=<span>1D491</span></span>
+ <span><math class="testfont"><mtext>&#x1D492;</mtext></math>=<span>1D492</span></span>
+ <span><math class="testfont"><mtext>&#x1D493;</mtext></math>=<span>1D493</span></span>
+ <span><math class="testfont"><mtext>&#x1D494;</mtext></math>=<span>1D494</span></span>
+ <span><math class="testfont"><mtext>&#x1D495;</mtext></math>=<span>1D495</span></span>
+ <span><math class="testfont"><mtext>&#x1D496;</mtext></math>=<span>1D496</span></span>
+ <span><math class="testfont"><mtext>&#x1D497;</mtext></math>=<span>1D497</span></span>
+ <span><math class="testfont"><mtext>&#x1D498;</mtext></math>=<span>1D498</span></span>
+ <span><math class="testfont"><mtext>&#x1D499;</mtext></math>=<span>1D499</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D49A;</mtext></math>=<span>1D49A</span></span>
+ <span><math class="testfont"><mtext>&#x1D49B;</mtext></math>=<span>1D49B</span></span>
+ <span><math class="testfont"><mtext>&#x1D71C;</mtext></math>=<span>1D71C</span></span>
+ <span><math class="testfont"><mtext>&#x1D71D;</mtext></math>=<span>1D71D</span></span>
+ <span><math class="testfont"><mtext>&#x1D71E;</mtext></math>=<span>1D71E</span></span>
+ <span><math class="testfont"><mtext>&#x1D71F;</mtext></math>=<span>1D71F</span></span>
+ <span><math class="testfont"><mtext>&#x1D720;</mtext></math>=<span>1D720</span></span>
+ <span><math class="testfont"><mtext>&#x1D721;</mtext></math>=<span>1D721</span></span>
+ <span><math class="testfont"><mtext>&#x1D722;</mtext></math>=<span>1D722</span></span>
+ <span><math class="testfont"><mtext>&#x1D723;</mtext></math>=<span>1D723</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D724;</mtext></math>=<span>1D724</span></span>
+ <span><math class="testfont"><mtext>&#x1D725;</mtext></math>=<span>1D725</span></span>
+ <span><math class="testfont"><mtext>&#x1D726;</mtext></math>=<span>1D726</span></span>
+ <span><math class="testfont"><mtext>&#x1D727;</mtext></math>=<span>1D727</span></span>
+ <span><math class="testfont"><mtext>&#x1D728;</mtext></math>=<span>1D728</span></span>
+ <span><math class="testfont"><mtext>&#x1D729;</mtext></math>=<span>1D729</span></span>
+ <span><math class="testfont"><mtext>&#x1D72A;</mtext></math>=<span>1D72A</span></span>
+ <span><math class="testfont"><mtext>&#x1D72B;</mtext></math>=<span>1D72B</span></span>
+ <span><math class="testfont"><mtext>&#x1D72C;</mtext></math>=<span>1D72C</span></span>
+ <span><math class="testfont"><mtext>&#x1D72D;</mtext></math>=<span>1D72D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D72E;</mtext></math>=<span>1D72E</span></span>
+ <span><math class="testfont"><mtext>&#x1D72F;</mtext></math>=<span>1D72F</span></span>
+ <span><math class="testfont"><mtext>&#x1D730;</mtext></math>=<span>1D730</span></span>
+ <span><math class="testfont"><mtext>&#x1D731;</mtext></math>=<span>1D731</span></span>
+ <span><math class="testfont"><mtext>&#x1D732;</mtext></math>=<span>1D732</span></span>
+ <span><math class="testfont"><mtext>&#x1D733;</mtext></math>=<span>1D733</span></span>
+ <span><math class="testfont"><mtext>&#x1D734;</mtext></math>=<span>1D734</span></span>
+ <span><math class="testfont"><mtext>&#x1D735;</mtext></math>=<span>1D735</span></span>
+ <span><math class="testfont"><mtext>&#x1D736;</mtext></math>=<span>1D736</span></span>
+ <span><math class="testfont"><mtext>&#x1D737;</mtext></math>=<span>1D737</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D738;</mtext></math>=<span>1D738</span></span>
+ <span><math class="testfont"><mtext>&#x1D739;</mtext></math>=<span>1D739</span></span>
+ <span><math class="testfont"><mtext>&#x1D73A;</mtext></math>=<span>1D73A</span></span>
+ <span><math class="testfont"><mtext>&#x1D73B;</mtext></math>=<span>1D73B</span></span>
+ <span><math class="testfont"><mtext>&#x1D73C;</mtext></math>=<span>1D73C</span></span>
+ <span><math class="testfont"><mtext>&#x1D73D;</mtext></math>=<span>1D73D</span></span>
+ <span><math class="testfont"><mtext>&#x1D73E;</mtext></math>=<span>1D73E</span></span>
+ <span><math class="testfont"><mtext>&#x1D73F;</mtext></math>=<span>1D73F</span></span>
+ <span><math class="testfont"><mtext>&#x1D740;</mtext></math>=<span>1D740</span></span>
+ <span><math class="testfont"><mtext>&#x1D741;</mtext></math>=<span>1D741</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D742;</mtext></math>=<span>1D742</span></span>
+ <span><math class="testfont"><mtext>&#x1D743;</mtext></math>=<span>1D743</span></span>
+ <span><math class="testfont"><mtext>&#x1D744;</mtext></math>=<span>1D744</span></span>
+ <span><math class="testfont"><mtext>&#x1D745;</mtext></math>=<span>1D745</span></span>
+ <span><math class="testfont"><mtext>&#x1D746;</mtext></math>=<span>1D746</span></span>
+ <span><math class="testfont"><mtext>&#x1D747;</mtext></math>=<span>1D747</span></span>
+ <span><math class="testfont"><mtext>&#x1D748;</mtext></math>=<span>1D748</span></span>
+ <span><math class="testfont"><mtext>&#x1D749;</mtext></math>=<span>1D749</span></span>
+ <span><math class="testfont"><mtext>&#x1D74A;</mtext></math>=<span>1D74A</span></span>
+ <span><math class="testfont"><mtext>&#x1D74B;</mtext></math>=<span>1D74B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D74C;</mtext></math>=<span>1D74C</span></span>
+ <span><math class="testfont"><mtext>&#x1D74D;</mtext></math>=<span>1D74D</span></span>
+ <span><math class="testfont"><mtext>&#x1D74E;</mtext></math>=<span>1D74E</span></span>
+ <span><math class="testfont"><mtext>&#x1D74F;</mtext></math>=<span>1D74F</span></span>
+ <span><math class="testfont"><mtext>&#x1D750;</mtext></math>=<span>1D750</span></span>
+ <span><math class="testfont"><mtext>&#x1D751;</mtext></math>=<span>1D751</span></span>
+ <span><math class="testfont"><mtext>&#x1D752;</mtext></math>=<span>1D752</span></span>
+ <span><math class="testfont"><mtext>&#x1D753;</mtext></math>=<span>1D753</span></span>
+ <span><math class="testfont"><mtext>&#x1D754;</mtext></math>=<span>1D754</span></span>
+ <span><math class="testfont"><mtext>&#x1D755;</mtext></math>=<span>1D755</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic.html
new file mode 100644
index 0000000000..725559a571
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-italic.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-italic</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#bold-italic-mappings">
+<link rel="match" href="mathvariant-bold-italic-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a bold-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x41;</mtext></math>=<span>1D468</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x42;</mtext></math>=<span>1D469</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x43;</mtext></math>=<span>1D46A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x44;</mtext></math>=<span>1D46B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x45;</mtext></math>=<span>1D46C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x46;</mtext></math>=<span>1D46D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x47;</mtext></math>=<span>1D46E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x48;</mtext></math>=<span>1D46F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x49;</mtext></math>=<span>1D470</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4A;</mtext></math>=<span>1D471</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4B;</mtext></math>=<span>1D472</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4C;</mtext></math>=<span>1D473</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4D;</mtext></math>=<span>1D474</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4E;</mtext></math>=<span>1D475</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x4F;</mtext></math>=<span>1D476</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x50;</mtext></math>=<span>1D477</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x51;</mtext></math>=<span>1D478</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x52;</mtext></math>=<span>1D479</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x53;</mtext></math>=<span>1D47A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x54;</mtext></math>=<span>1D47B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x55;</mtext></math>=<span>1D47C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x56;</mtext></math>=<span>1D47D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x57;</mtext></math>=<span>1D47E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x58;</mtext></math>=<span>1D47F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x59;</mtext></math>=<span>1D480</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x5A;</mtext></math>=<span>1D481</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x61;</mtext></math>=<span>1D482</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x62;</mtext></math>=<span>1D483</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x63;</mtext></math>=<span>1D484</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x64;</mtext></math>=<span>1D485</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x65;</mtext></math>=<span>1D486</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x66;</mtext></math>=<span>1D487</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x67;</mtext></math>=<span>1D488</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x68;</mtext></math>=<span>1D489</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x69;</mtext></math>=<span>1D48A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6A;</mtext></math>=<span>1D48B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6B;</mtext></math>=<span>1D48C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6C;</mtext></math>=<span>1D48D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6D;</mtext></math>=<span>1D48E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6E;</mtext></math>=<span>1D48F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x6F;</mtext></math>=<span>1D490</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x70;</mtext></math>=<span>1D491</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x71;</mtext></math>=<span>1D492</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x72;</mtext></math>=<span>1D493</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x73;</mtext></math>=<span>1D494</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x74;</mtext></math>=<span>1D495</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x75;</mtext></math>=<span>1D496</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x76;</mtext></math>=<span>1D497</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x77;</mtext></math>=<span>1D498</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x78;</mtext></math>=<span>1D499</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x79;</mtext></math>=<span>1D49A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x7A;</mtext></math>=<span>1D49B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x391;</mtext></math>=<span>1D71C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x392;</mtext></math>=<span>1D71D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x393;</mtext></math>=<span>1D71E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x394;</mtext></math>=<span>1D71F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x395;</mtext></math>=<span>1D720</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x396;</mtext></math>=<span>1D721</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x397;</mtext></math>=<span>1D722</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x398;</mtext></math>=<span>1D723</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x399;</mtext></math>=<span>1D724</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39A;</mtext></math>=<span>1D725</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39B;</mtext></math>=<span>1D726</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39C;</mtext></math>=<span>1D727</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39D;</mtext></math>=<span>1D728</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39E;</mtext></math>=<span>1D729</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x39F;</mtext></math>=<span>1D72A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A0;</mtext></math>=<span>1D72B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A1;</mtext></math>=<span>1D72C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3F4;</mtext></math>=<span>1D72D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A3;</mtext></math>=<span>1D72E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A4;</mtext></math>=<span>1D72F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A5;</mtext></math>=<span>1D730</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A6;</mtext></math>=<span>1D731</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A7;</mtext></math>=<span>1D732</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A8;</mtext></math>=<span>1D733</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3A9;</mtext></math>=<span>1D734</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x2207;</mtext></math>=<span>1D735</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B1;</mtext></math>=<span>1D736</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B2;</mtext></math>=<span>1D737</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B3;</mtext></math>=<span>1D738</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B4;</mtext></math>=<span>1D739</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B5;</mtext></math>=<span>1D73A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B6;</mtext></math>=<span>1D73B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B7;</mtext></math>=<span>1D73C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B8;</mtext></math>=<span>1D73D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3B9;</mtext></math>=<span>1D73E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BA;</mtext></math>=<span>1D73F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BB;</mtext></math>=<span>1D740</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BC;</mtext></math>=<span>1D741</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BD;</mtext></math>=<span>1D742</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BE;</mtext></math>=<span>1D743</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3BF;</mtext></math>=<span>1D744</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C0;</mtext></math>=<span>1D745</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C1;</mtext></math>=<span>1D746</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C2;</mtext></math>=<span>1D747</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C3;</mtext></math>=<span>1D748</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C4;</mtext></math>=<span>1D749</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C5;</mtext></math>=<span>1D74A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C6;</mtext></math>=<span>1D74B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C7;</mtext></math>=<span>1D74C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C8;</mtext></math>=<span>1D74D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3C9;</mtext></math>=<span>1D74E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x2202;</mtext></math>=<span>1D74F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3F5;</mtext></math>=<span>1D750</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3D1;</mtext></math>=<span>1D751</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3F0;</mtext></math>=<span>1D752</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3D5;</mtext></math>=<span>1D753</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3F1;</mtext></math>=<span>1D754</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-italic">&#x3D6;</mtext></math>=<span>1D755</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-ref.html
new file mode 100644
index 0000000000..ac24ab5b00
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-ref.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D400;</mtext></math>=<span>1D400</span></span>
+ <span><math class="testfont"><mtext>&#x1D401;</mtext></math>=<span>1D401</span></span>
+ <span><math class="testfont"><mtext>&#x1D402;</mtext></math>=<span>1D402</span></span>
+ <span><math class="testfont"><mtext>&#x1D403;</mtext></math>=<span>1D403</span></span>
+ <span><math class="testfont"><mtext>&#x1D404;</mtext></math>=<span>1D404</span></span>
+ <span><math class="testfont"><mtext>&#x1D405;</mtext></math>=<span>1D405</span></span>
+ <span><math class="testfont"><mtext>&#x1D406;</mtext></math>=<span>1D406</span></span>
+ <span><math class="testfont"><mtext>&#x1D407;</mtext></math>=<span>1D407</span></span>
+ <span><math class="testfont"><mtext>&#x1D408;</mtext></math>=<span>1D408</span></span>
+ <span><math class="testfont"><mtext>&#x1D409;</mtext></math>=<span>1D409</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D40A;</mtext></math>=<span>1D40A</span></span>
+ <span><math class="testfont"><mtext>&#x1D40B;</mtext></math>=<span>1D40B</span></span>
+ <span><math class="testfont"><mtext>&#x1D40C;</mtext></math>=<span>1D40C</span></span>
+ <span><math class="testfont"><mtext>&#x1D40D;</mtext></math>=<span>1D40D</span></span>
+ <span><math class="testfont"><mtext>&#x1D40E;</mtext></math>=<span>1D40E</span></span>
+ <span><math class="testfont"><mtext>&#x1D40F;</mtext></math>=<span>1D40F</span></span>
+ <span><math class="testfont"><mtext>&#x1D410;</mtext></math>=<span>1D410</span></span>
+ <span><math class="testfont"><mtext>&#x1D411;</mtext></math>=<span>1D411</span></span>
+ <span><math class="testfont"><mtext>&#x1D412;</mtext></math>=<span>1D412</span></span>
+ <span><math class="testfont"><mtext>&#x1D413;</mtext></math>=<span>1D413</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D414;</mtext></math>=<span>1D414</span></span>
+ <span><math class="testfont"><mtext>&#x1D415;</mtext></math>=<span>1D415</span></span>
+ <span><math class="testfont"><mtext>&#x1D416;</mtext></math>=<span>1D416</span></span>
+ <span><math class="testfont"><mtext>&#x1D417;</mtext></math>=<span>1D417</span></span>
+ <span><math class="testfont"><mtext>&#x1D418;</mtext></math>=<span>1D418</span></span>
+ <span><math class="testfont"><mtext>&#x1D419;</mtext></math>=<span>1D419</span></span>
+ <span><math class="testfont"><mtext>&#x1D41A;</mtext></math>=<span>1D41A</span></span>
+ <span><math class="testfont"><mtext>&#x1D41B;</mtext></math>=<span>1D41B</span></span>
+ <span><math class="testfont"><mtext>&#x1D41C;</mtext></math>=<span>1D41C</span></span>
+ <span><math class="testfont"><mtext>&#x1D41D;</mtext></math>=<span>1D41D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D41E;</mtext></math>=<span>1D41E</span></span>
+ <span><math class="testfont"><mtext>&#x1D41F;</mtext></math>=<span>1D41F</span></span>
+ <span><math class="testfont"><mtext>&#x1D420;</mtext></math>=<span>1D420</span></span>
+ <span><math class="testfont"><mtext>&#x1D421;</mtext></math>=<span>1D421</span></span>
+ <span><math class="testfont"><mtext>&#x1D422;</mtext></math>=<span>1D422</span></span>
+ <span><math class="testfont"><mtext>&#x1D423;</mtext></math>=<span>1D423</span></span>
+ <span><math class="testfont"><mtext>&#x1D424;</mtext></math>=<span>1D424</span></span>
+ <span><math class="testfont"><mtext>&#x1D425;</mtext></math>=<span>1D425</span></span>
+ <span><math class="testfont"><mtext>&#x1D426;</mtext></math>=<span>1D426</span></span>
+ <span><math class="testfont"><mtext>&#x1D427;</mtext></math>=<span>1D427</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D428;</mtext></math>=<span>1D428</span></span>
+ <span><math class="testfont"><mtext>&#x1D429;</mtext></math>=<span>1D429</span></span>
+ <span><math class="testfont"><mtext>&#x1D42A;</mtext></math>=<span>1D42A</span></span>
+ <span><math class="testfont"><mtext>&#x1D42B;</mtext></math>=<span>1D42B</span></span>
+ <span><math class="testfont"><mtext>&#x1D42C;</mtext></math>=<span>1D42C</span></span>
+ <span><math class="testfont"><mtext>&#x1D42D;</mtext></math>=<span>1D42D</span></span>
+ <span><math class="testfont"><mtext>&#x1D42E;</mtext></math>=<span>1D42E</span></span>
+ <span><math class="testfont"><mtext>&#x1D42F;</mtext></math>=<span>1D42F</span></span>
+ <span><math class="testfont"><mtext>&#x1D430;</mtext></math>=<span>1D430</span></span>
+ <span><math class="testfont"><mtext>&#x1D431;</mtext></math>=<span>1D431</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D432;</mtext></math>=<span>1D432</span></span>
+ <span><math class="testfont"><mtext>&#x1D433;</mtext></math>=<span>1D433</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A8;</mtext></math>=<span>1D6A8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A9;</mtext></math>=<span>1D6A9</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AA;</mtext></math>=<span>1D6AA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AB;</mtext></math>=<span>1D6AB</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AC;</mtext></math>=<span>1D6AC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AD;</mtext></math>=<span>1D6AD</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AE;</mtext></math>=<span>1D6AE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6AF;</mtext></math>=<span>1D6AF</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6B0;</mtext></math>=<span>1D6B0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B1;</mtext></math>=<span>1D6B1</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B2;</mtext></math>=<span>1D6B2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B3;</mtext></math>=<span>1D6B3</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B4;</mtext></math>=<span>1D6B4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B5;</mtext></math>=<span>1D6B5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B6;</mtext></math>=<span>1D6B6</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B7;</mtext></math>=<span>1D6B7</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B8;</mtext></math>=<span>1D6B8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6B9;</mtext></math>=<span>1D6B9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6BA;</mtext></math>=<span>1D6BA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6BB;</mtext></math>=<span>1D6BB</span></span>
+ <span><math class="testfont"><mtext>&#x1D6BC;</mtext></math>=<span>1D6BC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6BD;</mtext></math>=<span>1D6BD</span></span>
+ <span><math class="testfont"><mtext>&#x1D6BE;</mtext></math>=<span>1D6BE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6BF;</mtext></math>=<span>1D6BF</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C0;</mtext></math>=<span>1D6C0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C1;</mtext></math>=<span>1D6C1</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C2;</mtext></math>=<span>1D6C2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C3;</mtext></math>=<span>1D6C3</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6C4;</mtext></math>=<span>1D6C4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C5;</mtext></math>=<span>1D6C5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C6;</mtext></math>=<span>1D6C6</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C7;</mtext></math>=<span>1D6C7</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C8;</mtext></math>=<span>1D6C8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6C9;</mtext></math>=<span>1D6C9</span></span>
+ <span><math class="testfont"><mtext>&#x1D6CA;</mtext></math>=<span>1D6CA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6CB;</mtext></math>=<span>1D6CB</span></span>
+ <span><math class="testfont"><mtext>&#x1D6CC;</mtext></math>=<span>1D6CC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6CD;</mtext></math>=<span>1D6CD</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6CE;</mtext></math>=<span>1D6CE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6CF;</mtext></math>=<span>1D6CF</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D0;</mtext></math>=<span>1D6D0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D1;</mtext></math>=<span>1D6D1</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D2;</mtext></math>=<span>1D6D2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D3;</mtext></math>=<span>1D6D3</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D4;</mtext></math>=<span>1D6D4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D5;</mtext></math>=<span>1D6D5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D6;</mtext></math>=<span>1D6D6</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D7;</mtext></math>=<span>1D6D7</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6D8;</mtext></math>=<span>1D6D8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6D9;</mtext></math>=<span>1D6D9</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DA;</mtext></math>=<span>1D6DA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DB;</mtext></math>=<span>1D6DB</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DC;</mtext></math>=<span>1D6DC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DD;</mtext></math>=<span>1D6DD</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DE;</mtext></math>=<span>1D6DE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6DF;</mtext></math>=<span>1D6DF</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E0;</mtext></math>=<span>1D6E0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E1;</mtext></math>=<span>1D6E1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7CA;</mtext></math>=<span>1D7CA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7CB;</mtext></math>=<span>1D7CB</span></span>
+ <span><math class="testfont"><mtext>&#x1D7CE;</mtext></math>=<span>1D7CE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7CF;</mtext></math>=<span>1D7CF</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D0;</mtext></math>=<span>1D7D0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D1;</mtext></math>=<span>1D7D1</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D2;</mtext></math>=<span>1D7D2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D3;</mtext></math>=<span>1D7D3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D4;</mtext></math>=<span>1D7D4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D5;</mtext></math>=<span>1D7D5</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7D6;</mtext></math>=<span>1D7D6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D7;</mtext></math>=<span>1D7D7</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif-ref.html
new file mode 100644
index 0000000000..78c0cc5ea6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif-ref.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-sans-serif (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D5D4;</mtext></math>=<span>1D5D4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D5;</mtext></math>=<span>1D5D5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D6;</mtext></math>=<span>1D5D6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D7;</mtext></math>=<span>1D5D7</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D8;</mtext></math>=<span>1D5D8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D9;</mtext></math>=<span>1D5D9</span></span>
+ <span><math class="testfont"><mtext>&#x1D5DA;</mtext></math>=<span>1D5DA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5DB;</mtext></math>=<span>1D5DB</span></span>
+ <span><math class="testfont"><mtext>&#x1D5DC;</mtext></math>=<span>1D5DC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5DD;</mtext></math>=<span>1D5DD</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5DE;</mtext></math>=<span>1D5DE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5DF;</mtext></math>=<span>1D5DF</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E0;</mtext></math>=<span>1D5E0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E1;</mtext></math>=<span>1D5E1</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E2;</mtext></math>=<span>1D5E2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E3;</mtext></math>=<span>1D5E3</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E4;</mtext></math>=<span>1D5E4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E5;</mtext></math>=<span>1D5E5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E6;</mtext></math>=<span>1D5E6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E7;</mtext></math>=<span>1D5E7</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5E8;</mtext></math>=<span>1D5E8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5E9;</mtext></math>=<span>1D5E9</span></span>
+ <span><math class="testfont"><mtext>&#x1D5EA;</mtext></math>=<span>1D5EA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5EB;</mtext></math>=<span>1D5EB</span></span>
+ <span><math class="testfont"><mtext>&#x1D5EC;</mtext></math>=<span>1D5EC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5ED;</mtext></math>=<span>1D5ED</span></span>
+ <span><math class="testfont"><mtext>&#x1D5EE;</mtext></math>=<span>1D5EE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5EF;</mtext></math>=<span>1D5EF</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F0;</mtext></math>=<span>1D5F0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F1;</mtext></math>=<span>1D5F1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5F2;</mtext></math>=<span>1D5F2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F3;</mtext></math>=<span>1D5F3</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F4;</mtext></math>=<span>1D5F4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F5;</mtext></math>=<span>1D5F5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F6;</mtext></math>=<span>1D5F6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F7;</mtext></math>=<span>1D5F7</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F8;</mtext></math>=<span>1D5F8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5F9;</mtext></math>=<span>1D5F9</span></span>
+ <span><math class="testfont"><mtext>&#x1D5FA;</mtext></math>=<span>1D5FA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5FB;</mtext></math>=<span>1D5FB</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5FC;</mtext></math>=<span>1D5FC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5FD;</mtext></math>=<span>1D5FD</span></span>
+ <span><math class="testfont"><mtext>&#x1D5FE;</mtext></math>=<span>1D5FE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5FF;</mtext></math>=<span>1D5FF</span></span>
+ <span><math class="testfont"><mtext>&#x1D600;</mtext></math>=<span>1D600</span></span>
+ <span><math class="testfont"><mtext>&#x1D601;</mtext></math>=<span>1D601</span></span>
+ <span><math class="testfont"><mtext>&#x1D602;</mtext></math>=<span>1D602</span></span>
+ <span><math class="testfont"><mtext>&#x1D603;</mtext></math>=<span>1D603</span></span>
+ <span><math class="testfont"><mtext>&#x1D604;</mtext></math>=<span>1D604</span></span>
+ <span><math class="testfont"><mtext>&#x1D605;</mtext></math>=<span>1D605</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D606;</mtext></math>=<span>1D606</span></span>
+ <span><math class="testfont"><mtext>&#x1D607;</mtext></math>=<span>1D607</span></span>
+ <span><math class="testfont"><mtext>&#x1D756;</mtext></math>=<span>1D756</span></span>
+ <span><math class="testfont"><mtext>&#x1D757;</mtext></math>=<span>1D757</span></span>
+ <span><math class="testfont"><mtext>&#x1D758;</mtext></math>=<span>1D758</span></span>
+ <span><math class="testfont"><mtext>&#x1D759;</mtext></math>=<span>1D759</span></span>
+ <span><math class="testfont"><mtext>&#x1D75A;</mtext></math>=<span>1D75A</span></span>
+ <span><math class="testfont"><mtext>&#x1D75B;</mtext></math>=<span>1D75B</span></span>
+ <span><math class="testfont"><mtext>&#x1D75C;</mtext></math>=<span>1D75C</span></span>
+ <span><math class="testfont"><mtext>&#x1D75D;</mtext></math>=<span>1D75D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D75E;</mtext></math>=<span>1D75E</span></span>
+ <span><math class="testfont"><mtext>&#x1D75F;</mtext></math>=<span>1D75F</span></span>
+ <span><math class="testfont"><mtext>&#x1D760;</mtext></math>=<span>1D760</span></span>
+ <span><math class="testfont"><mtext>&#x1D761;</mtext></math>=<span>1D761</span></span>
+ <span><math class="testfont"><mtext>&#x1D762;</mtext></math>=<span>1D762</span></span>
+ <span><math class="testfont"><mtext>&#x1D763;</mtext></math>=<span>1D763</span></span>
+ <span><math class="testfont"><mtext>&#x1D764;</mtext></math>=<span>1D764</span></span>
+ <span><math class="testfont"><mtext>&#x1D765;</mtext></math>=<span>1D765</span></span>
+ <span><math class="testfont"><mtext>&#x1D766;</mtext></math>=<span>1D766</span></span>
+ <span><math class="testfont"><mtext>&#x1D767;</mtext></math>=<span>1D767</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D768;</mtext></math>=<span>1D768</span></span>
+ <span><math class="testfont"><mtext>&#x1D769;</mtext></math>=<span>1D769</span></span>
+ <span><math class="testfont"><mtext>&#x1D76A;</mtext></math>=<span>1D76A</span></span>
+ <span><math class="testfont"><mtext>&#x1D76B;</mtext></math>=<span>1D76B</span></span>
+ <span><math class="testfont"><mtext>&#x1D76C;</mtext></math>=<span>1D76C</span></span>
+ <span><math class="testfont"><mtext>&#x1D76D;</mtext></math>=<span>1D76D</span></span>
+ <span><math class="testfont"><mtext>&#x1D76E;</mtext></math>=<span>1D76E</span></span>
+ <span><math class="testfont"><mtext>&#x1D76F;</mtext></math>=<span>1D76F</span></span>
+ <span><math class="testfont"><mtext>&#x1D770;</mtext></math>=<span>1D770</span></span>
+ <span><math class="testfont"><mtext>&#x1D771;</mtext></math>=<span>1D771</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D772;</mtext></math>=<span>1D772</span></span>
+ <span><math class="testfont"><mtext>&#x1D773;</mtext></math>=<span>1D773</span></span>
+ <span><math class="testfont"><mtext>&#x1D774;</mtext></math>=<span>1D774</span></span>
+ <span><math class="testfont"><mtext>&#x1D775;</mtext></math>=<span>1D775</span></span>
+ <span><math class="testfont"><mtext>&#x1D776;</mtext></math>=<span>1D776</span></span>
+ <span><math class="testfont"><mtext>&#x1D777;</mtext></math>=<span>1D777</span></span>
+ <span><math class="testfont"><mtext>&#x1D778;</mtext></math>=<span>1D778</span></span>
+ <span><math class="testfont"><mtext>&#x1D779;</mtext></math>=<span>1D779</span></span>
+ <span><math class="testfont"><mtext>&#x1D77A;</mtext></math>=<span>1D77A</span></span>
+ <span><math class="testfont"><mtext>&#x1D77B;</mtext></math>=<span>1D77B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D77C;</mtext></math>=<span>1D77C</span></span>
+ <span><math class="testfont"><mtext>&#x1D77D;</mtext></math>=<span>1D77D</span></span>
+ <span><math class="testfont"><mtext>&#x1D77E;</mtext></math>=<span>1D77E</span></span>
+ <span><math class="testfont"><mtext>&#x1D77F;</mtext></math>=<span>1D77F</span></span>
+ <span><math class="testfont"><mtext>&#x1D780;</mtext></math>=<span>1D780</span></span>
+ <span><math class="testfont"><mtext>&#x1D781;</mtext></math>=<span>1D781</span></span>
+ <span><math class="testfont"><mtext>&#x1D782;</mtext></math>=<span>1D782</span></span>
+ <span><math class="testfont"><mtext>&#x1D783;</mtext></math>=<span>1D783</span></span>
+ <span><math class="testfont"><mtext>&#x1D784;</mtext></math>=<span>1D784</span></span>
+ <span><math class="testfont"><mtext>&#x1D785;</mtext></math>=<span>1D785</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D786;</mtext></math>=<span>1D786</span></span>
+ <span><math class="testfont"><mtext>&#x1D787;</mtext></math>=<span>1D787</span></span>
+ <span><math class="testfont"><mtext>&#x1D788;</mtext></math>=<span>1D788</span></span>
+ <span><math class="testfont"><mtext>&#x1D789;</mtext></math>=<span>1D789</span></span>
+ <span><math class="testfont"><mtext>&#x1D78A;</mtext></math>=<span>1D78A</span></span>
+ <span><math class="testfont"><mtext>&#x1D78B;</mtext></math>=<span>1D78B</span></span>
+ <span><math class="testfont"><mtext>&#x1D78C;</mtext></math>=<span>1D78C</span></span>
+ <span><math class="testfont"><mtext>&#x1D78D;</mtext></math>=<span>1D78D</span></span>
+ <span><math class="testfont"><mtext>&#x1D78E;</mtext></math>=<span>1D78E</span></span>
+ <span><math class="testfont"><mtext>&#x1D78F;</mtext></math>=<span>1D78F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7EC;</mtext></math>=<span>1D7EC</span></span>
+ <span><math class="testfont"><mtext>&#x1D7ED;</mtext></math>=<span>1D7ED</span></span>
+ <span><math class="testfont"><mtext>&#x1D7EE;</mtext></math>=<span>1D7EE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7EF;</mtext></math>=<span>1D7EF</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F0;</mtext></math>=<span>1D7F0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F1;</mtext></math>=<span>1D7F1</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F2;</mtext></math>=<span>1D7F2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F3;</mtext></math>=<span>1D7F3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F4;</mtext></math>=<span>1D7F4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F5;</mtext></math>=<span>1D7F5</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif.html
new file mode 100644
index 0000000000..0e0662dff6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-sans-serif.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-sans-serif</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#bold-sans-serif-mappings">
+<link rel="match" href="mathvariant-bold-sans-serif-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a bold-sans-serif mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x41;</mtext></math>=<span>1D5D4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x42;</mtext></math>=<span>1D5D5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x43;</mtext></math>=<span>1D5D6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x44;</mtext></math>=<span>1D5D7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x45;</mtext></math>=<span>1D5D8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x46;</mtext></math>=<span>1D5D9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x47;</mtext></math>=<span>1D5DA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x48;</mtext></math>=<span>1D5DB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x49;</mtext></math>=<span>1D5DC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4A;</mtext></math>=<span>1D5DD</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4B;</mtext></math>=<span>1D5DE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4C;</mtext></math>=<span>1D5DF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4D;</mtext></math>=<span>1D5E0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4E;</mtext></math>=<span>1D5E1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x4F;</mtext></math>=<span>1D5E2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x50;</mtext></math>=<span>1D5E3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x51;</mtext></math>=<span>1D5E4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x52;</mtext></math>=<span>1D5E5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x53;</mtext></math>=<span>1D5E6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x54;</mtext></math>=<span>1D5E7</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x55;</mtext></math>=<span>1D5E8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x56;</mtext></math>=<span>1D5E9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x57;</mtext></math>=<span>1D5EA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x58;</mtext></math>=<span>1D5EB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x59;</mtext></math>=<span>1D5EC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x5A;</mtext></math>=<span>1D5ED</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x61;</mtext></math>=<span>1D5EE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x62;</mtext></math>=<span>1D5EF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x63;</mtext></math>=<span>1D5F0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x64;</mtext></math>=<span>1D5F1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x65;</mtext></math>=<span>1D5F2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x66;</mtext></math>=<span>1D5F3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x67;</mtext></math>=<span>1D5F4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x68;</mtext></math>=<span>1D5F5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x69;</mtext></math>=<span>1D5F6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6A;</mtext></math>=<span>1D5F7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6B;</mtext></math>=<span>1D5F8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6C;</mtext></math>=<span>1D5F9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6D;</mtext></math>=<span>1D5FA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6E;</mtext></math>=<span>1D5FB</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x6F;</mtext></math>=<span>1D5FC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x70;</mtext></math>=<span>1D5FD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x71;</mtext></math>=<span>1D5FE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x72;</mtext></math>=<span>1D5FF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x73;</mtext></math>=<span>1D600</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x74;</mtext></math>=<span>1D601</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x75;</mtext></math>=<span>1D602</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x76;</mtext></math>=<span>1D603</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x77;</mtext></math>=<span>1D604</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x78;</mtext></math>=<span>1D605</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x79;</mtext></math>=<span>1D606</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x7A;</mtext></math>=<span>1D607</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x391;</mtext></math>=<span>1D756</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x392;</mtext></math>=<span>1D757</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x393;</mtext></math>=<span>1D758</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x394;</mtext></math>=<span>1D759</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x395;</mtext></math>=<span>1D75A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x396;</mtext></math>=<span>1D75B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x397;</mtext></math>=<span>1D75C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x398;</mtext></math>=<span>1D75D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x399;</mtext></math>=<span>1D75E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39A;</mtext></math>=<span>1D75F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39B;</mtext></math>=<span>1D760</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39C;</mtext></math>=<span>1D761</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39D;</mtext></math>=<span>1D762</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39E;</mtext></math>=<span>1D763</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39F;</mtext></math>=<span>1D764</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A0;</mtext></math>=<span>1D765</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A1;</mtext></math>=<span>1D766</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3F4;</mtext></math>=<span>1D767</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A3;</mtext></math>=<span>1D768</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A4;</mtext></math>=<span>1D769</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A5;</mtext></math>=<span>1D76A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A6;</mtext></math>=<span>1D76B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A7;</mtext></math>=<span>1D76C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A8;</mtext></math>=<span>1D76D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3A9;</mtext></math>=<span>1D76E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x2207;</mtext></math>=<span>1D76F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B1;</mtext></math>=<span>1D770</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B2;</mtext></math>=<span>1D771</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B3;</mtext></math>=<span>1D772</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B4;</mtext></math>=<span>1D773</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B5;</mtext></math>=<span>1D774</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B6;</mtext></math>=<span>1D775</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B7;</mtext></math>=<span>1D776</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B8;</mtext></math>=<span>1D777</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3B9;</mtext></math>=<span>1D778</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BA;</mtext></math>=<span>1D779</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BB;</mtext></math>=<span>1D77A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BC;</mtext></math>=<span>1D77B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BD;</mtext></math>=<span>1D77C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BE;</mtext></math>=<span>1D77D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3BF;</mtext></math>=<span>1D77E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C0;</mtext></math>=<span>1D77F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C1;</mtext></math>=<span>1D780</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C2;</mtext></math>=<span>1D781</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C3;</mtext></math>=<span>1D782</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C4;</mtext></math>=<span>1D783</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C5;</mtext></math>=<span>1D784</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C6;</mtext></math>=<span>1D785</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C7;</mtext></math>=<span>1D786</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C8;</mtext></math>=<span>1D787</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3C9;</mtext></math>=<span>1D788</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x2202;</mtext></math>=<span>1D789</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3F5;</mtext></math>=<span>1D78A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3D1;</mtext></math>=<span>1D78B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3F0;</mtext></math>=<span>1D78C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3D5;</mtext></math>=<span>1D78D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3F1;</mtext></math>=<span>1D78E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x3D6;</mtext></math>=<span>1D78F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x30;</mtext></math>=<span>1D7EC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x31;</mtext></math>=<span>1D7ED</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x32;</mtext></math>=<span>1D7EE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x33;</mtext></math>=<span>1D7EF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x34;</mtext></math>=<span>1D7F0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x35;</mtext></math>=<span>1D7F1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x36;</mtext></math>=<span>1D7F2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x37;</mtext></math>=<span>1D7F3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x38;</mtext></math>=<span>1D7F4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-sans-serif">&#x39;</mtext></math>=<span>1D7F5</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script-ref.html
new file mode 100644
index 0000000000..ef11f7fb8f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-script (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D4D0;</mtext></math>=<span>1D4D0</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D1;</mtext></math>=<span>1D4D1</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D2;</mtext></math>=<span>1D4D2</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D3;</mtext></math>=<span>1D4D3</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D4;</mtext></math>=<span>1D4D4</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D5;</mtext></math>=<span>1D4D5</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D6;</mtext></math>=<span>1D4D6</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D7;</mtext></math>=<span>1D4D7</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D8;</mtext></math>=<span>1D4D8</span></span>
+ <span><math class="testfont"><mtext>&#x1D4D9;</mtext></math>=<span>1D4D9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4DA;</mtext></math>=<span>1D4DA</span></span>
+ <span><math class="testfont"><mtext>&#x1D4DB;</mtext></math>=<span>1D4DB</span></span>
+ <span><math class="testfont"><mtext>&#x1D4DC;</mtext></math>=<span>1D4DC</span></span>
+ <span><math class="testfont"><mtext>&#x1D4DD;</mtext></math>=<span>1D4DD</span></span>
+ <span><math class="testfont"><mtext>&#x1D4DE;</mtext></math>=<span>1D4DE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4DF;</mtext></math>=<span>1D4DF</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E0;</mtext></math>=<span>1D4E0</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E1;</mtext></math>=<span>1D4E1</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E2;</mtext></math>=<span>1D4E2</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E3;</mtext></math>=<span>1D4E3</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4E4;</mtext></math>=<span>1D4E4</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E5;</mtext></math>=<span>1D4E5</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E6;</mtext></math>=<span>1D4E6</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E7;</mtext></math>=<span>1D4E7</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E8;</mtext></math>=<span>1D4E8</span></span>
+ <span><math class="testfont"><mtext>&#x1D4E9;</mtext></math>=<span>1D4E9</span></span>
+ <span><math class="testfont"><mtext>&#x1D4EA;</mtext></math>=<span>1D4EA</span></span>
+ <span><math class="testfont"><mtext>&#x1D4EB;</mtext></math>=<span>1D4EB</span></span>
+ <span><math class="testfont"><mtext>&#x1D4EC;</mtext></math>=<span>1D4EC</span></span>
+ <span><math class="testfont"><mtext>&#x1D4ED;</mtext></math>=<span>1D4ED</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4EE;</mtext></math>=<span>1D4EE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4EF;</mtext></math>=<span>1D4EF</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F0;</mtext></math>=<span>1D4F0</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F1;</mtext></math>=<span>1D4F1</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F2;</mtext></math>=<span>1D4F2</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F3;</mtext></math>=<span>1D4F3</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F4;</mtext></math>=<span>1D4F4</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F5;</mtext></math>=<span>1D4F5</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F6;</mtext></math>=<span>1D4F6</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F7;</mtext></math>=<span>1D4F7</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4F8;</mtext></math>=<span>1D4F8</span></span>
+ <span><math class="testfont"><mtext>&#x1D4F9;</mtext></math>=<span>1D4F9</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FA;</mtext></math>=<span>1D4FA</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FB;</mtext></math>=<span>1D4FB</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FC;</mtext></math>=<span>1D4FC</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FD;</mtext></math>=<span>1D4FD</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FE;</mtext></math>=<span>1D4FE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4FF;</mtext></math>=<span>1D4FF</span></span>
+ <span><math class="testfont"><mtext>&#x1D500;</mtext></math>=<span>1D500</span></span>
+ <span><math class="testfont"><mtext>&#x1D501;</mtext></math>=<span>1D501</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D502;</mtext></math>=<span>1D502</span></span>
+ <span><math class="testfont"><mtext>&#x1D503;</mtext></math>=<span>1D503</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script.html
new file mode 100644
index 0000000000..0e775949f9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold-script.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold-script</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#bold-script-mappings">
+<link rel="match" href="mathvariant-bold-script-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a bold-script mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x41;</mtext></math>=<span>1D4D0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x42;</mtext></math>=<span>1D4D1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x43;</mtext></math>=<span>1D4D2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x44;</mtext></math>=<span>1D4D3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x45;</mtext></math>=<span>1D4D4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x46;</mtext></math>=<span>1D4D5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x47;</mtext></math>=<span>1D4D6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x48;</mtext></math>=<span>1D4D7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x49;</mtext></math>=<span>1D4D8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4A;</mtext></math>=<span>1D4D9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4B;</mtext></math>=<span>1D4DA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4C;</mtext></math>=<span>1D4DB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4D;</mtext></math>=<span>1D4DC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4E;</mtext></math>=<span>1D4DD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x4F;</mtext></math>=<span>1D4DE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x50;</mtext></math>=<span>1D4DF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x51;</mtext></math>=<span>1D4E0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x52;</mtext></math>=<span>1D4E1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x53;</mtext></math>=<span>1D4E2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x54;</mtext></math>=<span>1D4E3</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x55;</mtext></math>=<span>1D4E4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x56;</mtext></math>=<span>1D4E5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x57;</mtext></math>=<span>1D4E6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x58;</mtext></math>=<span>1D4E7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x59;</mtext></math>=<span>1D4E8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x5A;</mtext></math>=<span>1D4E9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x61;</mtext></math>=<span>1D4EA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x62;</mtext></math>=<span>1D4EB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x63;</mtext></math>=<span>1D4EC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x64;</mtext></math>=<span>1D4ED</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x65;</mtext></math>=<span>1D4EE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x66;</mtext></math>=<span>1D4EF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x67;</mtext></math>=<span>1D4F0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x68;</mtext></math>=<span>1D4F1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x69;</mtext></math>=<span>1D4F2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6A;</mtext></math>=<span>1D4F3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6B;</mtext></math>=<span>1D4F4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6C;</mtext></math>=<span>1D4F5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6D;</mtext></math>=<span>1D4F6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6E;</mtext></math>=<span>1D4F7</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x6F;</mtext></math>=<span>1D4F8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x70;</mtext></math>=<span>1D4F9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x71;</mtext></math>=<span>1D4FA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x72;</mtext></math>=<span>1D4FB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x73;</mtext></math>=<span>1D4FC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x74;</mtext></math>=<span>1D4FD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x75;</mtext></math>=<span>1D4FE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x76;</mtext></math>=<span>1D4FF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x77;</mtext></math>=<span>1D500</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x78;</mtext></math>=<span>1D501</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x79;</mtext></math>=<span>1D502</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold-script">&#x7A;</mtext></math>=<span>1D503</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold.html
new file mode 100644
index 0000000000..db5f4755be
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-bold.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant bold</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#bold-mappings">
+<link rel="match" href="mathvariant-bold-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a bold mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x41;</mtext></math>=<span>1D400</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x42;</mtext></math>=<span>1D401</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x43;</mtext></math>=<span>1D402</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x44;</mtext></math>=<span>1D403</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x45;</mtext></math>=<span>1D404</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x46;</mtext></math>=<span>1D405</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x47;</mtext></math>=<span>1D406</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x48;</mtext></math>=<span>1D407</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x49;</mtext></math>=<span>1D408</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4A;</mtext></math>=<span>1D409</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4B;</mtext></math>=<span>1D40A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4C;</mtext></math>=<span>1D40B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4D;</mtext></math>=<span>1D40C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4E;</mtext></math>=<span>1D40D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x4F;</mtext></math>=<span>1D40E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x50;</mtext></math>=<span>1D40F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x51;</mtext></math>=<span>1D410</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x52;</mtext></math>=<span>1D411</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x53;</mtext></math>=<span>1D412</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x54;</mtext></math>=<span>1D413</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x55;</mtext></math>=<span>1D414</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x56;</mtext></math>=<span>1D415</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x57;</mtext></math>=<span>1D416</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x58;</mtext></math>=<span>1D417</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x59;</mtext></math>=<span>1D418</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x5A;</mtext></math>=<span>1D419</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x61;</mtext></math>=<span>1D41A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x62;</mtext></math>=<span>1D41B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x63;</mtext></math>=<span>1D41C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x64;</mtext></math>=<span>1D41D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x65;</mtext></math>=<span>1D41E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x66;</mtext></math>=<span>1D41F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x67;</mtext></math>=<span>1D420</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x68;</mtext></math>=<span>1D421</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x69;</mtext></math>=<span>1D422</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6A;</mtext></math>=<span>1D423</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6B;</mtext></math>=<span>1D424</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6C;</mtext></math>=<span>1D425</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6D;</mtext></math>=<span>1D426</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6E;</mtext></math>=<span>1D427</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x6F;</mtext></math>=<span>1D428</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x70;</mtext></math>=<span>1D429</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x71;</mtext></math>=<span>1D42A</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x72;</mtext></math>=<span>1D42B</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x73;</mtext></math>=<span>1D42C</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x74;</mtext></math>=<span>1D42D</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x75;</mtext></math>=<span>1D42E</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x76;</mtext></math>=<span>1D42F</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x77;</mtext></math>=<span>1D430</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x78;</mtext></math>=<span>1D431</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x79;</mtext></math>=<span>1D432</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x7A;</mtext></math>=<span>1D433</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x391;</mtext></math>=<span>1D6A8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x392;</mtext></math>=<span>1D6A9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x393;</mtext></math>=<span>1D6AA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x394;</mtext></math>=<span>1D6AB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x395;</mtext></math>=<span>1D6AC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x396;</mtext></math>=<span>1D6AD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x397;</mtext></math>=<span>1D6AE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x398;</mtext></math>=<span>1D6AF</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x399;</mtext></math>=<span>1D6B0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39A;</mtext></math>=<span>1D6B1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39B;</mtext></math>=<span>1D6B2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39C;</mtext></math>=<span>1D6B3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39D;</mtext></math>=<span>1D6B4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39E;</mtext></math>=<span>1D6B5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39F;</mtext></math>=<span>1D6B6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A0;</mtext></math>=<span>1D6B7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A1;</mtext></math>=<span>1D6B8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3F4;</mtext></math>=<span>1D6B9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A3;</mtext></math>=<span>1D6BA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A4;</mtext></math>=<span>1D6BB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A5;</mtext></math>=<span>1D6BC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A6;</mtext></math>=<span>1D6BD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A7;</mtext></math>=<span>1D6BE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A8;</mtext></math>=<span>1D6BF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3A9;</mtext></math>=<span>1D6C0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x2207;</mtext></math>=<span>1D6C1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B1;</mtext></math>=<span>1D6C2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B2;</mtext></math>=<span>1D6C3</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B3;</mtext></math>=<span>1D6C4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B4;</mtext></math>=<span>1D6C5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B5;</mtext></math>=<span>1D6C6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B6;</mtext></math>=<span>1D6C7</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B7;</mtext></math>=<span>1D6C8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B8;</mtext></math>=<span>1D6C9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3B9;</mtext></math>=<span>1D6CA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BA;</mtext></math>=<span>1D6CB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BB;</mtext></math>=<span>1D6CC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BC;</mtext></math>=<span>1D6CD</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BD;</mtext></math>=<span>1D6CE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BE;</mtext></math>=<span>1D6CF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3BF;</mtext></math>=<span>1D6D0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C0;</mtext></math>=<span>1D6D1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C1;</mtext></math>=<span>1D6D2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C2;</mtext></math>=<span>1D6D3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C3;</mtext></math>=<span>1D6D4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C4;</mtext></math>=<span>1D6D5</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C5;</mtext></math>=<span>1D6D6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C6;</mtext></math>=<span>1D6D7</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C7;</mtext></math>=<span>1D6D8</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C8;</mtext></math>=<span>1D6D9</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3C9;</mtext></math>=<span>1D6DA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x2202;</mtext></math>=<span>1D6DB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3F5;</mtext></math>=<span>1D6DC</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3D1;</mtext></math>=<span>1D6DD</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3F0;</mtext></math>=<span>1D6DE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3D5;</mtext></math>=<span>1D6DF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3F1;</mtext></math>=<span>1D6E0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3D6;</mtext></math>=<span>1D6E1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3DC;</mtext></math>=<span>1D7CA</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x3DD;</mtext></math>=<span>1D7CB</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x30;</mtext></math>=<span>1D7CE</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x31;</mtext></math>=<span>1D7CF</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x32;</mtext></math>=<span>1D7D0</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x33;</mtext></math>=<span>1D7D1</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x34;</mtext></math>=<span>1D7D2</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x35;</mtext></math>=<span>1D7D3</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x36;</mtext></math>=<span>1D7D4</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x37;</mtext></math>=<span>1D7D5</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x38;</mtext></math>=<span>1D7D6</span></span>
+ <span><math class="testfont"><mtext mathvariant="bold">&#x39;</mtext></math>=<span>1D7D7</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity-ref.html
new file mode 100644
index 0000000000..28d9acc1f4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity-ref.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant case sensitivity</title>
+<style>
+ @font-face {
+ font-family: mathvariant-bold-fraktur;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-italic;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-sans-serif;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-script;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ @font-face {
+ font-family: mathvariant-double-struck;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ @font-face {
+ font-family: mathvariant-fraktur;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ @font-face {
+ font-family: mathvariant-initial;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ @font-face {
+ font-family: mathvariant-italic;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-looped;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ @font-face {
+ font-family: mathvariant-monospace;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif-bold-italic;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif-italic;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-script;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ @font-face {
+ font-family: mathvariant-stretched;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ @font-face {
+ font-family: mathvariant-tailed;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+</style>
+<body>
+ <p>
+ <math style="font-family: mathvariant-bold-fraktur">
+ <mtext>&#x1D56C;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold">
+ <mtext>&#x1D400;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-italic">
+ <mtext>&#x1D468;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-sans-serif">
+ <mtext>&#x1D5D4;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-script">
+ <mtext>&#x1D4D0;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-double-struck">
+ <mtext>&#x1D538;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-fraktur">
+ <mtext>&#x1D504;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-initial">
+ <mtext>&#x1EE30;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-italic">
+ <mtext>&#x1D434;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-looped">
+ <mtext>&#x1EE90;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-monospace">
+ <mtext>&#x1D670;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif-bold-italic">
+ <mtext>&#x1D63C;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif">
+ <mtext>&#x1D5A0;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif-italic">
+ <mtext>&#x1D608;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-script">
+ <mtext>&#x1D49C;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-stretched">
+ <mtext>&#x1EE70;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-tailed">
+ <mtext>&#x1EE52;</mtext>
+ </math>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity.html
new file mode 100644
index 0000000000..21c8300a7a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-case-sensitivity.html
@@ -0,0 +1,168 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant case sensitivity</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="match" href="mathvariant-case-sensitivity-ref.html"/>
+<meta name="assert" content="Verify that mathvariant value is case insensitive">
+<style>
+ @font-face {
+ font-family: mathvariant-bold-fraktur;
+ src: url("/fonts/math/mathvariant-bold-fraktur.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold;
+ src: url("/fonts/math/mathvariant-bold.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-italic;
+ src: url("/fonts/math/mathvariant-bold-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-sans-serif;
+ src: url("/fonts/math/mathvariant-bold-sans-serif.woff");
+ }
+ @font-face {
+ font-family: mathvariant-bold-script;
+ src: url("/fonts/math/mathvariant-bold-script.woff");
+ }
+ @font-face {
+ font-family: mathvariant-double-struck;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ @font-face {
+ font-family: mathvariant-fraktur;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ @font-face {
+ font-family: mathvariant-initial;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ @font-face {
+ font-family: mathvariant-italic;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-looped;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ @font-face {
+ font-family: mathvariant-monospace;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif-bold-italic;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ @font-face {
+ font-family: mathvariant-sans-serif-italic;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ @font-face {
+ font-family: mathvariant-script;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ @font-face {
+ font-family: mathvariant-stretched;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ @font-face {
+ font-family: mathvariant-tailed;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+</style>
+<body>
+ <p>
+ <math style="font-family: mathvariant-bold-fraktur">
+ <mtext mathvariant="BoLd-fRaKtUr">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold">
+ <mtext mathvariant="BoLd">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-italic">
+ <mtext mathvariant="BoLd-iTaLiC">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-sans-serif">
+ <mtext mathvariant="BoLd-sAnS-SeRiF">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-bold-script">
+ <mtext mathvariant="BoLd-sCrIpT">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-double-struck">
+ <mtext mathvariant="DoUbLe-sTrUcK">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-fraktur">
+ <mtext mathvariant="FrAkTuR">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-initial">
+ <mtext mathvariant="InItIaL">&#x641;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-italic">
+ <mtext mathvariant="ItAlIc">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-looped">
+ <mtext mathvariant="LoOpEd">&#x641;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-monospace">
+ <mtext mathvariant="MoNoSpAcE">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif-bold-italic">
+ <mtext mathvariant="SaNs-sErIf-bOlD-ItAlIc">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif">
+ <mtext mathvariant="SaNs-sErIf">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-sans-serif-italic">
+ <mtext mathvariant="SaNs-sErIf-iTaLiC">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-script">
+ <mtext mathvariant="ScRiPt">&#x41;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-stretched">
+ <mtext mathvariant="StReTcHeD">&#x641;</mtext>
+ </math>
+ </p>
+ <p>
+ <math style="font-family: mathvariant-tailed">
+ <mtext mathvariant="TaIlEd">&#x642;</mtext>
+ </math>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight-ref.html
new file mode 100644
index 0000000000..817723a62d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>mathvariant="double-struck" and font-style/font-weight (reference)</title>
+ <style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 32px;
+ }
+ .italic { font-style: italic; }
+ .bold { font-weight: bold; }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see three lines with text <span class="testfont">&#x1EEA1;</span> respectively rendered with italic, bold and bold-italic style:</p>
+ <p><math class="testfont"><mtext class="italic">&#x1EEA1;</mtext></math></p>
+ <p><math class="testfont"><mtext class="bold">&#x1EEA1;</mtext></math></p>
+ <p><math class="testfont"><mtext class="bold italic">&#x1EEA1;</mtext></math></p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight.html
new file mode 100644
index 0000000000..2e283e1d70
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-font-style-font-weight.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8"/>
+ <title>mathvariant="double-struck" and font-style/font-weight</title>
+ <link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+ <link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1789081">
+ <link rel="match" href="mathvariant-double-struck-font-style-font-weight-ref.html"/>
+ <meta name="assert" content="Verify that mathvariant='double-struck' don't reset the font-style/font-weight properties.">
+ <style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 32px;
+ }
+ .italic { font-style: italic; }
+ .bold { font-weight: bold; }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if you see three lines with text <span class="testfont">&#x1EEA1;</span> respectively rendered with italic, bold and bold-italic style:</p>
+ <p><math class="testfont"><mtext mathvariant="double-struck" class="italic">&#x628;</mtext></math></p>
+ <p><math class="testfont"><mtext mathvariant="double-struck" class="bold">&#x628;</mtext></math></p>
+ <p><math class="testfont"><mtext mathvariant="double-struck" class="bold italic">&#x628;</mtext></math></p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-ref.html
new file mode 100644
index 0000000000..ebdb7a15b0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck-ref.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant double-struck (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D538;</mtext></math>=<span>1D538</span></span>
+ <span><math class="testfont"><mtext>&#x1D539;</mtext></math>=<span>1D539</span></span>
+ <span><math class="testfont"><mtext>&#x2102;</mtext></math>=<span>02102</span></span>
+ <span><math class="testfont"><mtext>&#x1D53B;</mtext></math>=<span>1D53B</span></span>
+ <span><math class="testfont"><mtext>&#x1D53C;</mtext></math>=<span>1D53C</span></span>
+ <span><math class="testfont"><mtext>&#x1D53D;</mtext></math>=<span>1D53D</span></span>
+ <span><math class="testfont"><mtext>&#x1D53E;</mtext></math>=<span>1D53E</span></span>
+ <span><math class="testfont"><mtext>&#x210D;</mtext></math>=<span>0210D</span></span>
+ <span><math class="testfont"><mtext>&#x1D540;</mtext></math>=<span>1D540</span></span>
+ <span><math class="testfont"><mtext>&#x1D541;</mtext></math>=<span>1D541</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D542;</mtext></math>=<span>1D542</span></span>
+ <span><math class="testfont"><mtext>&#x1D543;</mtext></math>=<span>1D543</span></span>
+ <span><math class="testfont"><mtext>&#x1D544;</mtext></math>=<span>1D544</span></span>
+ <span><math class="testfont"><mtext>&#x2115;</mtext></math>=<span>02115</span></span>
+ <span><math class="testfont"><mtext>&#x1D546;</mtext></math>=<span>1D546</span></span>
+ <span><math class="testfont"><mtext>&#x2119;</mtext></math>=<span>02119</span></span>
+ <span><math class="testfont"><mtext>&#x211A;</mtext></math>=<span>0211A</span></span>
+ <span><math class="testfont"><mtext>&#x211D;</mtext></math>=<span>0211D</span></span>
+ <span><math class="testfont"><mtext>&#x1D54A;</mtext></math>=<span>1D54A</span></span>
+ <span><math class="testfont"><mtext>&#x1D54B;</mtext></math>=<span>1D54B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D54C;</mtext></math>=<span>1D54C</span></span>
+ <span><math class="testfont"><mtext>&#x1D54D;</mtext></math>=<span>1D54D</span></span>
+ <span><math class="testfont"><mtext>&#x1D54E;</mtext></math>=<span>1D54E</span></span>
+ <span><math class="testfont"><mtext>&#x1D54F;</mtext></math>=<span>1D54F</span></span>
+ <span><math class="testfont"><mtext>&#x1D550;</mtext></math>=<span>1D550</span></span>
+ <span><math class="testfont"><mtext>&#x2124;</mtext></math>=<span>02124</span></span>
+ <span><math class="testfont"><mtext>&#x1D552;</mtext></math>=<span>1D552</span></span>
+ <span><math class="testfont"><mtext>&#x1D553;</mtext></math>=<span>1D553</span></span>
+ <span><math class="testfont"><mtext>&#x1D554;</mtext></math>=<span>1D554</span></span>
+ <span><math class="testfont"><mtext>&#x1D555;</mtext></math>=<span>1D555</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D556;</mtext></math>=<span>1D556</span></span>
+ <span><math class="testfont"><mtext>&#x1D557;</mtext></math>=<span>1D557</span></span>
+ <span><math class="testfont"><mtext>&#x1D558;</mtext></math>=<span>1D558</span></span>
+ <span><math class="testfont"><mtext>&#x1D559;</mtext></math>=<span>1D559</span></span>
+ <span><math class="testfont"><mtext>&#x1D55A;</mtext></math>=<span>1D55A</span></span>
+ <span><math class="testfont"><mtext>&#x1D55B;</mtext></math>=<span>1D55B</span></span>
+ <span><math class="testfont"><mtext>&#x1D55C;</mtext></math>=<span>1D55C</span></span>
+ <span><math class="testfont"><mtext>&#x1D55D;</mtext></math>=<span>1D55D</span></span>
+ <span><math class="testfont"><mtext>&#x1D55E;</mtext></math>=<span>1D55E</span></span>
+ <span><math class="testfont"><mtext>&#x1D55F;</mtext></math>=<span>1D55F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D560;</mtext></math>=<span>1D560</span></span>
+ <span><math class="testfont"><mtext>&#x1D561;</mtext></math>=<span>1D561</span></span>
+ <span><math class="testfont"><mtext>&#x1D562;</mtext></math>=<span>1D562</span></span>
+ <span><math class="testfont"><mtext>&#x1D563;</mtext></math>=<span>1D563</span></span>
+ <span><math class="testfont"><mtext>&#x1D564;</mtext></math>=<span>1D564</span></span>
+ <span><math class="testfont"><mtext>&#x1D565;</mtext></math>=<span>1D565</span></span>
+ <span><math class="testfont"><mtext>&#x1D566;</mtext></math>=<span>1D566</span></span>
+ <span><math class="testfont"><mtext>&#x1D567;</mtext></math>=<span>1D567</span></span>
+ <span><math class="testfont"><mtext>&#x1D568;</mtext></math>=<span>1D568</span></span>
+ <span><math class="testfont"><mtext>&#x1D569;</mtext></math>=<span>1D569</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D56A;</mtext></math>=<span>1D56A</span></span>
+ <span><math class="testfont"><mtext>&#x1D56B;</mtext></math>=<span>1D56B</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D8;</mtext></math>=<span>1D7D8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7D9;</mtext></math>=<span>1D7D9</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DA;</mtext></math>=<span>1D7DA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DB;</mtext></math>=<span>1D7DB</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DC;</mtext></math>=<span>1D7DC</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DD;</mtext></math>=<span>1D7DD</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DE;</mtext></math>=<span>1D7DE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7DF;</mtext></math>=<span>1D7DF</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7E0;</mtext></math>=<span>1D7E0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E1;</mtext></math>=<span>1D7E1</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA1;</mtext></math>=<span>1EEA1</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA2;</mtext></math>=<span>1EEA2</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA3;</mtext></math>=<span>1EEA3</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA5;</mtext></math>=<span>1EEA5</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA6;</mtext></math>=<span>1EEA6</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA7;</mtext></math>=<span>1EEA7</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA8;</mtext></math>=<span>1EEA8</span></span>
+ <span><math class="testfont"><mtext>&#x1EEA9;</mtext></math>=<span>1EEA9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EEAB;</mtext></math>=<span>1EEAB</span></span>
+ <span><math class="testfont"><mtext>&#x1EEAC;</mtext></math>=<span>1EEAC</span></span>
+ <span><math class="testfont"><mtext>&#x1EEAD;</mtext></math>=<span>1EEAD</span></span>
+ <span><math class="testfont"><mtext>&#x1EEAE;</mtext></math>=<span>1EEAE</span></span>
+ <span><math class="testfont"><mtext>&#x1EEAF;</mtext></math>=<span>1EEAF</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB0;</mtext></math>=<span>1EEB0</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB1;</mtext></math>=<span>1EEB1</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB2;</mtext></math>=<span>1EEB2</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB3;</mtext></math>=<span>1EEB3</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB4;</mtext></math>=<span>1EEB4</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EEB5;</mtext></math>=<span>1EEB5</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB6;</mtext></math>=<span>1EEB6</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB7;</mtext></math>=<span>1EEB7</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB8;</mtext></math>=<span>1EEB8</span></span>
+ <span><math class="testfont"><mtext>&#x1EEB9;</mtext></math>=<span>1EEB9</span></span>
+ <span><math class="testfont"><mtext>&#x1EEBA;</mtext></math>=<span>1EEBA</span></span>
+ <span><math class="testfont"><mtext>&#x1EEBB;</mtext></math>=<span>1EEBB</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck.html
new file mode 100644
index 0000000000..335234ac38
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-double-struck.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant double-struck</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#double-struck-mappings">
+<link rel="match" href="mathvariant-double-struck-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a double-struck mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-double-struck.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x41;</mtext></math>=<span>1D538</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x42;</mtext></math>=<span>1D539</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x43;</mtext></math>=<span>02102</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x44;</mtext></math>=<span>1D53B</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x45;</mtext></math>=<span>1D53C</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x46;</mtext></math>=<span>1D53D</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x47;</mtext></math>=<span>1D53E</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x48;</mtext></math>=<span>0210D</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x49;</mtext></math>=<span>1D540</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4A;</mtext></math>=<span>1D541</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4B;</mtext></math>=<span>1D542</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4C;</mtext></math>=<span>1D543</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4D;</mtext></math>=<span>1D544</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4E;</mtext></math>=<span>02115</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x4F;</mtext></math>=<span>1D546</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x50;</mtext></math>=<span>02119</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x51;</mtext></math>=<span>0211A</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x52;</mtext></math>=<span>0211D</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x53;</mtext></math>=<span>1D54A</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x54;</mtext></math>=<span>1D54B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x55;</mtext></math>=<span>1D54C</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x56;</mtext></math>=<span>1D54D</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x57;</mtext></math>=<span>1D54E</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x58;</mtext></math>=<span>1D54F</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x59;</mtext></math>=<span>1D550</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x5A;</mtext></math>=<span>02124</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x61;</mtext></math>=<span>1D552</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62;</mtext></math>=<span>1D553</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x63;</mtext></math>=<span>1D554</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x64;</mtext></math>=<span>1D555</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x65;</mtext></math>=<span>1D556</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x66;</mtext></math>=<span>1D557</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x67;</mtext></math>=<span>1D558</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x68;</mtext></math>=<span>1D559</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x69;</mtext></math>=<span>1D55A</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6A;</mtext></math>=<span>1D55B</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6B;</mtext></math>=<span>1D55C</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6C;</mtext></math>=<span>1D55D</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6D;</mtext></math>=<span>1D55E</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6E;</mtext></math>=<span>1D55F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x6F;</mtext></math>=<span>1D560</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x70;</mtext></math>=<span>1D561</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x71;</mtext></math>=<span>1D562</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x72;</mtext></math>=<span>1D563</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x73;</mtext></math>=<span>1D564</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x74;</mtext></math>=<span>1D565</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x75;</mtext></math>=<span>1D566</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x76;</mtext></math>=<span>1D567</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x77;</mtext></math>=<span>1D568</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x78;</mtext></math>=<span>1D569</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x79;</mtext></math>=<span>1D56A</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x7A;</mtext></math>=<span>1D56B</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x30;</mtext></math>=<span>1D7D8</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x31;</mtext></math>=<span>1D7D9</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x32;</mtext></math>=<span>1D7DA</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x33;</mtext></math>=<span>1D7DB</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x34;</mtext></math>=<span>1D7DC</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x35;</mtext></math>=<span>1D7DD</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x36;</mtext></math>=<span>1D7DE</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x37;</mtext></math>=<span>1D7DF</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x38;</mtext></math>=<span>1D7E0</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x39;</mtext></math>=<span>1D7E1</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x628;</mtext></math>=<span>1EEA1</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62C;</mtext></math>=<span>1EEA2</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62F;</mtext></math>=<span>1EEA3</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x648;</mtext></math>=<span>1EEA5</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x632;</mtext></math>=<span>1EEA6</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62D;</mtext></math>=<span>1EEA7</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x637;</mtext></math>=<span>1EEA8</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x64A;</mtext></math>=<span>1EEA9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x644;</mtext></math>=<span>1EEAB</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x645;</mtext></math>=<span>1EEAC</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x646;</mtext></math>=<span>1EEAD</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x633;</mtext></math>=<span>1EEAE</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x639;</mtext></math>=<span>1EEAF</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x641;</mtext></math>=<span>1EEB0</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x635;</mtext></math>=<span>1EEB1</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x642;</mtext></math>=<span>1EEB2</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x631;</mtext></math>=<span>1EEB3</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x634;</mtext></math>=<span>1EEB4</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62A;</mtext></math>=<span>1EEB5</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62B;</mtext></math>=<span>1EEB6</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x62E;</mtext></math>=<span>1EEB7</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x630;</mtext></math>=<span>1EEB8</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x636;</mtext></math>=<span>1EEB9</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x638;</mtext></math>=<span>1EEBA</span></span>
+ <span><math class="testfont"><mtext mathvariant="double-struck">&#x63A;</mtext></math>=<span>1EEBB</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur-ref.html
new file mode 100644
index 0000000000..3d1dd50a7d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant fraktur (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D504;</mtext></math>=<span>1D504</span></span>
+ <span><math class="testfont"><mtext>&#x1D505;</mtext></math>=<span>1D505</span></span>
+ <span><math class="testfont"><mtext>&#x212D;</mtext></math>=<span>0212D</span></span>
+ <span><math class="testfont"><mtext>&#x1D507;</mtext></math>=<span>1D507</span></span>
+ <span><math class="testfont"><mtext>&#x1D508;</mtext></math>=<span>1D508</span></span>
+ <span><math class="testfont"><mtext>&#x1D509;</mtext></math>=<span>1D509</span></span>
+ <span><math class="testfont"><mtext>&#x1D50A;</mtext></math>=<span>1D50A</span></span>
+ <span><math class="testfont"><mtext>&#x210C;</mtext></math>=<span>0210C</span></span>
+ <span><math class="testfont"><mtext>&#x2111;</mtext></math>=<span>02111</span></span>
+ <span><math class="testfont"><mtext>&#x1D50D;</mtext></math>=<span>1D50D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D50E;</mtext></math>=<span>1D50E</span></span>
+ <span><math class="testfont"><mtext>&#x1D50F;</mtext></math>=<span>1D50F</span></span>
+ <span><math class="testfont"><mtext>&#x1D510;</mtext></math>=<span>1D510</span></span>
+ <span><math class="testfont"><mtext>&#x1D511;</mtext></math>=<span>1D511</span></span>
+ <span><math class="testfont"><mtext>&#x1D512;</mtext></math>=<span>1D512</span></span>
+ <span><math class="testfont"><mtext>&#x1D513;</mtext></math>=<span>1D513</span></span>
+ <span><math class="testfont"><mtext>&#x1D514;</mtext></math>=<span>1D514</span></span>
+ <span><math class="testfont"><mtext>&#x211C;</mtext></math>=<span>0211C</span></span>
+ <span><math class="testfont"><mtext>&#x1D516;</mtext></math>=<span>1D516</span></span>
+ <span><math class="testfont"><mtext>&#x1D517;</mtext></math>=<span>1D517</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D518;</mtext></math>=<span>1D518</span></span>
+ <span><math class="testfont"><mtext>&#x1D519;</mtext></math>=<span>1D519</span></span>
+ <span><math class="testfont"><mtext>&#x1D51A;</mtext></math>=<span>1D51A</span></span>
+ <span><math class="testfont"><mtext>&#x1D51B;</mtext></math>=<span>1D51B</span></span>
+ <span><math class="testfont"><mtext>&#x1D51C;</mtext></math>=<span>1D51C</span></span>
+ <span><math class="testfont"><mtext>&#x2128;</mtext></math>=<span>02128</span></span>
+ <span><math class="testfont"><mtext>&#x1D51E;</mtext></math>=<span>1D51E</span></span>
+ <span><math class="testfont"><mtext>&#x1D51F;</mtext></math>=<span>1D51F</span></span>
+ <span><math class="testfont"><mtext>&#x1D520;</mtext></math>=<span>1D520</span></span>
+ <span><math class="testfont"><mtext>&#x1D521;</mtext></math>=<span>1D521</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D522;</mtext></math>=<span>1D522</span></span>
+ <span><math class="testfont"><mtext>&#x1D523;</mtext></math>=<span>1D523</span></span>
+ <span><math class="testfont"><mtext>&#x1D524;</mtext></math>=<span>1D524</span></span>
+ <span><math class="testfont"><mtext>&#x1D525;</mtext></math>=<span>1D525</span></span>
+ <span><math class="testfont"><mtext>&#x1D526;</mtext></math>=<span>1D526</span></span>
+ <span><math class="testfont"><mtext>&#x1D527;</mtext></math>=<span>1D527</span></span>
+ <span><math class="testfont"><mtext>&#x1D528;</mtext></math>=<span>1D528</span></span>
+ <span><math class="testfont"><mtext>&#x1D529;</mtext></math>=<span>1D529</span></span>
+ <span><math class="testfont"><mtext>&#x1D52A;</mtext></math>=<span>1D52A</span></span>
+ <span><math class="testfont"><mtext>&#x1D52B;</mtext></math>=<span>1D52B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D52C;</mtext></math>=<span>1D52C</span></span>
+ <span><math class="testfont"><mtext>&#x1D52D;</mtext></math>=<span>1D52D</span></span>
+ <span><math class="testfont"><mtext>&#x1D52E;</mtext></math>=<span>1D52E</span></span>
+ <span><math class="testfont"><mtext>&#x1D52F;</mtext></math>=<span>1D52F</span></span>
+ <span><math class="testfont"><mtext>&#x1D530;</mtext></math>=<span>1D530</span></span>
+ <span><math class="testfont"><mtext>&#x1D531;</mtext></math>=<span>1D531</span></span>
+ <span><math class="testfont"><mtext>&#x1D532;</mtext></math>=<span>1D532</span></span>
+ <span><math class="testfont"><mtext>&#x1D533;</mtext></math>=<span>1D533</span></span>
+ <span><math class="testfont"><mtext>&#x1D534;</mtext></math>=<span>1D534</span></span>
+ <span><math class="testfont"><mtext>&#x1D535;</mtext></math>=<span>1D535</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D536;</mtext></math>=<span>1D536</span></span>
+ <span><math class="testfont"><mtext>&#x1D537;</mtext></math>=<span>1D537</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur.html
new file mode 100644
index 0000000000..9c95cd06e7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-fraktur.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant fraktur</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#fraktur-mappings">
+<link rel="match" href="mathvariant-fraktur-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a fraktur mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-fraktur.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x41;</mtext></math>=<span>1D504</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x42;</mtext></math>=<span>1D505</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x43;</mtext></math>=<span>0212D</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x44;</mtext></math>=<span>1D507</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x45;</mtext></math>=<span>1D508</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x46;</mtext></math>=<span>1D509</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x47;</mtext></math>=<span>1D50A</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x48;</mtext></math>=<span>0210C</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x49;</mtext></math>=<span>02111</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4A;</mtext></math>=<span>1D50D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4B;</mtext></math>=<span>1D50E</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4C;</mtext></math>=<span>1D50F</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4D;</mtext></math>=<span>1D510</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4E;</mtext></math>=<span>1D511</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x4F;</mtext></math>=<span>1D512</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x50;</mtext></math>=<span>1D513</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x51;</mtext></math>=<span>1D514</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x52;</mtext></math>=<span>0211C</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x53;</mtext></math>=<span>1D516</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x54;</mtext></math>=<span>1D517</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x55;</mtext></math>=<span>1D518</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x56;</mtext></math>=<span>1D519</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x57;</mtext></math>=<span>1D51A</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x58;</mtext></math>=<span>1D51B</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x59;</mtext></math>=<span>1D51C</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x5A;</mtext></math>=<span>02128</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x61;</mtext></math>=<span>1D51E</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x62;</mtext></math>=<span>1D51F</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x63;</mtext></math>=<span>1D520</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x64;</mtext></math>=<span>1D521</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x65;</mtext></math>=<span>1D522</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x66;</mtext></math>=<span>1D523</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x67;</mtext></math>=<span>1D524</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x68;</mtext></math>=<span>1D525</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x69;</mtext></math>=<span>1D526</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6A;</mtext></math>=<span>1D527</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6B;</mtext></math>=<span>1D528</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6C;</mtext></math>=<span>1D529</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6D;</mtext></math>=<span>1D52A</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6E;</mtext></math>=<span>1D52B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x6F;</mtext></math>=<span>1D52C</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x70;</mtext></math>=<span>1D52D</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x71;</mtext></math>=<span>1D52E</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x72;</mtext></math>=<span>1D52F</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x73;</mtext></math>=<span>1D530</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x74;</mtext></math>=<span>1D531</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x75;</mtext></math>=<span>1D532</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x76;</mtext></math>=<span>1D533</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x77;</mtext></math>=<span>1D534</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x78;</mtext></math>=<span>1D535</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x79;</mtext></math>=<span>1D536</span></span>
+ <span><math class="testfont"><mtext mathvariant="fraktur">&#x7A;</mtext></math>=<span>1D537</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial-ref.html
new file mode 100644
index 0000000000..5d5b72a1c5
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant initial (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1EE21;</mtext></math>=<span>1EE21</span></span>
+ <span><math class="testfont"><mtext>&#x1EE22;</mtext></math>=<span>1EE22</span></span>
+ <span><math class="testfont"><mtext>&#x1EE24;</mtext></math>=<span>1EE24</span></span>
+ <span><math class="testfont"><mtext>&#x1EE27;</mtext></math>=<span>1EE27</span></span>
+ <span><math class="testfont"><mtext>&#x1EE29;</mtext></math>=<span>1EE29</span></span>
+ <span><math class="testfont"><mtext>&#x1EE2A;</mtext></math>=<span>1EE2A</span></span>
+ <span><math class="testfont"><mtext>&#x1EE2B;</mtext></math>=<span>1EE2B</span></span>
+ <span><math class="testfont"><mtext>&#x1EE2C;</mtext></math>=<span>1EE2C</span></span>
+ <span><math class="testfont"><mtext>&#x1EE2D;</mtext></math>=<span>1EE2D</span></span>
+ <span><math class="testfont"><mtext>&#x1EE2E;</mtext></math>=<span>1EE2E</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE2F;</mtext></math>=<span>1EE2F</span></span>
+ <span><math class="testfont"><mtext>&#x1EE30;</mtext></math>=<span>1EE30</span></span>
+ <span><math class="testfont"><mtext>&#x1EE31;</mtext></math>=<span>1EE31</span></span>
+ <span><math class="testfont"><mtext>&#x1EE32;</mtext></math>=<span>1EE32</span></span>
+ <span><math class="testfont"><mtext>&#x1EE34;</mtext></math>=<span>1EE34</span></span>
+ <span><math class="testfont"><mtext>&#x1EE35;</mtext></math>=<span>1EE35</span></span>
+ <span><math class="testfont"><mtext>&#x1EE36;</mtext></math>=<span>1EE36</span></span>
+ <span><math class="testfont"><mtext>&#x1EE37;</mtext></math>=<span>1EE37</span></span>
+ <span><math class="testfont"><mtext>&#x1EE39;</mtext></math>=<span>1EE39</span></span>
+ <span><math class="testfont"><mtext>&#x1EE3B;</mtext></math>=<span>1EE3B</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial.html
new file mode 100644
index 0000000000..3b0263a197
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-initial.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant initial</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#initial-mappings">
+<link rel="match" href="mathvariant-initial-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a initial mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-initial.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x628;</mtext></math>=<span>1EE21</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x62C;</mtext></math>=<span>1EE22</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x647;</mtext></math>=<span>1EE24</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x62D;</mtext></math>=<span>1EE27</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x64A;</mtext></math>=<span>1EE29</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x643;</mtext></math>=<span>1EE2A</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x644;</mtext></math>=<span>1EE2B</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x645;</mtext></math>=<span>1EE2C</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x646;</mtext></math>=<span>1EE2D</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x633;</mtext></math>=<span>1EE2E</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x639;</mtext></math>=<span>1EE2F</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x641;</mtext></math>=<span>1EE30</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x635;</mtext></math>=<span>1EE31</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x642;</mtext></math>=<span>1EE32</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x634;</mtext></math>=<span>1EE34</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x62A;</mtext></math>=<span>1EE35</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x62B;</mtext></math>=<span>1EE36</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x62E;</mtext></math>=<span>1EE37</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x636;</mtext></math>=<span>1EE39</span></span>
+ <span><math class="testfont"><mtext mathvariant="initial">&#x63A;</mtext></math>=<span>1EE3B</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic-ref.html
new file mode 100644
index 0000000000..e2078c2948
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic-ref.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D434;</mtext></math>=<span>1D434</span></span>
+ <span><math class="testfont"><mtext>&#x1D435;</mtext></math>=<span>1D435</span></span>
+ <span><math class="testfont"><mtext>&#x1D436;</mtext></math>=<span>1D436</span></span>
+ <span><math class="testfont"><mtext>&#x1D437;</mtext></math>=<span>1D437</span></span>
+ <span><math class="testfont"><mtext>&#x1D438;</mtext></math>=<span>1D438</span></span>
+ <span><math class="testfont"><mtext>&#x1D439;</mtext></math>=<span>1D439</span></span>
+ <span><math class="testfont"><mtext>&#x1D43A;</mtext></math>=<span>1D43A</span></span>
+ <span><math class="testfont"><mtext>&#x1D43B;</mtext></math>=<span>1D43B</span></span>
+ <span><math class="testfont"><mtext>&#x1D43C;</mtext></math>=<span>1D43C</span></span>
+ <span><math class="testfont"><mtext>&#x1D43D;</mtext></math>=<span>1D43D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D43E;</mtext></math>=<span>1D43E</span></span>
+ <span><math class="testfont"><mtext>&#x1D43F;</mtext></math>=<span>1D43F</span></span>
+ <span><math class="testfont"><mtext>&#x1D440;</mtext></math>=<span>1D440</span></span>
+ <span><math class="testfont"><mtext>&#x1D441;</mtext></math>=<span>1D441</span></span>
+ <span><math class="testfont"><mtext>&#x1D442;</mtext></math>=<span>1D442</span></span>
+ <span><math class="testfont"><mtext>&#x1D443;</mtext></math>=<span>1D443</span></span>
+ <span><math class="testfont"><mtext>&#x1D444;</mtext></math>=<span>1D444</span></span>
+ <span><math class="testfont"><mtext>&#x1D445;</mtext></math>=<span>1D445</span></span>
+ <span><math class="testfont"><mtext>&#x1D446;</mtext></math>=<span>1D446</span></span>
+ <span><math class="testfont"><mtext>&#x1D447;</mtext></math>=<span>1D447</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D448;</mtext></math>=<span>1D448</span></span>
+ <span><math class="testfont"><mtext>&#x1D449;</mtext></math>=<span>1D449</span></span>
+ <span><math class="testfont"><mtext>&#x1D44A;</mtext></math>=<span>1D44A</span></span>
+ <span><math class="testfont"><mtext>&#x1D44B;</mtext></math>=<span>1D44B</span></span>
+ <span><math class="testfont"><mtext>&#x1D44C;</mtext></math>=<span>1D44C</span></span>
+ <span><math class="testfont"><mtext>&#x1D44D;</mtext></math>=<span>1D44D</span></span>
+ <span><math class="testfont"><mtext>&#x1D44E;</mtext></math>=<span>1D44E</span></span>
+ <span><math class="testfont"><mtext>&#x1D44F;</mtext></math>=<span>1D44F</span></span>
+ <span><math class="testfont"><mtext>&#x1D450;</mtext></math>=<span>1D450</span></span>
+ <span><math class="testfont"><mtext>&#x1D451;</mtext></math>=<span>1D451</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D452;</mtext></math>=<span>1D452</span></span>
+ <span><math class="testfont"><mtext>&#x1D453;</mtext></math>=<span>1D453</span></span>
+ <span><math class="testfont"><mtext>&#x1D454;</mtext></math>=<span>1D454</span></span>
+ <span><math class="testfont"><mtext>&#x210E;</mtext></math>=<span>0210E</span></span>
+ <span><math class="testfont"><mtext>&#x1D456;</mtext></math>=<span>1D456</span></span>
+ <span><math class="testfont"><mtext>&#x1D457;</mtext></math>=<span>1D457</span></span>
+ <span><math class="testfont"><mtext>&#x1D458;</mtext></math>=<span>1D458</span></span>
+ <span><math class="testfont"><mtext>&#x1D459;</mtext></math>=<span>1D459</span></span>
+ <span><math class="testfont"><mtext>&#x1D45A;</mtext></math>=<span>1D45A</span></span>
+ <span><math class="testfont"><mtext>&#x1D45B;</mtext></math>=<span>1D45B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D45C;</mtext></math>=<span>1D45C</span></span>
+ <span><math class="testfont"><mtext>&#x1D45D;</mtext></math>=<span>1D45D</span></span>
+ <span><math class="testfont"><mtext>&#x1D45E;</mtext></math>=<span>1D45E</span></span>
+ <span><math class="testfont"><mtext>&#x1D45F;</mtext></math>=<span>1D45F</span></span>
+ <span><math class="testfont"><mtext>&#x1D460;</mtext></math>=<span>1D460</span></span>
+ <span><math class="testfont"><mtext>&#x1D461;</mtext></math>=<span>1D461</span></span>
+ <span><math class="testfont"><mtext>&#x1D462;</mtext></math>=<span>1D462</span></span>
+ <span><math class="testfont"><mtext>&#x1D463;</mtext></math>=<span>1D463</span></span>
+ <span><math class="testfont"><mtext>&#x1D464;</mtext></math>=<span>1D464</span></span>
+ <span><math class="testfont"><mtext>&#x1D465;</mtext></math>=<span>1D465</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D466;</mtext></math>=<span>1D466</span></span>
+ <span><math class="testfont"><mtext>&#x1D467;</mtext></math>=<span>1D467</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A4;</mtext></math>=<span>1D6A4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A5;</mtext></math>=<span>1D6A5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E2;</mtext></math>=<span>1D6E2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E3;</mtext></math>=<span>1D6E3</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E4;</mtext></math>=<span>1D6E4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E5;</mtext></math>=<span>1D6E5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E6;</mtext></math>=<span>1D6E6</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E7;</mtext></math>=<span>1D6E7</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6E8;</mtext></math>=<span>1D6E8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6E9;</mtext></math>=<span>1D6E9</span></span>
+ <span><math class="testfont"><mtext>&#x1D6EA;</mtext></math>=<span>1D6EA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6EB;</mtext></math>=<span>1D6EB</span></span>
+ <span><math class="testfont"><mtext>&#x1D6EC;</mtext></math>=<span>1D6EC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6ED;</mtext></math>=<span>1D6ED</span></span>
+ <span><math class="testfont"><mtext>&#x1D6EE;</mtext></math>=<span>1D6EE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6EF;</mtext></math>=<span>1D6EF</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F0;</mtext></math>=<span>1D6F0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F1;</mtext></math>=<span>1D6F1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6F2;</mtext></math>=<span>1D6F2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F3;</mtext></math>=<span>1D6F3</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F4;</mtext></math>=<span>1D6F4</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F5;</mtext></math>=<span>1D6F5</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F6;</mtext></math>=<span>1D6F6</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F7;</mtext></math>=<span>1D6F7</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F8;</mtext></math>=<span>1D6F8</span></span>
+ <span><math class="testfont"><mtext>&#x1D6F9;</mtext></math>=<span>1D6F9</span></span>
+ <span><math class="testfont"><mtext>&#x1D6FA;</mtext></math>=<span>1D6FA</span></span>
+ <span><math class="testfont"><mtext>&#x1D6FB;</mtext></math>=<span>1D6FB</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6FC;</mtext></math>=<span>1D6FC</span></span>
+ <span><math class="testfont"><mtext>&#x1D6FD;</mtext></math>=<span>1D6FD</span></span>
+ <span><math class="testfont"><mtext>&#x1D6FE;</mtext></math>=<span>1D6FE</span></span>
+ <span><math class="testfont"><mtext>&#x1D6FF;</mtext></math>=<span>1D6FF</span></span>
+ <span><math class="testfont"><mtext>&#x1D700;</mtext></math>=<span>1D700</span></span>
+ <span><math class="testfont"><mtext>&#x1D701;</mtext></math>=<span>1D701</span></span>
+ <span><math class="testfont"><mtext>&#x1D702;</mtext></math>=<span>1D702</span></span>
+ <span><math class="testfont"><mtext>&#x1D703;</mtext></math>=<span>1D703</span></span>
+ <span><math class="testfont"><mtext>&#x1D704;</mtext></math>=<span>1D704</span></span>
+ <span><math class="testfont"><mtext>&#x1D705;</mtext></math>=<span>1D705</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D706;</mtext></math>=<span>1D706</span></span>
+ <span><math class="testfont"><mtext>&#x1D707;</mtext></math>=<span>1D707</span></span>
+ <span><math class="testfont"><mtext>&#x1D708;</mtext></math>=<span>1D708</span></span>
+ <span><math class="testfont"><mtext>&#x1D709;</mtext></math>=<span>1D709</span></span>
+ <span><math class="testfont"><mtext>&#x1D70A;</mtext></math>=<span>1D70A</span></span>
+ <span><math class="testfont"><mtext>&#x1D70B;</mtext></math>=<span>1D70B</span></span>
+ <span><math class="testfont"><mtext>&#x1D70C;</mtext></math>=<span>1D70C</span></span>
+ <span><math class="testfont"><mtext>&#x1D70D;</mtext></math>=<span>1D70D</span></span>
+ <span><math class="testfont"><mtext>&#x1D70E;</mtext></math>=<span>1D70E</span></span>
+ <span><math class="testfont"><mtext>&#x1D70F;</mtext></math>=<span>1D70F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D710;</mtext></math>=<span>1D710</span></span>
+ <span><math class="testfont"><mtext>&#x1D711;</mtext></math>=<span>1D711</span></span>
+ <span><math class="testfont"><mtext>&#x1D712;</mtext></math>=<span>1D712</span></span>
+ <span><math class="testfont"><mtext>&#x1D713;</mtext></math>=<span>1D713</span></span>
+ <span><math class="testfont"><mtext>&#x1D714;</mtext></math>=<span>1D714</span></span>
+ <span><math class="testfont"><mtext>&#x1D715;</mtext></math>=<span>1D715</span></span>
+ <span><math class="testfont"><mtext>&#x1D716;</mtext></math>=<span>1D716</span></span>
+ <span><math class="testfont"><mtext>&#x1D717;</mtext></math>=<span>1D717</span></span>
+ <span><math class="testfont"><mtext>&#x1D718;</mtext></math>=<span>1D718</span></span>
+ <span><math class="testfont"><mtext>&#x1D719;</mtext></math>=<span>1D719</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D71A;</mtext></math>=<span>1D71A</span></span>
+ <span><math class="testfont"><mtext>&#x1D71B;</mtext></math>=<span>1D71B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic.html
new file mode 100644
index 0000000000..1e6aa6512d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-italic.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant italic</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#italic-mappings">
+<link rel="match" href="mathvariant-italic-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x41;</mtext></math>=<span>1D434</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x42;</mtext></math>=<span>1D435</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x43;</mtext></math>=<span>1D436</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x44;</mtext></math>=<span>1D437</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x45;</mtext></math>=<span>1D438</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x46;</mtext></math>=<span>1D439</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x47;</mtext></math>=<span>1D43A</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x48;</mtext></math>=<span>1D43B</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x49;</mtext></math>=<span>1D43C</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4A;</mtext></math>=<span>1D43D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4B;</mtext></math>=<span>1D43E</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4C;</mtext></math>=<span>1D43F</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4D;</mtext></math>=<span>1D440</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4E;</mtext></math>=<span>1D441</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x4F;</mtext></math>=<span>1D442</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x50;</mtext></math>=<span>1D443</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x51;</mtext></math>=<span>1D444</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x52;</mtext></math>=<span>1D445</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x53;</mtext></math>=<span>1D446</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x54;</mtext></math>=<span>1D447</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x55;</mtext></math>=<span>1D448</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x56;</mtext></math>=<span>1D449</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x57;</mtext></math>=<span>1D44A</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x58;</mtext></math>=<span>1D44B</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x59;</mtext></math>=<span>1D44C</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x5A;</mtext></math>=<span>1D44D</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x61;</mtext></math>=<span>1D44E</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x62;</mtext></math>=<span>1D44F</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x63;</mtext></math>=<span>1D450</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x64;</mtext></math>=<span>1D451</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x65;</mtext></math>=<span>1D452</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x66;</mtext></math>=<span>1D453</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x67;</mtext></math>=<span>1D454</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x68;</mtext></math>=<span>0210E</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x69;</mtext></math>=<span>1D456</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6A;</mtext></math>=<span>1D457</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6B;</mtext></math>=<span>1D458</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6C;</mtext></math>=<span>1D459</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6D;</mtext></math>=<span>1D45A</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6E;</mtext></math>=<span>1D45B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x6F;</mtext></math>=<span>1D45C</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x70;</mtext></math>=<span>1D45D</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x71;</mtext></math>=<span>1D45E</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x72;</mtext></math>=<span>1D45F</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x73;</mtext></math>=<span>1D460</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x74;</mtext></math>=<span>1D461</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x75;</mtext></math>=<span>1D462</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x76;</mtext></math>=<span>1D463</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x77;</mtext></math>=<span>1D464</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x78;</mtext></math>=<span>1D465</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x79;</mtext></math>=<span>1D466</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x7A;</mtext></math>=<span>1D467</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x131;</mtext></math>=<span>1D6A4</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x237;</mtext></math>=<span>1D6A5</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x391;</mtext></math>=<span>1D6E2</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x392;</mtext></math>=<span>1D6E3</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x393;</mtext></math>=<span>1D6E4</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x394;</mtext></math>=<span>1D6E5</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x395;</mtext></math>=<span>1D6E6</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x396;</mtext></math>=<span>1D6E7</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x397;</mtext></math>=<span>1D6E8</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x398;</mtext></math>=<span>1D6E9</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x399;</mtext></math>=<span>1D6EA</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39A;</mtext></math>=<span>1D6EB</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39B;</mtext></math>=<span>1D6EC</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39C;</mtext></math>=<span>1D6ED</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39D;</mtext></math>=<span>1D6EE</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39E;</mtext></math>=<span>1D6EF</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x39F;</mtext></math>=<span>1D6F0</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A0;</mtext></math>=<span>1D6F1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A1;</mtext></math>=<span>1D6F2</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3F4;</mtext></math>=<span>1D6F3</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A3;</mtext></math>=<span>1D6F4</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A4;</mtext></math>=<span>1D6F5</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A5;</mtext></math>=<span>1D6F6</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A6;</mtext></math>=<span>1D6F7</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A7;</mtext></math>=<span>1D6F8</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A8;</mtext></math>=<span>1D6F9</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3A9;</mtext></math>=<span>1D6FA</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x2207;</mtext></math>=<span>1D6FB</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B1;</mtext></math>=<span>1D6FC</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B2;</mtext></math>=<span>1D6FD</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B3;</mtext></math>=<span>1D6FE</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B4;</mtext></math>=<span>1D6FF</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B5;</mtext></math>=<span>1D700</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B6;</mtext></math>=<span>1D701</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B7;</mtext></math>=<span>1D702</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B8;</mtext></math>=<span>1D703</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3B9;</mtext></math>=<span>1D704</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BA;</mtext></math>=<span>1D705</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BB;</mtext></math>=<span>1D706</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BC;</mtext></math>=<span>1D707</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BD;</mtext></math>=<span>1D708</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BE;</mtext></math>=<span>1D709</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3BF;</mtext></math>=<span>1D70A</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C0;</mtext></math>=<span>1D70B</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C1;</mtext></math>=<span>1D70C</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C2;</mtext></math>=<span>1D70D</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C3;</mtext></math>=<span>1D70E</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C4;</mtext></math>=<span>1D70F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C5;</mtext></math>=<span>1D710</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C6;</mtext></math>=<span>1D711</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C7;</mtext></math>=<span>1D712</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C8;</mtext></math>=<span>1D713</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3C9;</mtext></math>=<span>1D714</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x2202;</mtext></math>=<span>1D715</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3F5;</mtext></math>=<span>1D716</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3D1;</mtext></math>=<span>1D717</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3F0;</mtext></math>=<span>1D718</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3D5;</mtext></math>=<span>1D719</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3F1;</mtext></math>=<span>1D71A</span></span>
+ <span><math class="testfont"><mtext mathvariant="italic">&#x3D6;</mtext></math>=<span>1D71B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped-ref.html
new file mode 100644
index 0000000000..f00e5d87bb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped-ref.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant looped (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1EE80;</mtext></math>=<span>1EE80</span></span>
+ <span><math class="testfont"><mtext>&#x1EE81;</mtext></math>=<span>1EE81</span></span>
+ <span><math class="testfont"><mtext>&#x1EE82;</mtext></math>=<span>1EE82</span></span>
+ <span><math class="testfont"><mtext>&#x1EE83;</mtext></math>=<span>1EE83</span></span>
+ <span><math class="testfont"><mtext>&#x1EE84;</mtext></math>=<span>1EE84</span></span>
+ <span><math class="testfont"><mtext>&#x1EE85;</mtext></math>=<span>1EE85</span></span>
+ <span><math class="testfont"><mtext>&#x1EE86;</mtext></math>=<span>1EE86</span></span>
+ <span><math class="testfont"><mtext>&#x1EE87;</mtext></math>=<span>1EE87</span></span>
+ <span><math class="testfont"><mtext>&#x1EE88;</mtext></math>=<span>1EE88</span></span>
+ <span><math class="testfont"><mtext>&#x1EE89;</mtext></math>=<span>1EE89</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE8B;</mtext></math>=<span>1EE8B</span></span>
+ <span><math class="testfont"><mtext>&#x1EE8C;</mtext></math>=<span>1EE8C</span></span>
+ <span><math class="testfont"><mtext>&#x1EE8D;</mtext></math>=<span>1EE8D</span></span>
+ <span><math class="testfont"><mtext>&#x1EE8E;</mtext></math>=<span>1EE8E</span></span>
+ <span><math class="testfont"><mtext>&#x1EE8F;</mtext></math>=<span>1EE8F</span></span>
+ <span><math class="testfont"><mtext>&#x1EE90;</mtext></math>=<span>1EE90</span></span>
+ <span><math class="testfont"><mtext>&#x1EE91;</mtext></math>=<span>1EE91</span></span>
+ <span><math class="testfont"><mtext>&#x1EE92;</mtext></math>=<span>1EE92</span></span>
+ <span><math class="testfont"><mtext>&#x1EE93;</mtext></math>=<span>1EE93</span></span>
+ <span><math class="testfont"><mtext>&#x1EE94;</mtext></math>=<span>1EE94</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE95;</mtext></math>=<span>1EE95</span></span>
+ <span><math class="testfont"><mtext>&#x1EE96;</mtext></math>=<span>1EE96</span></span>
+ <span><math class="testfont"><mtext>&#x1EE97;</mtext></math>=<span>1EE97</span></span>
+ <span><math class="testfont"><mtext>&#x1EE98;</mtext></math>=<span>1EE98</span></span>
+ <span><math class="testfont"><mtext>&#x1EE99;</mtext></math>=<span>1EE99</span></span>
+ <span><math class="testfont"><mtext>&#x1EE9A;</mtext></math>=<span>1EE9A</span></span>
+ <span><math class="testfont"><mtext>&#x1EE9B;</mtext></math>=<span>1EE9B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped.html
new file mode 100644
index 0000000000..b208849368
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-looped.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant looped</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#looped-mappings">
+<link rel="match" href="mathvariant-looped-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a looped mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-looped.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x627;</mtext></math>=<span>1EE80</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x628;</mtext></math>=<span>1EE81</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62C;</mtext></math>=<span>1EE82</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62F;</mtext></math>=<span>1EE83</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x647;</mtext></math>=<span>1EE84</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x648;</mtext></math>=<span>1EE85</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x632;</mtext></math>=<span>1EE86</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62D;</mtext></math>=<span>1EE87</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x637;</mtext></math>=<span>1EE88</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x64A;</mtext></math>=<span>1EE89</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x644;</mtext></math>=<span>1EE8B</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x645;</mtext></math>=<span>1EE8C</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x646;</mtext></math>=<span>1EE8D</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x633;</mtext></math>=<span>1EE8E</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x639;</mtext></math>=<span>1EE8F</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x641;</mtext></math>=<span>1EE90</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x635;</mtext></math>=<span>1EE91</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x642;</mtext></math>=<span>1EE92</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x631;</mtext></math>=<span>1EE93</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x634;</mtext></math>=<span>1EE94</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62A;</mtext></math>=<span>1EE95</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62B;</mtext></math>=<span>1EE96</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x62E;</mtext></math>=<span>1EE97</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x630;</mtext></math>=<span>1EE98</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x636;</mtext></math>=<span>1EE99</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x638;</mtext></math>=<span>1EE9A</span></span>
+ <span><math class="testfont"><mtext mathvariant="looped">&#x63A;</mtext></math>=<span>1EE9B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace-ref.html
new file mode 100644
index 0000000000..1d4a0c0a52
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace-ref.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant monospace (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D670;</mtext></math>=<span>1D670</span></span>
+ <span><math class="testfont"><mtext>&#x1D671;</mtext></math>=<span>1D671</span></span>
+ <span><math class="testfont"><mtext>&#x1D672;</mtext></math>=<span>1D672</span></span>
+ <span><math class="testfont"><mtext>&#x1D673;</mtext></math>=<span>1D673</span></span>
+ <span><math class="testfont"><mtext>&#x1D674;</mtext></math>=<span>1D674</span></span>
+ <span><math class="testfont"><mtext>&#x1D675;</mtext></math>=<span>1D675</span></span>
+ <span><math class="testfont"><mtext>&#x1D676;</mtext></math>=<span>1D676</span></span>
+ <span><math class="testfont"><mtext>&#x1D677;</mtext></math>=<span>1D677</span></span>
+ <span><math class="testfont"><mtext>&#x1D678;</mtext></math>=<span>1D678</span></span>
+ <span><math class="testfont"><mtext>&#x1D679;</mtext></math>=<span>1D679</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D67A;</mtext></math>=<span>1D67A</span></span>
+ <span><math class="testfont"><mtext>&#x1D67B;</mtext></math>=<span>1D67B</span></span>
+ <span><math class="testfont"><mtext>&#x1D67C;</mtext></math>=<span>1D67C</span></span>
+ <span><math class="testfont"><mtext>&#x1D67D;</mtext></math>=<span>1D67D</span></span>
+ <span><math class="testfont"><mtext>&#x1D67E;</mtext></math>=<span>1D67E</span></span>
+ <span><math class="testfont"><mtext>&#x1D67F;</mtext></math>=<span>1D67F</span></span>
+ <span><math class="testfont"><mtext>&#x1D680;</mtext></math>=<span>1D680</span></span>
+ <span><math class="testfont"><mtext>&#x1D681;</mtext></math>=<span>1D681</span></span>
+ <span><math class="testfont"><mtext>&#x1D682;</mtext></math>=<span>1D682</span></span>
+ <span><math class="testfont"><mtext>&#x1D683;</mtext></math>=<span>1D683</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D684;</mtext></math>=<span>1D684</span></span>
+ <span><math class="testfont"><mtext>&#x1D685;</mtext></math>=<span>1D685</span></span>
+ <span><math class="testfont"><mtext>&#x1D686;</mtext></math>=<span>1D686</span></span>
+ <span><math class="testfont"><mtext>&#x1D687;</mtext></math>=<span>1D687</span></span>
+ <span><math class="testfont"><mtext>&#x1D688;</mtext></math>=<span>1D688</span></span>
+ <span><math class="testfont"><mtext>&#x1D689;</mtext></math>=<span>1D689</span></span>
+ <span><math class="testfont"><mtext>&#x1D68A;</mtext></math>=<span>1D68A</span></span>
+ <span><math class="testfont"><mtext>&#x1D68B;</mtext></math>=<span>1D68B</span></span>
+ <span><math class="testfont"><mtext>&#x1D68C;</mtext></math>=<span>1D68C</span></span>
+ <span><math class="testfont"><mtext>&#x1D68D;</mtext></math>=<span>1D68D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D68E;</mtext></math>=<span>1D68E</span></span>
+ <span><math class="testfont"><mtext>&#x1D68F;</mtext></math>=<span>1D68F</span></span>
+ <span><math class="testfont"><mtext>&#x1D690;</mtext></math>=<span>1D690</span></span>
+ <span><math class="testfont"><mtext>&#x1D691;</mtext></math>=<span>1D691</span></span>
+ <span><math class="testfont"><mtext>&#x1D692;</mtext></math>=<span>1D692</span></span>
+ <span><math class="testfont"><mtext>&#x1D693;</mtext></math>=<span>1D693</span></span>
+ <span><math class="testfont"><mtext>&#x1D694;</mtext></math>=<span>1D694</span></span>
+ <span><math class="testfont"><mtext>&#x1D695;</mtext></math>=<span>1D695</span></span>
+ <span><math class="testfont"><mtext>&#x1D696;</mtext></math>=<span>1D696</span></span>
+ <span><math class="testfont"><mtext>&#x1D697;</mtext></math>=<span>1D697</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D698;</mtext></math>=<span>1D698</span></span>
+ <span><math class="testfont"><mtext>&#x1D699;</mtext></math>=<span>1D699</span></span>
+ <span><math class="testfont"><mtext>&#x1D69A;</mtext></math>=<span>1D69A</span></span>
+ <span><math class="testfont"><mtext>&#x1D69B;</mtext></math>=<span>1D69B</span></span>
+ <span><math class="testfont"><mtext>&#x1D69C;</mtext></math>=<span>1D69C</span></span>
+ <span><math class="testfont"><mtext>&#x1D69D;</mtext></math>=<span>1D69D</span></span>
+ <span><math class="testfont"><mtext>&#x1D69E;</mtext></math>=<span>1D69E</span></span>
+ <span><math class="testfont"><mtext>&#x1D69F;</mtext></math>=<span>1D69F</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A0;</mtext></math>=<span>1D6A0</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A1;</mtext></math>=<span>1D6A1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D6A2;</mtext></math>=<span>1D6A2</span></span>
+ <span><math class="testfont"><mtext>&#x1D6A3;</mtext></math>=<span>1D6A3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F6;</mtext></math>=<span>1D7F6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F7;</mtext></math>=<span>1D7F7</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F8;</mtext></math>=<span>1D7F8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7F9;</mtext></math>=<span>1D7F9</span></span>
+ <span><math class="testfont"><mtext>&#x1D7FA;</mtext></math>=<span>1D7FA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7FB;</mtext></math>=<span>1D7FB</span></span>
+ <span><math class="testfont"><mtext>&#x1D7FC;</mtext></math>=<span>1D7FC</span></span>
+ <span><math class="testfont"><mtext>&#x1D7FD;</mtext></math>=<span>1D7FD</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7FE;</mtext></math>=<span>1D7FE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7FF;</mtext></math>=<span>1D7FF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace.html
new file mode 100644
index 0000000000..ad5541fe0e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-monospace.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant monospace</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#monospace-mappings">
+<link rel="match" href="mathvariant-monospace-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a monospace mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-monospace.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x41;</mtext></math>=<span>1D670</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x42;</mtext></math>=<span>1D671</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x43;</mtext></math>=<span>1D672</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x44;</mtext></math>=<span>1D673</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x45;</mtext></math>=<span>1D674</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x46;</mtext></math>=<span>1D675</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x47;</mtext></math>=<span>1D676</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x48;</mtext></math>=<span>1D677</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x49;</mtext></math>=<span>1D678</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4A;</mtext></math>=<span>1D679</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4B;</mtext></math>=<span>1D67A</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4C;</mtext></math>=<span>1D67B</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4D;</mtext></math>=<span>1D67C</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4E;</mtext></math>=<span>1D67D</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x4F;</mtext></math>=<span>1D67E</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x50;</mtext></math>=<span>1D67F</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x51;</mtext></math>=<span>1D680</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x52;</mtext></math>=<span>1D681</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x53;</mtext></math>=<span>1D682</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x54;</mtext></math>=<span>1D683</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x55;</mtext></math>=<span>1D684</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x56;</mtext></math>=<span>1D685</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x57;</mtext></math>=<span>1D686</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x58;</mtext></math>=<span>1D687</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x59;</mtext></math>=<span>1D688</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x5A;</mtext></math>=<span>1D689</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x61;</mtext></math>=<span>1D68A</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x62;</mtext></math>=<span>1D68B</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x63;</mtext></math>=<span>1D68C</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x64;</mtext></math>=<span>1D68D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x65;</mtext></math>=<span>1D68E</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x66;</mtext></math>=<span>1D68F</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x67;</mtext></math>=<span>1D690</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x68;</mtext></math>=<span>1D691</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x69;</mtext></math>=<span>1D692</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6A;</mtext></math>=<span>1D693</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6B;</mtext></math>=<span>1D694</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6C;</mtext></math>=<span>1D695</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6D;</mtext></math>=<span>1D696</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6E;</mtext></math>=<span>1D697</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x6F;</mtext></math>=<span>1D698</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x70;</mtext></math>=<span>1D699</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x71;</mtext></math>=<span>1D69A</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x72;</mtext></math>=<span>1D69B</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x73;</mtext></math>=<span>1D69C</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x74;</mtext></math>=<span>1D69D</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x75;</mtext></math>=<span>1D69E</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x76;</mtext></math>=<span>1D69F</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x77;</mtext></math>=<span>1D6A0</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x78;</mtext></math>=<span>1D6A1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x79;</mtext></math>=<span>1D6A2</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x7A;</mtext></math>=<span>1D6A3</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x30;</mtext></math>=<span>1D7F6</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x31;</mtext></math>=<span>1D7F7</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x32;</mtext></math>=<span>1D7F8</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x33;</mtext></math>=<span>1D7F9</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x34;</mtext></math>=<span>1D7FA</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x35;</mtext></math>=<span>1D7FB</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x36;</mtext></math>=<span>1D7FC</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x37;</mtext></math>=<span>1D7FD</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x38;</mtext></math>=<span>1D7FE</span></span>
+ <span><math class="testfont"><mtext mathvariant="monospace">&#x39;</mtext></math>=<span>1D7FF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic-ref.html
new file mode 100644
index 0000000000..f918db9b48
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic-ref.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif-bold-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D63C;</mtext></math>=<span>1D63C</span></span>
+ <span><math class="testfont"><mtext>&#x1D63D;</mtext></math>=<span>1D63D</span></span>
+ <span><math class="testfont"><mtext>&#x1D63E;</mtext></math>=<span>1D63E</span></span>
+ <span><math class="testfont"><mtext>&#x1D63F;</mtext></math>=<span>1D63F</span></span>
+ <span><math class="testfont"><mtext>&#x1D640;</mtext></math>=<span>1D640</span></span>
+ <span><math class="testfont"><mtext>&#x1D641;</mtext></math>=<span>1D641</span></span>
+ <span><math class="testfont"><mtext>&#x1D642;</mtext></math>=<span>1D642</span></span>
+ <span><math class="testfont"><mtext>&#x1D643;</mtext></math>=<span>1D643</span></span>
+ <span><math class="testfont"><mtext>&#x1D644;</mtext></math>=<span>1D644</span></span>
+ <span><math class="testfont"><mtext>&#x1D645;</mtext></math>=<span>1D645</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D646;</mtext></math>=<span>1D646</span></span>
+ <span><math class="testfont"><mtext>&#x1D647;</mtext></math>=<span>1D647</span></span>
+ <span><math class="testfont"><mtext>&#x1D648;</mtext></math>=<span>1D648</span></span>
+ <span><math class="testfont"><mtext>&#x1D649;</mtext></math>=<span>1D649</span></span>
+ <span><math class="testfont"><mtext>&#x1D64A;</mtext></math>=<span>1D64A</span></span>
+ <span><math class="testfont"><mtext>&#x1D64B;</mtext></math>=<span>1D64B</span></span>
+ <span><math class="testfont"><mtext>&#x1D64C;</mtext></math>=<span>1D64C</span></span>
+ <span><math class="testfont"><mtext>&#x1D64D;</mtext></math>=<span>1D64D</span></span>
+ <span><math class="testfont"><mtext>&#x1D64E;</mtext></math>=<span>1D64E</span></span>
+ <span><math class="testfont"><mtext>&#x1D64F;</mtext></math>=<span>1D64F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D650;</mtext></math>=<span>1D650</span></span>
+ <span><math class="testfont"><mtext>&#x1D651;</mtext></math>=<span>1D651</span></span>
+ <span><math class="testfont"><mtext>&#x1D652;</mtext></math>=<span>1D652</span></span>
+ <span><math class="testfont"><mtext>&#x1D653;</mtext></math>=<span>1D653</span></span>
+ <span><math class="testfont"><mtext>&#x1D654;</mtext></math>=<span>1D654</span></span>
+ <span><math class="testfont"><mtext>&#x1D655;</mtext></math>=<span>1D655</span></span>
+ <span><math class="testfont"><mtext>&#x1D656;</mtext></math>=<span>1D656</span></span>
+ <span><math class="testfont"><mtext>&#x1D657;</mtext></math>=<span>1D657</span></span>
+ <span><math class="testfont"><mtext>&#x1D658;</mtext></math>=<span>1D658</span></span>
+ <span><math class="testfont"><mtext>&#x1D659;</mtext></math>=<span>1D659</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D65A;</mtext></math>=<span>1D65A</span></span>
+ <span><math class="testfont"><mtext>&#x1D65B;</mtext></math>=<span>1D65B</span></span>
+ <span><math class="testfont"><mtext>&#x1D65C;</mtext></math>=<span>1D65C</span></span>
+ <span><math class="testfont"><mtext>&#x1D65D;</mtext></math>=<span>1D65D</span></span>
+ <span><math class="testfont"><mtext>&#x1D65E;</mtext></math>=<span>1D65E</span></span>
+ <span><math class="testfont"><mtext>&#x1D65F;</mtext></math>=<span>1D65F</span></span>
+ <span><math class="testfont"><mtext>&#x1D660;</mtext></math>=<span>1D660</span></span>
+ <span><math class="testfont"><mtext>&#x1D661;</mtext></math>=<span>1D661</span></span>
+ <span><math class="testfont"><mtext>&#x1D662;</mtext></math>=<span>1D662</span></span>
+ <span><math class="testfont"><mtext>&#x1D663;</mtext></math>=<span>1D663</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D664;</mtext></math>=<span>1D664</span></span>
+ <span><math class="testfont"><mtext>&#x1D665;</mtext></math>=<span>1D665</span></span>
+ <span><math class="testfont"><mtext>&#x1D666;</mtext></math>=<span>1D666</span></span>
+ <span><math class="testfont"><mtext>&#x1D667;</mtext></math>=<span>1D667</span></span>
+ <span><math class="testfont"><mtext>&#x1D668;</mtext></math>=<span>1D668</span></span>
+ <span><math class="testfont"><mtext>&#x1D669;</mtext></math>=<span>1D669</span></span>
+ <span><math class="testfont"><mtext>&#x1D66A;</mtext></math>=<span>1D66A</span></span>
+ <span><math class="testfont"><mtext>&#x1D66B;</mtext></math>=<span>1D66B</span></span>
+ <span><math class="testfont"><mtext>&#x1D66C;</mtext></math>=<span>1D66C</span></span>
+ <span><math class="testfont"><mtext>&#x1D66D;</mtext></math>=<span>1D66D</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D66E;</mtext></math>=<span>1D66E</span></span>
+ <span><math class="testfont"><mtext>&#x1D66F;</mtext></math>=<span>1D66F</span></span>
+ <span><math class="testfont"><mtext>&#x1D790;</mtext></math>=<span>1D790</span></span>
+ <span><math class="testfont"><mtext>&#x1D791;</mtext></math>=<span>1D791</span></span>
+ <span><math class="testfont"><mtext>&#x1D792;</mtext></math>=<span>1D792</span></span>
+ <span><math class="testfont"><mtext>&#x1D793;</mtext></math>=<span>1D793</span></span>
+ <span><math class="testfont"><mtext>&#x1D794;</mtext></math>=<span>1D794</span></span>
+ <span><math class="testfont"><mtext>&#x1D795;</mtext></math>=<span>1D795</span></span>
+ <span><math class="testfont"><mtext>&#x1D796;</mtext></math>=<span>1D796</span></span>
+ <span><math class="testfont"><mtext>&#x1D797;</mtext></math>=<span>1D797</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D798;</mtext></math>=<span>1D798</span></span>
+ <span><math class="testfont"><mtext>&#x1D799;</mtext></math>=<span>1D799</span></span>
+ <span><math class="testfont"><mtext>&#x1D79A;</mtext></math>=<span>1D79A</span></span>
+ <span><math class="testfont"><mtext>&#x1D79B;</mtext></math>=<span>1D79B</span></span>
+ <span><math class="testfont"><mtext>&#x1D79C;</mtext></math>=<span>1D79C</span></span>
+ <span><math class="testfont"><mtext>&#x1D79D;</mtext></math>=<span>1D79D</span></span>
+ <span><math class="testfont"><mtext>&#x1D79E;</mtext></math>=<span>1D79E</span></span>
+ <span><math class="testfont"><mtext>&#x1D79F;</mtext></math>=<span>1D79F</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A0;</mtext></math>=<span>1D7A0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A1;</mtext></math>=<span>1D7A1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7A2;</mtext></math>=<span>1D7A2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A3;</mtext></math>=<span>1D7A3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A4;</mtext></math>=<span>1D7A4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A5;</mtext></math>=<span>1D7A5</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A6;</mtext></math>=<span>1D7A6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A7;</mtext></math>=<span>1D7A7</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A8;</mtext></math>=<span>1D7A8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7A9;</mtext></math>=<span>1D7A9</span></span>
+ <span><math class="testfont"><mtext>&#x1D7AA;</mtext></math>=<span>1D7AA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7AB;</mtext></math>=<span>1D7AB</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7AC;</mtext></math>=<span>1D7AC</span></span>
+ <span><math class="testfont"><mtext>&#x1D7AD;</mtext></math>=<span>1D7AD</span></span>
+ <span><math class="testfont"><mtext>&#x1D7AE;</mtext></math>=<span>1D7AE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7AF;</mtext></math>=<span>1D7AF</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B0;</mtext></math>=<span>1D7B0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B1;</mtext></math>=<span>1D7B1</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B2;</mtext></math>=<span>1D7B2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B3;</mtext></math>=<span>1D7B3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B4;</mtext></math>=<span>1D7B4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B5;</mtext></math>=<span>1D7B5</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7B6;</mtext></math>=<span>1D7B6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B7;</mtext></math>=<span>1D7B7</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B8;</mtext></math>=<span>1D7B8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7B9;</mtext></math>=<span>1D7B9</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BA;</mtext></math>=<span>1D7BA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BB;</mtext></math>=<span>1D7BB</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BC;</mtext></math>=<span>1D7BC</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BD;</mtext></math>=<span>1D7BD</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BE;</mtext></math>=<span>1D7BE</span></span>
+ <span><math class="testfont"><mtext>&#x1D7BF;</mtext></math>=<span>1D7BF</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7C0;</mtext></math>=<span>1D7C0</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C1;</mtext></math>=<span>1D7C1</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C2;</mtext></math>=<span>1D7C2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C3;</mtext></math>=<span>1D7C3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C4;</mtext></math>=<span>1D7C4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C5;</mtext></math>=<span>1D7C5</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C6;</mtext></math>=<span>1D7C6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C7;</mtext></math>=<span>1D7C7</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C8;</mtext></math>=<span>1D7C8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7C9;</mtext></math>=<span>1D7C9</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic.html
new file mode 100644
index 0000000000..d51afe4345
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-bold-italic.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif-bold-italic</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#sans-serif-bold-italic-mappings">
+<link rel="match" href="mathvariant-sans-serif-bold-italic-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a sans-serif-bold-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-bold-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x41;</mtext></math>=<span>1D63C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x42;</mtext></math>=<span>1D63D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x43;</mtext></math>=<span>1D63E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x44;</mtext></math>=<span>1D63F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x45;</mtext></math>=<span>1D640</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x46;</mtext></math>=<span>1D641</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x47;</mtext></math>=<span>1D642</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x48;</mtext></math>=<span>1D643</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x49;</mtext></math>=<span>1D644</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4A;</mtext></math>=<span>1D645</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4B;</mtext></math>=<span>1D646</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4C;</mtext></math>=<span>1D647</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4D;</mtext></math>=<span>1D648</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4E;</mtext></math>=<span>1D649</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x4F;</mtext></math>=<span>1D64A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x50;</mtext></math>=<span>1D64B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x51;</mtext></math>=<span>1D64C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x52;</mtext></math>=<span>1D64D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x53;</mtext></math>=<span>1D64E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x54;</mtext></math>=<span>1D64F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x55;</mtext></math>=<span>1D650</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x56;</mtext></math>=<span>1D651</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x57;</mtext></math>=<span>1D652</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x58;</mtext></math>=<span>1D653</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x59;</mtext></math>=<span>1D654</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x5A;</mtext></math>=<span>1D655</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x61;</mtext></math>=<span>1D656</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x62;</mtext></math>=<span>1D657</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x63;</mtext></math>=<span>1D658</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x64;</mtext></math>=<span>1D659</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x65;</mtext></math>=<span>1D65A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x66;</mtext></math>=<span>1D65B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x67;</mtext></math>=<span>1D65C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x68;</mtext></math>=<span>1D65D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x69;</mtext></math>=<span>1D65E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6A;</mtext></math>=<span>1D65F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6B;</mtext></math>=<span>1D660</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6C;</mtext></math>=<span>1D661</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6D;</mtext></math>=<span>1D662</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6E;</mtext></math>=<span>1D663</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x6F;</mtext></math>=<span>1D664</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x70;</mtext></math>=<span>1D665</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x71;</mtext></math>=<span>1D666</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x72;</mtext></math>=<span>1D667</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x73;</mtext></math>=<span>1D668</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x74;</mtext></math>=<span>1D669</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x75;</mtext></math>=<span>1D66A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x76;</mtext></math>=<span>1D66B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x77;</mtext></math>=<span>1D66C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x78;</mtext></math>=<span>1D66D</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x79;</mtext></math>=<span>1D66E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x7A;</mtext></math>=<span>1D66F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x391;</mtext></math>=<span>1D790</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x392;</mtext></math>=<span>1D791</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x393;</mtext></math>=<span>1D792</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x394;</mtext></math>=<span>1D793</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x395;</mtext></math>=<span>1D794</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x396;</mtext></math>=<span>1D795</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x397;</mtext></math>=<span>1D796</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x398;</mtext></math>=<span>1D797</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x399;</mtext></math>=<span>1D798</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39A;</mtext></math>=<span>1D799</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39B;</mtext></math>=<span>1D79A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39C;</mtext></math>=<span>1D79B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39D;</mtext></math>=<span>1D79C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39E;</mtext></math>=<span>1D79D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x39F;</mtext></math>=<span>1D79E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A0;</mtext></math>=<span>1D79F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A1;</mtext></math>=<span>1D7A0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3F4;</mtext></math>=<span>1D7A1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A3;</mtext></math>=<span>1D7A2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A4;</mtext></math>=<span>1D7A3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A5;</mtext></math>=<span>1D7A4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A6;</mtext></math>=<span>1D7A5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A7;</mtext></math>=<span>1D7A6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A8;</mtext></math>=<span>1D7A7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3A9;</mtext></math>=<span>1D7A8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x2207;</mtext></math>=<span>1D7A9</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B1;</mtext></math>=<span>1D7AA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B2;</mtext></math>=<span>1D7AB</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B3;</mtext></math>=<span>1D7AC</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B4;</mtext></math>=<span>1D7AD</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B5;</mtext></math>=<span>1D7AE</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B6;</mtext></math>=<span>1D7AF</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B7;</mtext></math>=<span>1D7B0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B8;</mtext></math>=<span>1D7B1</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3B9;</mtext></math>=<span>1D7B2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BA;</mtext></math>=<span>1D7B3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BB;</mtext></math>=<span>1D7B4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BC;</mtext></math>=<span>1D7B5</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BD;</mtext></math>=<span>1D7B6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BE;</mtext></math>=<span>1D7B7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3BF;</mtext></math>=<span>1D7B8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C0;</mtext></math>=<span>1D7B9</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C1;</mtext></math>=<span>1D7BA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C2;</mtext></math>=<span>1D7BB</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C3;</mtext></math>=<span>1D7BC</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C4;</mtext></math>=<span>1D7BD</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C5;</mtext></math>=<span>1D7BE</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C6;</mtext></math>=<span>1D7BF</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C7;</mtext></math>=<span>1D7C0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C8;</mtext></math>=<span>1D7C1</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3C9;</mtext></math>=<span>1D7C2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x2202;</mtext></math>=<span>1D7C3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3F5;</mtext></math>=<span>1D7C4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3D1;</mtext></math>=<span>1D7C5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3F0;</mtext></math>=<span>1D7C6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3D5;</mtext></math>=<span>1D7C7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3F1;</mtext></math>=<span>1D7C8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-bold-italic">&#x3D6;</mtext></math>=<span>1D7C9</span></span><br/>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic-ref.html
new file mode 100644
index 0000000000..d7e23248c6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif-italic (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D608;</mtext></math>=<span>1D608</span></span>
+ <span><math class="testfont"><mtext>&#x1D609;</mtext></math>=<span>1D609</span></span>
+ <span><math class="testfont"><mtext>&#x1D60A;</mtext></math>=<span>1D60A</span></span>
+ <span><math class="testfont"><mtext>&#x1D60B;</mtext></math>=<span>1D60B</span></span>
+ <span><math class="testfont"><mtext>&#x1D60C;</mtext></math>=<span>1D60C</span></span>
+ <span><math class="testfont"><mtext>&#x1D60D;</mtext></math>=<span>1D60D</span></span>
+ <span><math class="testfont"><mtext>&#x1D60E;</mtext></math>=<span>1D60E</span></span>
+ <span><math class="testfont"><mtext>&#x1D60F;</mtext></math>=<span>1D60F</span></span>
+ <span><math class="testfont"><mtext>&#x1D610;</mtext></math>=<span>1D610</span></span>
+ <span><math class="testfont"><mtext>&#x1D611;</mtext></math>=<span>1D611</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D612;</mtext></math>=<span>1D612</span></span>
+ <span><math class="testfont"><mtext>&#x1D613;</mtext></math>=<span>1D613</span></span>
+ <span><math class="testfont"><mtext>&#x1D614;</mtext></math>=<span>1D614</span></span>
+ <span><math class="testfont"><mtext>&#x1D615;</mtext></math>=<span>1D615</span></span>
+ <span><math class="testfont"><mtext>&#x1D616;</mtext></math>=<span>1D616</span></span>
+ <span><math class="testfont"><mtext>&#x1D617;</mtext></math>=<span>1D617</span></span>
+ <span><math class="testfont"><mtext>&#x1D618;</mtext></math>=<span>1D618</span></span>
+ <span><math class="testfont"><mtext>&#x1D619;</mtext></math>=<span>1D619</span></span>
+ <span><math class="testfont"><mtext>&#x1D61A;</mtext></math>=<span>1D61A</span></span>
+ <span><math class="testfont"><mtext>&#x1D61B;</mtext></math>=<span>1D61B</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D61C;</mtext></math>=<span>1D61C</span></span>
+ <span><math class="testfont"><mtext>&#x1D61D;</mtext></math>=<span>1D61D</span></span>
+ <span><math class="testfont"><mtext>&#x1D61E;</mtext></math>=<span>1D61E</span></span>
+ <span><math class="testfont"><mtext>&#x1D61F;</mtext></math>=<span>1D61F</span></span>
+ <span><math class="testfont"><mtext>&#x1D620;</mtext></math>=<span>1D620</span></span>
+ <span><math class="testfont"><mtext>&#x1D621;</mtext></math>=<span>1D621</span></span>
+ <span><math class="testfont"><mtext>&#x1D622;</mtext></math>=<span>1D622</span></span>
+ <span><math class="testfont"><mtext>&#x1D623;</mtext></math>=<span>1D623</span></span>
+ <span><math class="testfont"><mtext>&#x1D624;</mtext></math>=<span>1D624</span></span>
+ <span><math class="testfont"><mtext>&#x1D625;</mtext></math>=<span>1D625</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D626;</mtext></math>=<span>1D626</span></span>
+ <span><math class="testfont"><mtext>&#x1D627;</mtext></math>=<span>1D627</span></span>
+ <span><math class="testfont"><mtext>&#x1D628;</mtext></math>=<span>1D628</span></span>
+ <span><math class="testfont"><mtext>&#x1D629;</mtext></math>=<span>1D629</span></span>
+ <span><math class="testfont"><mtext>&#x1D62A;</mtext></math>=<span>1D62A</span></span>
+ <span><math class="testfont"><mtext>&#x1D62B;</mtext></math>=<span>1D62B</span></span>
+ <span><math class="testfont"><mtext>&#x1D62C;</mtext></math>=<span>1D62C</span></span>
+ <span><math class="testfont"><mtext>&#x1D62D;</mtext></math>=<span>1D62D</span></span>
+ <span><math class="testfont"><mtext>&#x1D62E;</mtext></math>=<span>1D62E</span></span>
+ <span><math class="testfont"><mtext>&#x1D62F;</mtext></math>=<span>1D62F</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D630;</mtext></math>=<span>1D630</span></span>
+ <span><math class="testfont"><mtext>&#x1D631;</mtext></math>=<span>1D631</span></span>
+ <span><math class="testfont"><mtext>&#x1D632;</mtext></math>=<span>1D632</span></span>
+ <span><math class="testfont"><mtext>&#x1D633;</mtext></math>=<span>1D633</span></span>
+ <span><math class="testfont"><mtext>&#x1D634;</mtext></math>=<span>1D634</span></span>
+ <span><math class="testfont"><mtext>&#x1D635;</mtext></math>=<span>1D635</span></span>
+ <span><math class="testfont"><mtext>&#x1D636;</mtext></math>=<span>1D636</span></span>
+ <span><math class="testfont"><mtext>&#x1D637;</mtext></math>=<span>1D637</span></span>
+ <span><math class="testfont"><mtext>&#x1D638;</mtext></math>=<span>1D638</span></span>
+ <span><math class="testfont"><mtext>&#x1D639;</mtext></math>=<span>1D639</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D63A;</mtext></math>=<span>1D63A</span></span>
+ <span><math class="testfont"><mtext>&#x1D63B;</mtext></math>=<span>1D63B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic.html
new file mode 100644
index 0000000000..e847ca9bb8
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-italic.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif-italic</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#sans-serif-italic-mappings">
+<link rel="match" href="mathvariant-sans-serif-italic-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a sans-serif-italic mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif-italic.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x41;</mtext></math>=<span>1D608</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x42;</mtext></math>=<span>1D609</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x43;</mtext></math>=<span>1D60A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x44;</mtext></math>=<span>1D60B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x45;</mtext></math>=<span>1D60C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x46;</mtext></math>=<span>1D60D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x47;</mtext></math>=<span>1D60E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x48;</mtext></math>=<span>1D60F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x49;</mtext></math>=<span>1D610</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4A;</mtext></math>=<span>1D611</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4B;</mtext></math>=<span>1D612</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4C;</mtext></math>=<span>1D613</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4D;</mtext></math>=<span>1D614</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4E;</mtext></math>=<span>1D615</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x4F;</mtext></math>=<span>1D616</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x50;</mtext></math>=<span>1D617</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x51;</mtext></math>=<span>1D618</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x52;</mtext></math>=<span>1D619</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x53;</mtext></math>=<span>1D61A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x54;</mtext></math>=<span>1D61B</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x55;</mtext></math>=<span>1D61C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x56;</mtext></math>=<span>1D61D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x57;</mtext></math>=<span>1D61E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x58;</mtext></math>=<span>1D61F</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x59;</mtext></math>=<span>1D620</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x5A;</mtext></math>=<span>1D621</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x61;</mtext></math>=<span>1D622</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x62;</mtext></math>=<span>1D623</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x63;</mtext></math>=<span>1D624</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x64;</mtext></math>=<span>1D625</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x65;</mtext></math>=<span>1D626</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x66;</mtext></math>=<span>1D627</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x67;</mtext></math>=<span>1D628</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x68;</mtext></math>=<span>1D629</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x69;</mtext></math>=<span>1D62A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6A;</mtext></math>=<span>1D62B</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6B;</mtext></math>=<span>1D62C</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6C;</mtext></math>=<span>1D62D</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6D;</mtext></math>=<span>1D62E</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6E;</mtext></math>=<span>1D62F</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x6F;</mtext></math>=<span>1D630</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x70;</mtext></math>=<span>1D631</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x71;</mtext></math>=<span>1D632</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x72;</mtext></math>=<span>1D633</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x73;</mtext></math>=<span>1D634</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x74;</mtext></math>=<span>1D635</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x75;</mtext></math>=<span>1D636</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x76;</mtext></math>=<span>1D637</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x77;</mtext></math>=<span>1D638</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x78;</mtext></math>=<span>1D639</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x79;</mtext></math>=<span>1D63A</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif-italic">&#x7A;</mtext></math>=<span>1D63B</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-ref.html
new file mode 100644
index 0000000000..ced5272ecb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif-ref.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D5A0;</mtext></math>=<span>1D5A0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A1;</mtext></math>=<span>1D5A1</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A2;</mtext></math>=<span>1D5A2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A3;</mtext></math>=<span>1D5A3</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A4;</mtext></math>=<span>1D5A4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A5;</mtext></math>=<span>1D5A5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A6;</mtext></math>=<span>1D5A6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A7;</mtext></math>=<span>1D5A7</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A8;</mtext></math>=<span>1D5A8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5A9;</mtext></math>=<span>1D5A9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5AA;</mtext></math>=<span>1D5AA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5AB;</mtext></math>=<span>1D5AB</span></span>
+ <span><math class="testfont"><mtext>&#x1D5AC;</mtext></math>=<span>1D5AC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5AD;</mtext></math>=<span>1D5AD</span></span>
+ <span><math class="testfont"><mtext>&#x1D5AE;</mtext></math>=<span>1D5AE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5AF;</mtext></math>=<span>1D5AF</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B0;</mtext></math>=<span>1D5B0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B1;</mtext></math>=<span>1D5B1</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B2;</mtext></math>=<span>1D5B2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B3;</mtext></math>=<span>1D5B3</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5B4;</mtext></math>=<span>1D5B4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B5;</mtext></math>=<span>1D5B5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B6;</mtext></math>=<span>1D5B6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B7;</mtext></math>=<span>1D5B7</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B8;</mtext></math>=<span>1D5B8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5B9;</mtext></math>=<span>1D5B9</span></span>
+ <span><math class="testfont"><mtext>&#x1D5BA;</mtext></math>=<span>1D5BA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5BB;</mtext></math>=<span>1D5BB</span></span>
+ <span><math class="testfont"><mtext>&#x1D5BC;</mtext></math>=<span>1D5BC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5BD;</mtext></math>=<span>1D5BD</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5BE;</mtext></math>=<span>1D5BE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5BF;</mtext></math>=<span>1D5BF</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C0;</mtext></math>=<span>1D5C0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C1;</mtext></math>=<span>1D5C1</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C2;</mtext></math>=<span>1D5C2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C3;</mtext></math>=<span>1D5C3</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C4;</mtext></math>=<span>1D5C4</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C5;</mtext></math>=<span>1D5C5</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C6;</mtext></math>=<span>1D5C6</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C7;</mtext></math>=<span>1D5C7</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5C8;</mtext></math>=<span>1D5C8</span></span>
+ <span><math class="testfont"><mtext>&#x1D5C9;</mtext></math>=<span>1D5C9</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CA;</mtext></math>=<span>1D5CA</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CB;</mtext></math>=<span>1D5CB</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CC;</mtext></math>=<span>1D5CC</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CD;</mtext></math>=<span>1D5CD</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CE;</mtext></math>=<span>1D5CE</span></span>
+ <span><math class="testfont"><mtext>&#x1D5CF;</mtext></math>=<span>1D5CF</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D0;</mtext></math>=<span>1D5D0</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D1;</mtext></math>=<span>1D5D1</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D5D2;</mtext></math>=<span>1D5D2</span></span>
+ <span><math class="testfont"><mtext>&#x1D5D3;</mtext></math>=<span>1D5D3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E2;</mtext></math>=<span>1D7E2</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E3;</mtext></math>=<span>1D7E3</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E4;</mtext></math>=<span>1D7E4</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E5;</mtext></math>=<span>1D7E5</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E6;</mtext></math>=<span>1D7E6</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E7;</mtext></math>=<span>1D7E7</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E8;</mtext></math>=<span>1D7E8</span></span>
+ <span><math class="testfont"><mtext>&#x1D7E9;</mtext></math>=<span>1D7E9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D7EA;</mtext></math>=<span>1D7EA</span></span>
+ <span><math class="testfont"><mtext>&#x1D7EB;</mtext></math>=<span>1D7EB</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif.html
new file mode 100644
index 0000000000..43a1fa821f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-sans-serif.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant sans-serif</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#sans-serif-mappings">
+<link rel="match" href="mathvariant-sans-serif-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a sans-serif mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-sans-serif.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x41;</mtext></math>=<span>1D5A0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x42;</mtext></math>=<span>1D5A1</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x43;</mtext></math>=<span>1D5A2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x44;</mtext></math>=<span>1D5A3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x45;</mtext></math>=<span>1D5A4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x46;</mtext></math>=<span>1D5A5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x47;</mtext></math>=<span>1D5A6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x48;</mtext></math>=<span>1D5A7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x49;</mtext></math>=<span>1D5A8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4A;</mtext></math>=<span>1D5A9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4B;</mtext></math>=<span>1D5AA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4C;</mtext></math>=<span>1D5AB</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4D;</mtext></math>=<span>1D5AC</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4E;</mtext></math>=<span>1D5AD</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x4F;</mtext></math>=<span>1D5AE</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x50;</mtext></math>=<span>1D5AF</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x51;</mtext></math>=<span>1D5B0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x52;</mtext></math>=<span>1D5B1</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x53;</mtext></math>=<span>1D5B2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x54;</mtext></math>=<span>1D5B3</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x55;</mtext></math>=<span>1D5B4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x56;</mtext></math>=<span>1D5B5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x57;</mtext></math>=<span>1D5B6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x58;</mtext></math>=<span>1D5B7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x59;</mtext></math>=<span>1D5B8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x5A;</mtext></math>=<span>1D5B9</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x61;</mtext></math>=<span>1D5BA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x62;</mtext></math>=<span>1D5BB</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x63;</mtext></math>=<span>1D5BC</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x64;</mtext></math>=<span>1D5BD</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x65;</mtext></math>=<span>1D5BE</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x66;</mtext></math>=<span>1D5BF</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x67;</mtext></math>=<span>1D5C0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x68;</mtext></math>=<span>1D5C1</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x69;</mtext></math>=<span>1D5C2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6A;</mtext></math>=<span>1D5C3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6B;</mtext></math>=<span>1D5C4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6C;</mtext></math>=<span>1D5C5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6D;</mtext></math>=<span>1D5C6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6E;</mtext></math>=<span>1D5C7</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x6F;</mtext></math>=<span>1D5C8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x70;</mtext></math>=<span>1D5C9</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x71;</mtext></math>=<span>1D5CA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x72;</mtext></math>=<span>1D5CB</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x73;</mtext></math>=<span>1D5CC</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x74;</mtext></math>=<span>1D5CD</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x75;</mtext></math>=<span>1D5CE</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x76;</mtext></math>=<span>1D5CF</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x77;</mtext></math>=<span>1D5D0</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x78;</mtext></math>=<span>1D5D1</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x79;</mtext></math>=<span>1D5D2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x7A;</mtext></math>=<span>1D5D3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x30;</mtext></math>=<span>1D7E2</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x31;</mtext></math>=<span>1D7E3</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x32;</mtext></math>=<span>1D7E4</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x33;</mtext></math>=<span>1D7E5</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x34;</mtext></math>=<span>1D7E6</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x35;</mtext></math>=<span>1D7E7</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x36;</mtext></math>=<span>1D7E8</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x37;</mtext></math>=<span>1D7E9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x38;</mtext></math>=<span>1D7EA</span></span>
+ <span><math class="testfont"><mtext mathvariant="sans-serif">&#x39;</mtext></math>=<span>1D7EB</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script-ref.html
new file mode 100644
index 0000000000..60ced85bc3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script-ref.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant script (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1D49C;</mtext></math>=<span>1D49C</span></span>
+ <span><math class="testfont"><mtext>&#x212C;</mtext></math>=<span>0212C</span></span>
+ <span><math class="testfont"><mtext>&#x1D49E;</mtext></math>=<span>1D49E</span></span>
+ <span><math class="testfont"><mtext>&#x1D49F;</mtext></math>=<span>1D49F</span></span>
+ <span><math class="testfont"><mtext>&#x2130;</mtext></math>=<span>02130</span></span>
+ <span><math class="testfont"><mtext>&#x2131;</mtext></math>=<span>02131</span></span>
+ <span><math class="testfont"><mtext>&#x1D4A2;</mtext></math>=<span>1D4A2</span></span>
+ <span><math class="testfont"><mtext>&#x210B;</mtext></math>=<span>0210B</span></span>
+ <span><math class="testfont"><mtext>&#x2110;</mtext></math>=<span>02110</span></span>
+ <span><math class="testfont"><mtext>&#x1D4A5;</mtext></math>=<span>1D4A5</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4A6;</mtext></math>=<span>1D4A6</span></span>
+ <span><math class="testfont"><mtext>&#x2112;</mtext></math>=<span>02112</span></span>
+ <span><math class="testfont"><mtext>&#x2133;</mtext></math>=<span>02133</span></span>
+ <span><math class="testfont"><mtext>&#x1D4A9;</mtext></math>=<span>1D4A9</span></span>
+ <span><math class="testfont"><mtext>&#x1D4AA;</mtext></math>=<span>1D4AA</span></span>
+ <span><math class="testfont"><mtext>&#x1D4AB;</mtext></math>=<span>1D4AB</span></span>
+ <span><math class="testfont"><mtext>&#x1D4AC;</mtext></math>=<span>1D4AC</span></span>
+ <span><math class="testfont"><mtext>&#x211B;</mtext></math>=<span>0211B</span></span>
+ <span><math class="testfont"><mtext>&#x1D4AE;</mtext></math>=<span>1D4AE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4AF;</mtext></math>=<span>1D4AF</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4B0;</mtext></math>=<span>1D4B0</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B1;</mtext></math>=<span>1D4B1</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B2;</mtext></math>=<span>1D4B2</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B3;</mtext></math>=<span>1D4B3</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B4;</mtext></math>=<span>1D4B4</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B5;</mtext></math>=<span>1D4B5</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B6;</mtext></math>=<span>1D4B6</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B7;</mtext></math>=<span>1D4B7</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B8;</mtext></math>=<span>1D4B8</span></span>
+ <span><math class="testfont"><mtext>&#x1D4B9;</mtext></math>=<span>1D4B9</span></span><br/>
+ <span><math class="testfont"><mtext>&#x212F;</mtext></math>=<span>0212F</span></span>
+ <span><math class="testfont"><mtext>&#x1D4BB;</mtext></math>=<span>1D4BB</span></span>
+ <span><math class="testfont"><mtext>&#x210A;</mtext></math>=<span>0210A</span></span>
+ <span><math class="testfont"><mtext>&#x1D4BD;</mtext></math>=<span>1D4BD</span></span>
+ <span><math class="testfont"><mtext>&#x1D4BE;</mtext></math>=<span>1D4BE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4BF;</mtext></math>=<span>1D4BF</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C0;</mtext></math>=<span>1D4C0</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C1;</mtext></math>=<span>1D4C1</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C2;</mtext></math>=<span>1D4C2</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C3;</mtext></math>=<span>1D4C3</span></span><br/>
+ <span><math class="testfont"><mtext>&#x2134;</mtext></math>=<span>02134</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C5;</mtext></math>=<span>1D4C5</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C6;</mtext></math>=<span>1D4C6</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C7;</mtext></math>=<span>1D4C7</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C8;</mtext></math>=<span>1D4C8</span></span>
+ <span><math class="testfont"><mtext>&#x1D4C9;</mtext></math>=<span>1D4C9</span></span>
+ <span><math class="testfont"><mtext>&#x1D4CA;</mtext></math>=<span>1D4CA</span></span>
+ <span><math class="testfont"><mtext>&#x1D4CB;</mtext></math>=<span>1D4CB</span></span>
+ <span><math class="testfont"><mtext>&#x1D4CC;</mtext></math>=<span>1D4CC</span></span>
+ <span><math class="testfont"><mtext>&#x1D4CD;</mtext></math>=<span>1D4CD</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1D4CE;</mtext></math>=<span>1D4CE</span></span>
+ <span><math class="testfont"><mtext>&#x1D4CF;</mtext></math>=<span>1D4CF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script.html
new file mode 100644
index 0000000000..afbdfd9f94
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-script.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant script</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#script-mappings">
+<link rel="match" href="mathvariant-script-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a script mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-script.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="script">&#x41;</mtext></math>=<span>1D49C</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x42;</mtext></math>=<span>0212C</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x43;</mtext></math>=<span>1D49E</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x44;</mtext></math>=<span>1D49F</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x45;</mtext></math>=<span>02130</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x46;</mtext></math>=<span>02131</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x47;</mtext></math>=<span>1D4A2</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x48;</mtext></math>=<span>0210B</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x49;</mtext></math>=<span>02110</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4A;</mtext></math>=<span>1D4A5</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4B;</mtext></math>=<span>1D4A6</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4C;</mtext></math>=<span>02112</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4D;</mtext></math>=<span>02133</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4E;</mtext></math>=<span>1D4A9</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x4F;</mtext></math>=<span>1D4AA</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x50;</mtext></math>=<span>1D4AB</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x51;</mtext></math>=<span>1D4AC</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x52;</mtext></math>=<span>0211B</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x53;</mtext></math>=<span>1D4AE</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x54;</mtext></math>=<span>1D4AF</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="script">&#x55;</mtext></math>=<span>1D4B0</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x56;</mtext></math>=<span>1D4B1</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x57;</mtext></math>=<span>1D4B2</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x58;</mtext></math>=<span>1D4B3</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x59;</mtext></math>=<span>1D4B4</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x5A;</mtext></math>=<span>1D4B5</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x61;</mtext></math>=<span>1D4B6</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x62;</mtext></math>=<span>1D4B7</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x63;</mtext></math>=<span>1D4B8</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x64;</mtext></math>=<span>1D4B9</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="script">&#x65;</mtext></math>=<span>0212F</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x66;</mtext></math>=<span>1D4BB</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x67;</mtext></math>=<span>0210A</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x68;</mtext></math>=<span>1D4BD</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x69;</mtext></math>=<span>1D4BE</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6A;</mtext></math>=<span>1D4BF</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6B;</mtext></math>=<span>1D4C0</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6C;</mtext></math>=<span>1D4C1</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6D;</mtext></math>=<span>1D4C2</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6E;</mtext></math>=<span>1D4C3</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="script">&#x6F;</mtext></math>=<span>02134</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x70;</mtext></math>=<span>1D4C5</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x71;</mtext></math>=<span>1D4C6</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x72;</mtext></math>=<span>1D4C7</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x73;</mtext></math>=<span>1D4C8</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x74;</mtext></math>=<span>1D4C9</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x75;</mtext></math>=<span>1D4CA</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x76;</mtext></math>=<span>1D4CB</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x77;</mtext></math>=<span>1D4CC</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x78;</mtext></math>=<span>1D4CD</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="script">&#x79;</mtext></math>=<span>1D4CE</span></span>
+ <span><math class="testfont"><mtext mathvariant="script">&#x7A;</mtext></math>=<span>1D4CF</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched-ref.html
new file mode 100644
index 0000000000..454f2004ac
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched-ref.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant stretched (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1EE61;</mtext></math>=<span>1EE61</span></span>
+ <span><math class="testfont"><mtext>&#x1EE62;</mtext></math>=<span>1EE62</span></span>
+ <span><math class="testfont"><mtext>&#x1EE64;</mtext></math>=<span>1EE64</span></span>
+ <span><math class="testfont"><mtext>&#x1EE67;</mtext></math>=<span>1EE67</span></span>
+ <span><math class="testfont"><mtext>&#x1EE68;</mtext></math>=<span>1EE68</span></span>
+ <span><math class="testfont"><mtext>&#x1EE69;</mtext></math>=<span>1EE69</span></span>
+ <span><math class="testfont"><mtext>&#x1EE6A;</mtext></math>=<span>1EE6A</span></span>
+ <span><math class="testfont"><mtext>&#x1EE6C;</mtext></math>=<span>1EE6C</span></span>
+ <span><math class="testfont"><mtext>&#x1EE6D;</mtext></math>=<span>1EE6D</span></span>
+ <span><math class="testfont"><mtext>&#x1EE6E;</mtext></math>=<span>1EE6E</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE6F;</mtext></math>=<span>1EE6F</span></span>
+ <span><math class="testfont"><mtext>&#x1EE70;</mtext></math>=<span>1EE70</span></span>
+ <span><math class="testfont"><mtext>&#x1EE71;</mtext></math>=<span>1EE71</span></span>
+ <span><math class="testfont"><mtext>&#x1EE72;</mtext></math>=<span>1EE72</span></span>
+ <span><math class="testfont"><mtext>&#x1EE74;</mtext></math>=<span>1EE74</span></span>
+ <span><math class="testfont"><mtext>&#x1EE75;</mtext></math>=<span>1EE75</span></span>
+ <span><math class="testfont"><mtext>&#x1EE76;</mtext></math>=<span>1EE76</span></span>
+ <span><math class="testfont"><mtext>&#x1EE77;</mtext></math>=<span>1EE77</span></span>
+ <span><math class="testfont"><mtext>&#x1EE79;</mtext></math>=<span>1EE79</span></span>
+ <span><math class="testfont"><mtext>&#x1EE7A;</mtext></math>=<span>1EE7A</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE7B;</mtext></math>=<span>1EE7B</span></span>
+ <span><math class="testfont"><mtext>&#x1EE7C;</mtext></math>=<span>1EE7C</span></span>
+ <span><math class="testfont"><mtext>&#x1EE7E;</mtext></math>=<span>1EE7E</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched.html
new file mode 100644
index 0000000000..99b06fb41b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-stretched.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant stretched</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#stretched-mappings">
+<link rel="match" href="mathvariant-stretched-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a stretched mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-stretched.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x628;</mtext></math>=<span>1EE61</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x62C;</mtext></math>=<span>1EE62</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x647;</mtext></math>=<span>1EE64</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x62D;</mtext></math>=<span>1EE67</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x637;</mtext></math>=<span>1EE68</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x64A;</mtext></math>=<span>1EE69</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x643;</mtext></math>=<span>1EE6A</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x645;</mtext></math>=<span>1EE6C</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x646;</mtext></math>=<span>1EE6D</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x633;</mtext></math>=<span>1EE6E</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x639;</mtext></math>=<span>1EE6F</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x641;</mtext></math>=<span>1EE70</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x635;</mtext></math>=<span>1EE71</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x642;</mtext></math>=<span>1EE72</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x634;</mtext></math>=<span>1EE74</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x62A;</mtext></math>=<span>1EE75</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x62B;</mtext></math>=<span>1EE76</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x62E;</mtext></math>=<span>1EE77</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x636;</mtext></math>=<span>1EE79</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x638;</mtext></math>=<span>1EE7A</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x63A;</mtext></math>=<span>1EE7B</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x66E;</mtext></math>=<span>1EE7C</span></span>
+ <span><math class="testfont"><mtext mathvariant="stretched">&#x6A1;</mtext></math>=<span>1EE7E</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed-ref.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed-ref.html
new file mode 100644
index 0000000000..5e1461cd33
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed-ref.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant tailed (reference)</title>
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext>&#x1EE42;</mtext></math>=<span>1EE42</span></span>
+ <span><math class="testfont"><mtext>&#x1EE47;</mtext></math>=<span>1EE47</span></span>
+ <span><math class="testfont"><mtext>&#x1EE49;</mtext></math>=<span>1EE49</span></span>
+ <span><math class="testfont"><mtext>&#x1EE4B;</mtext></math>=<span>1EE4B</span></span>
+ <span><math class="testfont"><mtext>&#x1EE4D;</mtext></math>=<span>1EE4D</span></span>
+ <span><math class="testfont"><mtext>&#x1EE4E;</mtext></math>=<span>1EE4E</span></span>
+ <span><math class="testfont"><mtext>&#x1EE4F;</mtext></math>=<span>1EE4F</span></span>
+ <span><math class="testfont"><mtext>&#x1EE51;</mtext></math>=<span>1EE51</span></span>
+ <span><math class="testfont"><mtext>&#x1EE52;</mtext></math>=<span>1EE52</span></span>
+ <span><math class="testfont"><mtext>&#x1EE54;</mtext></math>=<span>1EE54</span></span><br/>
+ <span><math class="testfont"><mtext>&#x1EE57;</mtext></math>=<span>1EE57</span></span>
+ <span><math class="testfont"><mtext>&#x1EE59;</mtext></math>=<span>1EE59</span></span>
+ <span><math class="testfont"><mtext>&#x1EE5B;</mtext></math>=<span>1EE5B</span></span>
+ <span><math class="testfont"><mtext>&#x1EE5D;</mtext></math>=<span>1EE5D</span></span>
+ <span><math class="testfont"><mtext>&#x1EE5F;</mtext></math>=<span>1EE5F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed.html b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed.html
new file mode 100644
index 0000000000..43fbca5e80
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mathvariant/mathvariant-tailed.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8"/>
+<title>mathvariant tailed</title>
+<link rel="help" href="https://w3c.github.io/mathml-core/#css-styling">
+<link rel="help" href="https://w3c.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://w3c.github.io/mathml-core/#new-text-transform-values">
+<link rel="help" href="https://w3c.github.io/mathml-core/#tailed-mappings">
+<link rel="match" href="mathvariant-tailed-ref.html"/>
+<meta name="assert" content="Verify that a single-char <mtext> with a tailed mathvariant is equivalent to an <mtext> with the transformed unicode character.">
+<style>
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/mathvariant-tailed.woff");
+ }
+ body > span {
+ padding: 10px;
+ }
+ span > span {
+ font-family: monospace;
+ font-size: 10px;
+ }
+ .testfont {
+ font-family: TestFont;
+ font-size: 10px;
+ }
+</style>
+<body>
+ <!-- Generated by mathml/tools/mathvariant.py; DO NOT EDIT. -->
+ <p>Test passes if all the equalities below are true.</p>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x62C;</mtext></math>=<span>1EE42</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x62D;</mtext></math>=<span>1EE47</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x64A;</mtext></math>=<span>1EE49</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x644;</mtext></math>=<span>1EE4B</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x646;</mtext></math>=<span>1EE4D</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x633;</mtext></math>=<span>1EE4E</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x639;</mtext></math>=<span>1EE4F</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x635;</mtext></math>=<span>1EE51</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x642;</mtext></math>=<span>1EE52</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x634;</mtext></math>=<span>1EE54</span></span><br/>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x62E;</mtext></math>=<span>1EE57</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x636;</mtext></math>=<span>1EE59</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x63A;</mtext></math>=<span>1EE5B</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x6BA;</mtext></math>=<span>1EE5D</span></span>
+ <span><math class="testfont"><mtext mathvariant="tailed">&#x66F;</mtext></math>=<span>1EE5F</span></span>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1-ref.html
new file mode 100644
index 0000000000..2302a2b8d8
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1-ref.html
@@ -0,0 +1,21 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1a.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1a.html
new file mode 100644
index 0000000000..bbf7c780fe
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1a.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="longdiv">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1b.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1b.html
new file mode 100644
index 0000000000..3e0675f73e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1b.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="actuarial">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1d.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1d.html
new file mode 100644
index 0000000000..4fe5e9b68b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1d.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="box">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1e.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1e.html
new file mode 100644
index 0000000000..10761f394a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1e.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="roundedbox">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1f.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1f.html
new file mode 100644
index 0000000000..4dbde38a5e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1f.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="circle">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1g.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1g.html
new file mode 100644
index 0000000000..0a5ffa1df0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1g.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="left">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1h.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1h.html
new file mode 100644
index 0000000000..038d2e64d4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1h.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="right">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1i.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1i.html
new file mode 100644
index 0000000000..ee4070402c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1i.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="top">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1j.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1j.html
new file mode 100644
index 0000000000..e1f7fcac2f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1j.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="bottom">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1k.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1k.html
new file mode 100644
index 0000000000..296b97dee0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1k.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="updiagonalstrike">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1l.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1l.html
new file mode 100644
index 0000000000..7ba2a7d312
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1l.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="downdiagonalstrike">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1m.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1m.html
new file mode 100644
index 0000000000..de7223a55e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1m.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="verticalstrike">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1n.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1n.html
new file mode 100644
index 0000000000..0578ee9237
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1n.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="horizontalstrike">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1o.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1o.html
new file mode 100644
index 0000000000..17f7a6b183
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1o.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="madruwb">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1p.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1p.html
new file mode 100644
index 0000000000..e4f6b2dcc4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1p.html
@@ -0,0 +1,22 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: test that attributes have an effect -->
+ <math>
+ <menclose notation="updiagonalarrow">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1q.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1q.html
new file mode 100644
index 0000000000..5bb1930c48
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-1q.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose</title>
+ <link rel="mismatch" href="menclose-1-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <menclose notation="phasorangle">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial-ref.html
new file mode 100644
index 0000000000..b63e84ac84
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial-ref.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose actuarial</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) +
+ "L" + ((box.width+box.left) + "," + box.top) +
+ "L" + ((box.width+box.left) + "," + box.bottom ));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="actuarial">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial.html
new file mode 100644
index 0000000000..2fb3abcc73
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-actuarial.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose actuarial</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-actuarial-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) +
+ "L" + ((box.width+box.left) + "," + box.top) +
+ "L" + ((box.width+box.left) + "," + box.bottom ));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="actuarial">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom-ref.html
new file mode 100644
index 0000000000..491e223f94
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose bottom</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.height)) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="bottom">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom.html
new file mode 100644
index 0000000000..a0e6018c76
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-bottom.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose bottom</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-bottom-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.height)) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="bottom">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box-ref.html
new file mode 100644
index 0000000000..20bad27489
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box-ref.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose box</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ r = document.getElementById("rect");
+ r.setAttribute("x", box.left );
+ r.setAttribute("y", box.top );
+ r.setAttribute("width", box.width );
+ r.setAttribute("height", box.height );
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="box">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <rect id="rect" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></rect>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box.html
new file mode 100644
index 0000000000..dc5ed38dc9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-box.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose box</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-box-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ r = document.getElementById("rect");
+ r.setAttribute("x", box.left );
+ r.setAttribute("y", box.top );
+ r.setAttribute("width", box.width );
+ r.setAttribute("height", box.height );
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="box">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <rect id="rect" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></rect>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle-ref.html
new file mode 100644
index 0000000000..f1b98e7864
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle-ref.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose circle</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("circle").getBoundingClientRect();
+ e = document.getElementById("ellipse");
+ e.setAttribute("cx", (box.left + box.width/2));
+ e.setAttribute("rx", (box.width/2));
+ e.setAttribute("cy", (box.top + box.height/2));
+ e.setAttribute("ry", (box.height/2));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="circle" notation="circle">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <ellipse id="ellipse" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></ellipse>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle.html
new file mode 100644
index 0000000000..58b627add2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-circle.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose circle</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-circle-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("circle").getBoundingClientRect();
+ e = document.getElementById("ellipse");
+ e.setAttribute("cx", (box.left + box.width/2));
+ e.setAttribute("rx", (box.width/2));
+ e.setAttribute("cy", (box.top + box.height/2));
+ e.setAttribute("ry", (box.height/2));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="circle" notation="circle">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <ellipse id="ellipse" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></ellipse>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike-ref.html
new file mode 100644
index 0000000000..bc7aad0ea8
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose downdiagonalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (box.width + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="downdiagonalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike.html
new file mode 100644
index 0000000000..257dc36c3b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-downdiagonalstrike.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose downdiagonalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-downdiagonalstrike-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (box.width + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="downdiagonalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike-ref.html
new file mode 100644
index 0000000000..973d1fc752
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose horizontalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.bottom)/2 ) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="horizontalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;" ></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike.html
new file mode 100644
index 0000000000..3db832d8d6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-horizontalstrike.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose horizontalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-horizontalstrike-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.bottom)/2 ) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="horizontalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left-ref.html
new file mode 100644
index 0000000000..760ef8a89f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose left</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="left">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left.html
new file mode 100644
index 0000000000..d1b554ec62
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-left.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose left</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-left-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="left">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv-ref.html
new file mode 100644
index 0000000000..b67504af50
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv-ref.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose longdiv</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ var x = " " + box.left + "," + box.top + " " ;
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.height)) +
+ "Q" + ((box.left + 15) + "," + (box.top + box.height)/2) + x +
+ "L" + ((box.left + box.width) + "," + box.top));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="longdiv">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: 1em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv.html
new file mode 100644
index 0000000000..fa12b8934d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-longdiv.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose longdiv</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-longdiv-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ var x = " " + box.left + "," + box.top + " " ;
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.top + box.height)) +
+ "Q" + ((box.left + 15) + "," + (box.top + box.height)/2) + x +
+ "L" + ((box.left + box.width) + "," + box.top));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="longdiv">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: 1em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle-ref.html
new file mode 100644
index 0000000000..b3d91a9fbe
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose phasorangle</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ var w = 8 * 2; // kPhasorangleWidth * rulethickness
+ var H = 2 * w; // slope 2
+
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.right + "," + box.bottom) +
+ "L" + (box.left + "," + box.bottom ) +
+ "l" + ((w) + "," + (-H)));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="phasorangle">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle.html
new file mode 100644
index 0000000000..55b3dc2faf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-phasorangle.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose phasorangle</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-phasorangle-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ var w = 8 * 2; // kPhasorangleWidth * rulethickness
+ var H = 2 * w; // slope 2
+
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.right + "," + box.bottom) +
+ "L" + (box.left + "," + box.bottom ) +
+ "l" + ((w) + "," + (-H)));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="phasorangle">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right-ref.html
new file mode 100644
index 0000000000..acd3e30dd2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose right</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + ((box.left + box.width) + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="right">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right.html
new file mode 100644
index 0000000000..b64ca8cc96
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-right.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose right</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-right-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + ((box.left + box.width) + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="right">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox-ref.html
new file mode 100644
index 0000000000..c1f0225036
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox-ref.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <meta charset="utf-8"/>
+ <title>menclose roundedbox</title>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, #box {
+ font: 25px/1 Ahem;
+ }
+ </style>
+
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("roundedbox").getBoundingClientRect();
+ r = document.getElementById("box");
+ r.style.left = `calc(${box.left}px - .25em)`;
+ r.style.top = `calc(${box.top}px - .25em)`
+ r.style.width = `calc(${box.width}px + .5em)`;
+ r.style.height = `calc(${box.height}px + .5em)`;
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="roundedbox" notation="roundedbox">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div id="box" style="position: absolute; box-sizing: border-box; border:.5em solid green; border-radius: .5em;"></div>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox.html
new file mode 100644
index 0000000000..f31e696ce1
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-roundedbox.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <meta charset="utf-8"/>
+ <title>menclose roundedbox</title>
+ <link rel="match" href="menclose-2-roundedbox-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, #box {
+ font: 25px/1 Ahem;
+ }
+ </style>
+
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("roundedbox").getBoundingClientRect();
+ r = document.getElementById("box");
+ r.style.left = `calc(${box.left}px - .25em)`;
+ r.style.top = `calc(${box.top}px - .25em)`
+ r.style.width = `calc(${box.width}px + .5em)`;
+ r.style.height = `calc(${box.height}px + .5em)`;
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="roundedbox" notation="roundedbox">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div id="box" style="position: absolute; box-sizing: border-box; border:.5em solid green; border-radius: .5em;"></div>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top-ref.html
new file mode 100644
index 0000000000..31ea1d8c7e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose top</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="top">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top.html
new file mode 100644
index 0000000000..a135a21afc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-top.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose top</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-top-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.top) + " " +
+ "l" + (box.width + "," + 0));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="top">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow-ref.html
new file mode 100644
index 0000000000..5e1c37317b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow-ref.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalarrow</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.height + box.top)) +
+ "L" + ((box.width + box.left) + "," + box.top) +
+ "l -15,0 l0,+15 l+15,0 l0,-15"); // try and hide the arrow head with a square.
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="updiagonalarrow">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow.html
new file mode 100644
index 0000000000..f0d4fb1dbf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalarrow.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalarrow</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-updiagonalarrow-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + (box.height + box.top)) +
+ "L" + ((box.width + box.left) + "," + box.top) +
+ "l -15,0 l0,+15 l+15,0 l0,-15"); // try and hide the arrow head with a square.
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="updiagonalarrow">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike-ref.html
new file mode 100644
index 0000000000..dc99162c34
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.bottom) + " " +
+ "l" + (box.width + "," + (-box.height)));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="updiagonalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike.html
new file mode 100644
index 0000000000..5ab256e5f2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-updiagonalstrike.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-updiagonalstrike-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + (box.left + "," + box.bottom) + " " +
+ "l" + (box.width + "," + (-box.height)));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="updiagonalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike-ref.html
new file mode 100644
index 0000000000..d5ba9ff227
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose verticalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + ((box.right + box.left)/2 + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <mphantom>
+ <menclose id="box" notation="verticalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </mphantom>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike.html
new file mode 100644
index 0000000000..b40a452bbe
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-2-verticalstrike.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose verticalstrike</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-2-verticalstrike-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ math, svg {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box = document.getElementById("box").getBoundingClientRect();
+ document.getElementById("path").setAttribute("d",
+ "M" + ((box.right + box.left)/2 + "," + box.top) + " " +
+ "l" + (0 + "," + box.height));
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="box" notation="verticalstrike">
+ <mspace width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+
+ <div style="position: absolute; left: 0px; top: 0px;">
+ <svg width="500px" height="500px">
+ <path id="path" style="fill: none; stroke-width: .5em; stroke: green; stroke-linecap: round; shape-rendering: crispEdges;"></path>
+ </svg>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box-ref.html
new file mode 100644
index 0000000000..0d718ee05c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose box</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="left top right bottom">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box.html
new file mode 100644
index 0000000000..a28ba547cf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-box.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose box</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-box-ref.html"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="box">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default-ref.html
new file mode 100644
index 0000000000..db9d4375ad
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose default</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose>
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default.html
new file mode 100644
index 0000000000..f1f8be193c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-default.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose default</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-default-ref.html"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="longdiv">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid-ref.html
new file mode 100644
index 0000000000..dc0740763d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid-ref.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose invalid</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <math>
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid.html
new file mode 100644
index 0000000000..e210c97fb0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-invalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose invalid</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-invalid-ref.html"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="not_a_vaild_notation">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb-ref.html
new file mode 100644
index 0000000000..58ed5903b4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose madruwb</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <!-- menclose: madruwb -->
+ <math>
+ <menclose notation="right bottom"><mi>x</mi></menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb.html
new file mode 100644
index 0000000000..ff8e4540bf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-madruwb.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test menclose madruwb</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-madruwb-ref.html"/>
+ </head>
+
+ <body>
+ <!-- menclose: madruwb -->
+ <math>
+ <menclose notation="madruwb"><mi>x</mi></menclose>
+ </math>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple-ref.html
new file mode 100644
index 0000000000..c42a504bb2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose multiple</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="top top left circle">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple.html
new file mode 100644
index 0000000000..ea8b77f7fa
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-multiple.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose multiple</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-multiple-ref.html"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="circle left top">
+ <mspace width="100px" height="50px"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown-ref.html
new file mode 100644
index 0000000000..20f3a72eb9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose unknown</title>
+ <meta charset="utf-8"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="circle">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown.html
new file mode 100644
index 0000000000..16587da798
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-3-unknown.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose unknown</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="menclose-3-unknown-ref.html"/>
+ </head>
+
+ <body>
+ <math>
+ <menclose notation="circle unknown">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-4.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-4.html
new file mode 100644
index 0000000000..1b27e96af9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-4.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose inner and outer circle</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="data:text/html,<body>Pass"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var box1 = document.getElementById("outer").getBoundingClientRect();
+ var box2 = document.getElementById("inner").getBoundingClientRect();
+ var epsilon = 0.1;
+ if ((box1.width >= ((Math.sqrt(2) - epsilon)*box2.width)) && (box1.height >= ((Math.sqrt(2) - epsilon)*box2.height))) {
+ document.body.innerHTML = "Pass";
+ }
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <div style="position: absolute; left: 20px; top: 20px;">
+ <math>
+ <menclose id="outer" notation="circle">
+ <mspace id="inner" width="200px" height="100px"></mspace>
+ </menclose>
+ </math>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial-ref.html
new file mode 100644
index 0000000000..2369d4e232
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose actuarial</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="actuarial"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial.html
new file mode 100644
index 0000000000..707a8e7933
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-actuarial.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose actuarial</title>
+ <link rel="match" href="menclose-5-actuarial-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","actuarial");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom-ref.html
new file mode 100644
index 0000000000..5165333ddd
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose bottom</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="bottom"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom.html
new file mode 100644
index 0000000000..aab45e679f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-bottom.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose bottom</title>
+ <link rel="match" href="menclose-5-bottom-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","bottom");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box-ref.html
new file mode 100644
index 0000000000..dfe4a3d0f3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose box</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="box"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box.html
new file mode 100644
index 0000000000..548f8b5e65
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-box.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose box</title>
+ <link rel="match" href="menclose-5-box-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","box");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle-ref.html
new file mode 100644
index 0000000000..2132e0ebfd
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose circle</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="circle"><mspace width="100px" height="50px"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle.html
new file mode 100644
index 0000000000..fdbc0b4d97
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-circle.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose circle</title>
+ <link rel="match" href="menclose-5-circle-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","circle");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike-ref.html
new file mode 100644
index 0000000000..b37bfd0ffb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose downdiagonalstrike</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="downdiagonalstrike"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike.html
new file mode 100644
index 0000000000..82c89e6c9d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-downdiagonalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose downdiagonalstrike</title>
+ <link rel="match" href="menclose-5-downdiagonalstrike-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","downdiagonalstrike");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike-ref.html
new file mode 100644
index 0000000000..777314e09e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose horizontalstrike</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="horizontalstrike"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike.html
new file mode 100644
index 0000000000..fc2ee04284
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-horizontalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose horizontalstrike</title>
+ <link rel="match" href="menclose-5-horizontalstrike-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","horizontalstrike");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left-ref.html
new file mode 100644
index 0000000000..7c27e231eb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose left</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="left"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left.html
new file mode 100644
index 0000000000..5f5b98af2a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-left.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose left</title>
+ <link rel="match" href="menclose-5-left-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","left");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv-ref.html
new file mode 100644
index 0000000000..1c1763fd1e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose longdiv</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="longdiv"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv.html
new file mode 100644
index 0000000000..0444bd5fbc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-longdiv.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose longdiv</title>
+ <link rel="match" href="menclose-5-longdiv-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","longdiv");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb-ref.html
new file mode 100644
index 0000000000..0aeb0396d3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose madruwb</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="madruwb"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb.html
new file mode 100644
index 0000000000..cdd150ac3e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-madruwb.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose madruwb</title>
+ <link rel="match" href="menclose-5-madruwb-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","madruwb");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle-ref.html
new file mode 100644
index 0000000000..5fde01d685
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose actuarial</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="phasorangle"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle.html
new file mode 100644
index 0000000000..098a8a24d9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-phasorangle.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose phasorangle</title>
+ <link rel="match" href="menclose-5-phasorangle-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","phasorangle");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right-ref.html
new file mode 100644
index 0000000000..059a8b983d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose right</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="right"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right.html
new file mode 100644
index 0000000000..f337bdaeb7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-right.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose right</title>
+ <link rel="match" href="menclose-5-right-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","right");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox-ref.html
new file mode 100644
index 0000000000..cd696e8249
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose roundedbox</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="roundedbox"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox.html
new file mode 100644
index 0000000000..86a89c4626
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-roundedbox.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose roundedbox</title>
+ <link rel="match" href="menclose-5-roundedbox-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","roundedbox");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top-ref.html
new file mode 100644
index 0000000000..7799e08457
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose top</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="top"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top.html
new file mode 100644
index 0000000000..a173f8354f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-top.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose top</title>
+ <link rel="match" href="menclose-5-top-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","top");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow-ref.html
new file mode 100644
index 0000000000..6de10f03c9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose updiagonalarrow</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="updiagonalarrow"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow.html
new file mode 100644
index 0000000000..ba5409f0e9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalarrow.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalarrow</title>
+ <link rel="match" href="menclose-5-updiagonalarrow-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","updiagonalarrow");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike-ref.html
new file mode 100644
index 0000000000..24599bbdfd
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose updiagonalstrike</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="updiagonalstrike"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike.html
new file mode 100644
index 0000000000..3a093b3540
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-updiagonalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalstrike</title>
+ <link rel="match" href="menclose-5-updiagonalstrike-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","updiagonalstrike");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike-ref.html
new file mode 100644
index 0000000000..50b7112912
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose verticalstrike</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="verticalstrike"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike.html
new file mode 100644
index 0000000000..561c35c498
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-5-verticalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose verticalstrike</title>
+ <link rel="match" href="menclose-5-verticalstrike-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').setAttribute("notation","verticalstrike");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose"><mspace width="100px" height="50px"></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-actuarial.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-actuarial.html
new file mode 100644
index 0000000000..61eee24010
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-actuarial.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose actuarial</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="actuarial"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-bottom.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-bottom.html
new file mode 100644
index 0000000000..af473d04c3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-bottom.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose bottom</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="bottom"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-box.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-box.html
new file mode 100644
index 0000000000..1cee2eb15b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-box.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose box</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="box"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-circle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-circle.html
new file mode 100644
index 0000000000..933e4b55c6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-circle.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose circle</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="circle"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-downdiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-downdiagonalstrike.html
new file mode 100644
index 0000000000..8ec61c14cc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-downdiagonalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose downdiagonalstrike</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="downdiagonalstrike"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-horizontalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-horizontalstrike.html
new file mode 100644
index 0000000000..5b5387ae22
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-horizontalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose horizontalstrike</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="horizontalstrike"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-left.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-left.html
new file mode 100644
index 0000000000..33bdef7ebc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-left.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose left</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="left"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-longdiv.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-longdiv.html
new file mode 100644
index 0000000000..95d71ce4c0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-longdiv.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose longdiv</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="longdiv"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-madruwb.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-madruwb.html
new file mode 100644
index 0000000000..6129e2f027
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-madruwb.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose madruwb</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="madruwb"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-phasorangle.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-phasorangle.html
new file mode 100644
index 0000000000..2069642661
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-phasorangle.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose phasorangle</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math>
+ <menclose id="testMenclose" notation="phasorangle">
+ <mspace width="100px" height="50px" mathbackground="blue"></mspace>
+ </menclose>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-ref.html
new file mode 100644
index 0000000000..d8fbb7e3d9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>menclose 6 reference</title>
+ </head>
+ <body>
+ <p>
+ <math><menclose><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-right.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-right.html
new file mode 100644
index 0000000000..8da33e29e2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-right.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose right</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="right"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-roundedbox.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-roundedbox.html
new file mode 100644
index 0000000000..3564769d9a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-roundedbox.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose roundedbox</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="roundedbox"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-top.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-top.html
new file mode 100644
index 0000000000..17fdaa14af
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-top.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose top</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="top"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalarrow.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalarrow.html
new file mode 100644
index 0000000000..22c8c1163d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalarrow.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalarrow</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="updiagonalarrow"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalstrike.html
new file mode 100644
index 0000000000..38d614b742
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-updiagonalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose updiagonalstrike</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="updiagonalstrike"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-verticalstrike.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-verticalstrike.html
new file mode 100644
index 0000000000..d44df0857c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-6-verticalstrike.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>menclose verticalstrike</title>
+ <link rel="match" href="menclose-6-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('testMenclose').removeAttribute("notation");
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <p>
+ <math><menclose id="testMenclose" notation="verticalstrike"><mspace width="100px" height="50px" mathbackground="blue"></mspace></menclose></math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir-ref.html
new file mode 100644
index 0000000000..8a1c908c14
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir-ref.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Test dir=rtl</title></head>
+ <body>
+ <p>
+ menclose:
+ <math>
+ <menclose>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="left":
+ <math>
+ <menclose notation="left">
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="right":
+ <math>
+ <menclose notation="right">
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="updiagonalstrike":
+ <math>
+ <menclose notation="updiagonalstrike">
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="downdiagonalstrike":
+ <math>
+ <menclose notation="downdiagonalstrike">
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ </menclose>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir.html
new file mode 100644
index 0000000000..c344e73107
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-dir.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test dir=rtl</title>
+ <link rel="match" href="menclose-dir-ref.html"/>
+ </head>
+ <body>
+ <p>
+ menclose:
+ <math dir="rtl">
+ <menclose>
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="left":
+ <math dir="rtl">
+ <menclose notation="left">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="right":
+ <math dir="rtl">
+ <menclose notation="right">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="updiagonalstrike":
+ <math dir="rtl">
+ <menclose notation="updiagonalstrike">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </menclose>
+ </math>
+ </p>
+
+ <p>
+ menclose notation="downdiagonalstrike":
+ <math dir="rtl">
+ <menclose notation="downdiagonalstrike">
+ <mspace width="25px" height="25px" mathbackground="red"/>
+ <mspace width="25px" height="25px" mathbackground="green"/>
+ <mspace width="25px" height="25px" mathbackground="blue"/>
+ </menclose>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/menclose-in-mphantom-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-in-mphantom-ref.html
new file mode 100644
index 0000000000..2cc362f91a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/menclose-in-mphantom-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mphantom</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+
+ <!-- <mphantom> should be invisible. -->
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation-ref.html b/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation-ref.html
new file mode 100644
index 0000000000..b3bfa6a077
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>notation attribute on mstyle (reference)</title>
+ </head>
+ <body>
+ <math>
+ <mstyle>
+ <menclose>
+ <mtext>menclose</mtext>
+ </menclose>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation.html b/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation.html
new file mode 100644
index 0000000000..c74f0075a0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/menclose/mstyle-notation.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>notation attribute on mstyle</title>
+ <link rel="match" href="mstyle-notation-ref.html"/>
+ <meta name="assert" content="notation attribute on mstyle does not apply to menclose descendants.">
+ </head>
+ <body>
+ <math>
+ <mstyle notation="box">
+ <menclose>
+ <mtext>menclose</mtext>
+ </menclose>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic-ref.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic-ref.html
new file mode 100644
index 0000000000..566089f93f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mo@accent</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <math>
+ <munderover><mtext>X</mtext><mo accent="true">O</mo><mo>O</mo></munderover>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic.html
new file mode 100644
index 0000000000..4a5eca4c25
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/mo-accent-dynamic.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>mo@accent</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="mo-accent-dynamic-ref.html"/>
+ <script type="text/javascript">
+ function doTest() {
+ document.getElementById('mathOperator').setAttribute('accent', 'true');
+ document.documentElement.removeAttribute("class");
+ }
+ window.addEventListener("TestRendered",doTest);
+ </script>
+ </head>
+ <body>
+ <math>
+ <munderover><mtext>X</mtext><mo id="mathOperator">O</mo><mo>O</mo></munderover>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10-ref.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10-ref.html
new file mode 100644
index 0000000000..8026c82489
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>op-dict mo accent</title>
+</head>
+<body>
+ <math>
+ <munderover><mtext>X</mtext><mo accent="true">&#x2192;</mo><mo>O</mo></munderover>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10.html
new file mode 100644
index 0000000000..67217592ca
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-10.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>op-dict mo accent</title>
+ <link rel="match" href="op-dict-10-ref.html"/>
+</head>
+<body>
+ <math>
+ <munderover><mtext>X</mtext><mo>&#x2192;</mo><mo>O</mo></munderover>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11-ref.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11-ref.html
new file mode 100644
index 0000000000..8026c82489
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11-ref.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>op-dict mo accent</title>
+</head>
+<body>
+ <math>
+ <munderover><mtext>X</mtext><mo accent="true">&#x2192;</mo><mo>O</mo></munderover>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11.html b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11.html
new file mode 100644
index 0000000000..d2b93644ce
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mo-accent/op-dict-11.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>op-dict mo accent</title>
+ <link rel="mismatch" href="op-dict-11-ref.html"/>
+</head>
+<body>
+ <math>
+ <munderover><mtext>X</mtext><mo accent="false">&#x2192;</mo><mo>O</mo></munderover>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001-ref.html b/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001-ref.html
new file mode 100644
index 0000000000..0b6efcbafc
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ </head>
+ <body>
+ <math>
+ <mpadded mathbackground="blue" width="100px" height="3height" depth="3depth"
+ lspace="0" voffset="10px">
+ <mpadded mathbackground="red" width="20px" height="10px"
+ depth="10px">
+ </mpadded>
+ </mpadded>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001.html b/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001.html
new file mode 100644
index 0000000000..80ba835109
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/mpadded/mpadded-seudo-units-001.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ <meta name="assert" content="Verify basic rendering of mpadded with pseudo units.">
+ <link rel="match" href="mpadded-seudo-units-001-ref.html">
+ </head>
+ <body>
+ <math>
+ <!-- if lspace is used as a pseudounit, the lspace value is 0 -->
+ <mpadded mathbackground="blue" width="100px" height="3height" depth="3depth"
+ lspace="3lspace" voffset="10px">
+ <mpadded mathbackground="red" width="20px" height="10px"
+ depth="10px">
+ </mpadded>
+ </mpadded>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001-ref.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001-ref.html
new file mode 100644
index 0000000000..8ec9adf808
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001-ref.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ <style type="text/css">
+ div#square1 {
+ position:absolute;
+ width: 20px;
+ height: 20px;
+ left: -25px;
+ top: 25px;
+ background: red;
+ }
+ div#square2 {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ left: 40px;
+ top:30px;
+ background: blue;
+ }
+
+ div#square3 {
+ position:absolute;
+ width: 200px;
+ height: 200px;
+ background: green;
+ }
+ /* left = lspace = -25;
+ top = HeightBig - HeightSmall - voffsetSmall
+ = 50 - 10 - 15 = 25px */
+ /* left = lsapce = 40px;
+ top = HeightVeryBig - HeightBig - voffsetBig
+ = 100 - 50 - 20 = 30px */
+ </style>
+ </head>
+ <body>
+ <div id="square3">
+ <div id="square2">
+ <div id="square1">
+ </div>
+ </div>
+ </div>
+ </body>
+<html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001.html
new file mode 100644
index 0000000000..0842d97eb9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ <meta name="assert" content="Verify negative mpadded@lspace.">
+ <link rel="match" href="mpadded-negative-attributes-001-ref.html">
+ </head>
+ <body>
+ <math>
+ <mpadded mathbackground="green" width="200px" height="100px" depth="100px"
+ lspace="40px" voffset="20px">
+ <mpadded mathbackground="blue" width="100px" height="50px" depth="50px"
+ lspace="-25px" voffset="15px">
+ <mpadded mathbackground="red" width="20px" height="10px"
+ depth="10px">
+ </mpadded>
+ </mpadded>
+ </mpadded>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002-ref.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002-ref.html
new file mode 100644
index 0000000000..31ae7f2491
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ </head>
+ <body>
+ <math>
+ <mpadded mathbackground="blue" width="100px" height="100px" depth="0px"
+ lspace="20px" voffset="10px">
+ <mpadded mathbackground="red" width="20px" height="10px"
+ depth="10px">
+ </mpadded>
+ </mpadded>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002.html
new file mode 100644
index 0000000000..b2de08e811
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/mpadded-negative-attributes-002.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test mpadded</title>
+ <meta name="assert" content="Verify negative mpadded@width/height/depth.">
+ <link rel="match" href="mpadded-negative-attributes-002-ref.html">
+ </head>
+ <body>
+ <math>
+ <!--if height, depth or width is a negative value, 0px is the value applied -->
+ <mpadded mathbackground="blue" width="100px" height="100px" depth="-100px"
+ lspace="20px" voffset="10px">
+ <mpadded mathbackground="red" width="20px" height="10px"
+ depth="10px">
+ </mpadded>
+ </mpadded>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001-ref.xhtml b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001-ref.xhtml
new file mode 100644
index 0000000000..86af23a887
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001-ref.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mn>3</mn>
+ <mo>+</mo>
+ <mn>2</mn>
+ </math>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001.xhtml b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001.xhtml
new file mode 100644
index 0000000000..600b955a27
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-lspace-rspace-001.xhtml
@@ -0,0 +1,16 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>negative lspace/rspace</title>
+ <link rel="match" href="negative-lspace-rspace-001-ref.xhtml"/>
+ <link rel="assert" href="Verify that negative lspace/rspace are ignored."/>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=411227"/>
+ <link rel="help" href="https://github.com/w3c/mathml-core/issues/132"/>
+ </head>
+ <body>
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <mn>3</mn>
+ <mo lspace="-5pt" rspace="-4pt">+</mo>
+ <mn>2</mn>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1-ref.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1-ref.html
new file mode 100644
index 0000000000..ccf1ed995b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>negative mspace</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mspace width="1em" height="1em" mathbackground="red"></mspace>
+ <mspace width="1em" height="1em" mathbackground="blue"></mspace>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mrow>
+ <mspace width="1em" height="1em" mathbackground="blue"></mspace>
+ <mspace width="1em" height="1em" mathbackground="red"></mspace>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1.html b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1.html
new file mode 100644
index 0000000000..403a98b409
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/negative-lengths/negative-mspace-1.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>negative mspace</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="negative-mspace-1-ref.html"/>
+ <link rel="assert" href="Verify that negative width on an mspace element causes overlap of previous and next siblings."/>
+ <link rel="help" href="https://github.com/w3c/mathml-core/issues/132"/>
+ </head>
+ <body>
+ <p>
+ <math>
+ <mrow>
+ <mspace width="2em" height="1em" mathbackground="red"></mspace>
+ <mspace width="-1em"/>
+ <mspace width="1em" height="1em" mathbackground="blue"></mspace>
+ </mrow>
+ </math>
+ </p>
+ <p>
+ <math dir="rtl">
+ <mrow>
+ <mspace width="2em" height="1em" mathbackground="red"></mspace>
+ <mspace width="-1em"/>
+ <mspace width="1em" height="1em" mathbackground="blue"></mspace>
+ </mrow>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1-ref.html
new file mode 100644
index 0000000000..e5ea01a7de
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1-ref.html
@@ -0,0 +1,77 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable>
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1a.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1a.html
new file mode 100644
index 0000000000..c642df9ebb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1a.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="columnlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="none">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1b.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1b.html
new file mode 100644
index 0000000000..291f3e229a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1b.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="columnlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="solid">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1c.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1c.html
new file mode 100644
index 0000000000..b6bdc39342
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-1c.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="columnlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="dashed">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2-ref.html
new file mode 100644
index 0000000000..84c96c5fe3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2-ref.html
@@ -0,0 +1,41 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="solid none dashed dashed dashed">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2a.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2a.html
new file mode 100644
index 0000000000..9b4b681b36
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2a.html
@@ -0,0 +1,42 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="columnlines-2-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="solid none dashed">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2b.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2b.html
new file mode 100644
index 0000000000..db595557dd
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-2b.html
@@ -0,0 +1,42 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="columnlines-2-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable columnlines="solid none dashed dashed dashed solid solid none solid none">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1-ref.html
new file mode 100644
index 0000000000..ce49f5dad4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1-ref.html
@@ -0,0 +1,32 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable columnlines="dashed">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 115px; left: 0px;
+ width: 50px; height: 55px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1.html
new file mode 100644
index 0000000000..d919933c21
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-1.html
@@ -0,0 +1,49 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="columnlines-3-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <!-- We assume there is a gap of more than 1px between dashes. Hence
+ putting two dashed lines with only one pixel of difference in their
+ vertical coordinates should not render the same as one dashed line
+ alone. The opposite is true for continuous line.
+ The red squares allow to ignore the difference at the bounds -->
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable columnlines="dashed">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 6px; left: 5px;">
+ <math>
+ <mtable columnlines="dashed">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 115px; left: 0px;
+ width: 50px; height: 55px; background: red;"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2-ref.html
new file mode 100644
index 0000000000..6549ad5263
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2-ref.html
@@ -0,0 +1,32 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable columnlines="solid">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 115px; left: 0px;
+ width: 50px; height: 55px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2.html b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2.html
new file mode 100644
index 0000000000..e95de7c581
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/columnlines-3-2.html
@@ -0,0 +1,49 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="columnlines-3-2-ref.html"/>
+ </head>
+
+ <body>
+
+ <!-- We assume there is a gap of more than 1px between dashes. Hence
+ putting two dashed lines with only one pixel of difference in their
+ vertical coordinates should not render the same as one dashed line
+ alone. The opposite is true for continuous line.
+ The red squares allow to ignore the difference at the bounds -->
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable columnlines="solid">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 6px; left: 5px;">
+ <math>
+ <mtable columnlines="solid">
+ <mtr>
+ <mtd><mspace height="150px"></mspace></mtd>
+ <mtd><mspace height="150px"></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 115px; left: 0px;
+ width: 50px; height: 55px; background: red;"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/dir-6a-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/dir-6a-ref.html
new file mode 100644
index 0000000000..d66b9c2710
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/dir-6a-ref.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Test dir=rtl</title></head>
+ <body>
+
+ <p>
+ mtable:
+ <math>
+ <mtable rowspacing="">
+ <mtr>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+
+ <p>
+ mtable:
+ <math>
+ <mtable frame="solid">
+ <mtr>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/dir-6a.html b/testing/web-platform/mozilla/tests/mathml/tables/dir-6a.html
new file mode 100644
index 0000000000..d71d289cf0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/dir-6a.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test dir=rtl</title>
+ <link rel="match" href="dir-6a-ref.html"/>
+ </head>
+ <body>
+
+ <p>
+ mtable:
+ <math dir="rtl">
+ <mtable rowspacing="">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+
+ <p>
+ mtable:
+ <math dir="rtl">
+ <mtable frame="solid">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align-ref.html
new file mode 100644
index 0000000000..800ba5b2d3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align-ref.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>align attribute on mstyle/math</title>
+<meta name="assert" content="align attribute on mstyle/math does not apply to mtable descendants." />
+<body>
+ <math align="baseline">
+ <mstyle align="baseline">
+ <mrow>
+ <mtext>_</mtext>
+ <mtable>
+ <mtr>
+ <mtd>
+ <mtext>&#x2015;</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>&#x2015;</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ <mtext>_</mtext>
+ </mrow>
+ </mstyle>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align.html b/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align.html
new file mode 100644
index 0000000000..396dbc599c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mstyle-align.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>align attribute on mstyle/math</title>
+<link rel="match" href="mstyle-align-ref.html" />
+<meta name="assert" content="align attribute on mstyle/math does not apply to mtable descendants." />
+<body>
+ <math align="baseline">
+ <mstyle align="baseline">
+ <mrow>
+ <mtext>_</mtext>
+ <mtable>
+ <mtr>
+ <mtd>
+ <mtext>&#x2015;</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>&#x2015;</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ <mtext>_</mtext>
+ </mrow>
+ </mstyle>
+ </math>
+</body>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2-ref.html
new file mode 100644
index 0000000000..0d14017e54
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align attribute: negative rownumber</title>
+</head>
+
+<body>
+
+<div>
+<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+<mrow>
+<mtable align="axis 0"><mtr><mtd><mi>&nbsp;</mi></mtd></mtr> <mtr><mtd><mi>&nbsp;</mi></mtd></mtr> <mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr></mtable>
+<mo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</mo>
+<mtable align="axis 0"><mtr><mtd><mi>&nbsp;</mi></mtd></mtr> <mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr></mtable>
+<mo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</mo>
+<mtable align="axis 0"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable>
+</mrow>
+</math>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2.html
new file mode 100644
index 0000000000..a3e5b1c7cf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-2.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align attribute: negative rownumber</title>
+<link rel="match" href="mtable-align-negative-rownumber-2-ref.html"/>
+</head>
+
+<body>
+
+<div>
+<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+<mrow>
+<mtable align="axis -1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr></mtable>
+<mo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</mo>
+<mtable align="axis -1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr></mtable>
+<mo>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</mo>
+<mtable align="axis -1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable>
+</mrow>
+</math>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-ref.html
new file mode 100644
index 0000000000..ebf3bf8780
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber-ref.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align attribute: negative rownumber</title>
+</head>
+
+<body>
+
+<div>
+<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow>
+<mtable align="axis 3"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable><mo>=</mo>
+<mtable align="axis 1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable></mrow></math>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber.html
new file mode 100644
index 0000000000..dc654045ab
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-negative-rownumber.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align attribute: negative rownumber</title>
+<link rel="match" href="mtable-align-negative-rownumber-ref.html"/>
+</head>
+
+<body>
+
+<div>
+<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mrow>
+<mtable align="axis -1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable><mo>=</mo>
+<mtable align="axis 1"><mtr><mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> <mtd><mi>c</mi></mtd></mtr> <mtr><mtd><mi>d</mi></mtd> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd></mtr> <mtr><mtd><mi>g</mi></mtd> <mtd><mi>h</mi></mtd> <mtd><mi>i</mi></mtd></mtr></mtable></mrow></math>
+</div>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace-ref.html
new file mode 100644
index 0000000000..df39badc67
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace-ref.html
@@ -0,0 +1,342 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align : WhiteSpace Check</title>
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+ <style>
+ math {
+ font: 25px Ahem;
+ }
+ </style>
+</head>
+
+<body>
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+<br><br><br>
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+
+
+
+</body>
+
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace.html
new file mode 100644
index 0000000000..47d29e233a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-align-whitespace.html
@@ -0,0 +1,339 @@
+<!DOCTYPE html>
+<head>
+<title>mtable align : WhiteSpace Check</title>
+ <link rel="match" href="mtable-align-whitespace-ref.html"/>
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+ <style>
+ math {
+ font: 25px Ahem;
+ }
+ </style>
+</head>
+
+<body>
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center-3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center-3 ">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align=" center-3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align=" center-3 ">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align=" center -3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center -3 ">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align=" center -3 ">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+
+<br><br><br>
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="&#xA&#xD;&#x20;center&#xA&#xD;&#x20;-3&#xA&#xD;&#x9;">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="&#xA&#xD;&#x9;&#x20;center&#xA&#xD;&#x9;&#x20;-3&#xA&#xD;&#x9;&#x20;">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center-3&#xA&#xD;&#x9;&#x20;">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="&#xA&#xD;&#x9;&#x20;center-3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="&#xA&#xD;&#x9;&#x20;center-3&#xA&#xD;&#x9;&#x20;">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="&#xA&#xD;&#x9;&#x20;center&#xA&#xD;&#x9;&#x20;-3">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+
+ <math>
+
+ <mtext>X</mtext>
+ <mo>=</mo>
+ <mtable frame="solid" align="center&#xA&#xD;&#x9;&#x20;-3&#xA&#xD;&#x9;&#x20;">
+ <mtr>
+ <mtd><mtext>A</mtext></mtd>
+ <mtd><mtext>B</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>C</mtext></mtd>
+ <mtd><mtext>D</mtext></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mtext>E</mtext></mtd>
+ <mtd><mtext>F</mtext></mtd>
+ </mtr>
+ </mtable>
+
+ </math>
+
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable-dynamic.html
new file mode 100644
index 0000000000..a2e6509732
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable-dynamic.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-multi-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+
+ // Table 1 setup
+ table1.setAttribute("columnalign", "left center right");
+ // Table 2 setup
+ table2.setAttribute("columnalign", "right left center");
+ // Table 3 setup
+ table3.setAttribute("columnalign", "center right left");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnalign="left center right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right left center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center right left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable.html
new file mode 100644
index 0000000000..eb188cbe8f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtable.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-multi-ref.html"/>
+ </head>
+ <body>
+ <b>columnalign="left center right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="left center right">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right left center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="right left center">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center right left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="center right left">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr-dynamic.html
new file mode 100644
index 0000000000..8ed1fa7962
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr-dynamic.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-multi-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+ var rows = undefined;
+
+ // Table 1 setup
+ rows = table1.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "left center right");
+
+ // Table 2 setup
+ rows = table2.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "right left center");
+
+ // Table 3 setup
+ rows = table3.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "center right left");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnalign="left center right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right left center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center right left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr.html
new file mode 100644
index 0000000000..0c77587be6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-mtr.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-multi-ref.html"/>
+ </head>
+ <body>
+ <b>columnalign="left center right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="left center right">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="left center right">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="left center right">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right left center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="right left center">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="right left center">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="right left center">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center right left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="center right left">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="center right left">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="center right left">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-ref.html
new file mode 100644
index 0000000000..538eb2ad11
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-multi-ref.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ </head>
+ <body>
+ <b>columnalign="left center right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right left center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center right left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable-dynamic.html
new file mode 100644
index 0000000000..eefd2b8bb2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable-dynamic.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+
+ // Table 1 setup
+ table1.setAttribute("columnalign", "left");
+ // Table 2 setup
+ table2.setAttribute("columnalign", "center");
+ // Table 3 setup
+ table3.setAttribute("columnalign", "right");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnalign="left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable.html
new file mode 100644
index 0000000000..6bc72ef689
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtable.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-single-ref.html"/>
+ </head>
+ <body>
+ <b>columnalign="left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="left">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="center">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnalign="right">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr-dynamic.html
new file mode 100644
index 0000000000..bc82954d4a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr-dynamic.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+ var rows = undefined;
+
+ // Table 1 setup
+ rows = table1.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "left");
+
+ // Table 2 setup
+ rows = table2.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "center");
+
+ // Table 3 setup
+ rows = table3.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("columnalign", "right");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnalign="left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr.html
new file mode 100644
index 0000000000..0b52880bbf
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-mtr.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ <link rel="match" href="mtable-columnalign-single-ref.html"/>
+ </head>
+ <body>
+ <b>columnalign="left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="left">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="left">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="left">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="center">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="center">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="center">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr columnalign="right">
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ <mtd>
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="right">
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd>
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr columnalign="right">
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-ref.html
new file mode 100644
index 0000000000..69e7627f5b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnalign-single-ref.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnalign</title>
+ </head>
+ <body>
+ <b>columnalign="left"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="left">
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="center">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="center">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnalign="right"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>123</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>12345</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd columnalign="right">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd columnalign="right">
+ <mtext>1234567</mtext>
+ </mtd>
+ <mtd>
+ <mtext>1234567</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-mtable-dynamic.html
new file mode 100644
index 0000000000..c44f54a04d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-mtable-dynamic.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnlines</title>
+ <link rel="match" href="mtable-columnlines-multi-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+
+ // Table 1 setup
+ table1.setAttribute("columnlines", "solid dashed");
+ // Table 2 setup
+ table2.setAttribute("columnlines", "dashed solid");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnlines="solid dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnlines="dashed solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-ref.html
new file mode 100644
index 0000000000..f3ec936817
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-multi-ref.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnlines</title>
+ </head>
+ <body>
+ <b>columnlines="solid dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnlines="solid dashed">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnlines="dashed solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnlines="dashed solid">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-mtable-dynamic.html
new file mode 100644
index 0000000000..cc94d94179
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-mtable-dynamic.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML columnlines</title>
+ <link rel="match" href="mtable-columnlines-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+
+ // Table 1 setup
+ table1.setAttribute("columnlines", "solid");
+ // Table 2 setup
+ table2.setAttribute("columnlines", "dashed");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>columnlines="solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnlines="dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-ref.html
new file mode 100644
index 0000000000..d6fc000c77
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-columnlines-single-ref.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML columnlines</title>
+ </head>
+ <body>
+ <b>columnlines="solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnlines="solid">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>columnlines="dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable columnlines="dashed">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable-dynamic.html
new file mode 100644
index 0000000000..f8ebe79999
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable-dynamic.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-multi-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+
+ // Table 1 setup
+ table1.setAttribute("rowalign", "top center bottom");
+ // Table 2 setup
+ table2.setAttribute("rowalign", "bottom top center");
+ // Table 3 setup
+ table3.setAttribute("rowalign", "center bottom top");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>rowalign="top center bottom"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom top center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center bottom top"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable.html
new file mode 100644
index 0000000000..de8cd62e94
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-mtable.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-multi-ref.html"/>
+ </head>
+ <body>
+ <b>rowalign="top center bottom"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable rowalign="top center bottom">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom top center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowalign="bottom top center">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center bottom top"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowalign="center bottom top">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-ref.html
new file mode 100644
index 0000000000..6e1fc1910a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-multi-ref.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowalign</title>
+ </head>
+ <body>
+ <b>rowalign="top center bottom"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom top center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center bottom top"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable-dynamic.html
new file mode 100644
index 0000000000..c0c66c8979
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable-dynamic.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+
+ // Table 1 setup
+ table1.setAttribute("rowalign", "top");
+ // Table 2 setup
+ table2.setAttribute("rowalign", "center");
+ // Table 3 setup
+ table3.setAttribute("rowalign", "bottom");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>rowalign="top"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable.html
new file mode 100644
index 0000000000..2ecb4ee001
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtable.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-single-ref.html"/>
+ </head>
+ <body>
+ <b>rowalign="top"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable rowalign="top">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowalign="center">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowalign="bottom">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr-dynamic.html
new file mode 100644
index 0000000000..cb298c8047
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr-dynamic.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+ var table3 = document.getElementById("table3");
+ var rows = undefined;
+
+ // Table 1 setup
+ rows = table1.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("rowalign", "top");
+
+ // Table 2 setup
+ rows = table2.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("rowalign", "center");
+
+ // Table 3 setup
+ rows = table3.getElementsByTagName("mtr");
+ for(var i = 0; i < rows.length; i++)
+ rows[i].setAttribute("rowalign", "bottom");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>rowalign="top"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table3">
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr.html
new file mode 100644
index 0000000000..7481d29768
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-mtr.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowalign</title>
+ <link rel="match" href="mtable-rowalign-single-ref.html"/>
+ </head>
+ <body>
+ <b>rowalign="top"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr rowalign="top">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="top">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="top">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr rowalign="center">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="center">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="center">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr rowalign="bottom">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="bottom">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr rowalign="bottom">
+ <mtd>
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-ref.html
new file mode 100644
index 0000000000..b343cb7b8e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowalign-single-ref.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowalign</title>
+ </head>
+ <body>
+ <b>rowalign="top"</b> <br/>
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="top">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="center"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="center">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowalign="bottom"</b> <br />
+ <math>
+ <mstyle>
+ <mtable>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="5px" height="5px" mathbackground="red"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="10px" height="10px" mathbackground="green"></mspace>
+ </mtd>
+ <mtd rowalign="bottom">
+ <mspace width="10px" depth="15px" height="15px" mathbackground="blue"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-mtable-dynamic.html
new file mode 100644
index 0000000000..e00fcd3504
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-mtable-dynamic.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML rowlines</title>
+ <link rel="match" href="mtable-rowlines-multi-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+
+ // Table 1 setup
+ table1.setAttribute("rowlines", "solid dashed");
+ // Table 2 setup
+ table2.setAttribute("rowlines", "dashed solid");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>rowlines="solid dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowlines="dashed solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-ref.html
new file mode 100644
index 0000000000..ac5f1f1c2b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-multi-ref.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowlines</title>
+ </head>
+ <body>
+ <b>rowlines="solid dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowlines="solid dashed">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowlines="dashed solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowlines="dashed solid">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-mtable-dynamic.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-mtable-dynamic.html
new file mode 100644
index 0000000000..da283aaab9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-mtable-dynamic.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Test MathML rowlines</title>
+ <link rel="match" href="mtable-rowlines-single-ref.html"/>
+ <script type="text/javascript">
+ function doTest()
+ {
+ var table1 = document.getElementById("table1");
+ var table2 = document.getElementById("table2");
+
+ // Table 1 setup
+ table1.setAttribute("rowlines", "solid");
+ // Table 2 setup
+ table2.setAttribute("rowlines", "dashed");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </head>
+ <body>
+ <b>rowlines="solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table1">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowlines="dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable id="table2">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-ref.html
new file mode 100644
index 0000000000..000eaa2a24
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-rowlines-single-ref.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test MathML rowlines</title>
+ </head>
+ <body>
+ <b>rowlines="solid"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowlines="solid">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ <b>rowlines="dashed"</b> <br />
+ <math>
+ <mstyle>
+ <mtable rowlines="dashed">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </mstyle>
+ </math> <br />
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-width-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-width-ref.html
new file mode 100644
index 0000000000..d93f5a60b4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-width-ref.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable style="width:8em">
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable style="width:30px">
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable>
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/mtable-width.html b/testing/web-platform/mozilla/tests/mathml/tables/mtable-width.html
new file mode 100644
index 0000000000..e4e705c2e6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/mtable-width.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Check that mtable supports the width attribute</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="mtable-width-ref.html"/>
+ </head>
+
+ <body>
+
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable width="8em">
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable width="30px">
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+<div>
+ <math>
+ <mtext>|</mtext>
+ <mtable width="auto">
+ <mtr>
+ <mtd></mtd>
+ </mtr>
+ </mtable>
+ <mtext>|</mtext>
+ </math>
+</div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1-ref.html
new file mode 100644
index 0000000000..e5ea01a7de
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1-ref.html
@@ -0,0 +1,77 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable>
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1a.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1a.html
new file mode 100644
index 0000000000..973f25191c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1a.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="rowlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="none">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1b.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1b.html
new file mode 100644
index 0000000000..d4db5d3a97
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1b.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="rowlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="solid">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1c.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1c.html
new file mode 100644
index 0000000000..04488fc214
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-1c.html
@@ -0,0 +1,78 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="rowlines-1-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="dashed">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ <mtd>
+ <mn>6</mn>
+ </mtd>
+ <mtd>
+ <mn>7</mn>
+ </mtd>
+ <mtd>
+ <mn>8</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>9</mn>
+ </mtd>
+ <mtd>
+ <mn>10</mn>
+ </mtd>
+ <mtd>
+ <mn>11</mn>
+ </mtd>
+ <mtd>
+ <mn>12</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>13</mn>
+ </mtd>
+ <mtd>
+ <mn>14</mn>
+ </mtd>
+ <mtd>
+ <mn>15</mn>
+ </mtd>
+ <mtd>
+ <mn>16</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2-ref.html
new file mode 100644
index 0000000000..f66962bad6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2-ref.html
@@ -0,0 +1,51 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="none dashed solid solid solid">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2a.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2a.html
new file mode 100644
index 0000000000..a4d73a2f55
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2a.html
@@ -0,0 +1,52 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="rowlines-2-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="none dashed solid">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2b.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2b.html
new file mode 100644
index 0000000000..2ac9ea8fab
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-2b.html
@@ -0,0 +1,52 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="rowlines-2-ref.html"/>
+ </head>
+
+ <body>
+
+ <math>
+ <mtable rowlines="none dashed solid solid solid none dashed dashed none">
+ <mtr>
+ <mtd>
+ <mn>1</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>2</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>3</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>4</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>5</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>*</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1-ref.html
new file mode 100644
index 0000000000..04dac8cca4
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1-ref.html
@@ -0,0 +1,40 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ div, math {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ </head>
+
+ <body>
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable width="150px" rowlines="dashed">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 5px; left: 110px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1.html
new file mode 100644
index 0000000000..5d259cdbd3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-1.html
@@ -0,0 +1,60 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="mismatch" href="rowlines-3-1-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ div, math {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ </head>
+
+ <body>
+
+ <!-- We assume there is a gap of more than 1px between dashes. Hence
+ putting two dashed lines with only one pixel of difference in their
+ horizontal coordinates should not render the same as one dashed line
+ alone. The opposite is true for continuous line.
+ The red squares allow to ignore the difference at the bounds -->
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable width="150px" rowlines="dashed">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 6px;">
+ <math>
+ <mtable width="150px" rowlines="dashed">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 5px; left: 110px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2-ref.html
new file mode 100644
index 0000000000..3375c87c9b
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2-ref.html
@@ -0,0 +1,40 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ div, math {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ </head>
+
+ <body>
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable width="150px" rowlines="solid">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 5px; left: 112px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2.html b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2.html
new file mode 100644
index 0000000000..8b390a06d0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-3-2.html
@@ -0,0 +1,60 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>mtable frame</title>
+ <!-- Copyright (c) 2011 Design Science, Inc.
+ License: Apache License 2.0 -->
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <link rel="match" href="rowlines-3-2-ref.html"/>
+ <link rel="stylesheet" href="/fonts/ahem.css" />
+ <style>
+ div, math {
+ font: 25px/1 Ahem;
+ }
+ </style>
+ </head>
+
+ <body>
+
+ <!-- We assume there is a gap of more than 1px between dashes. Hence
+ putting two dashed lines with only one pixel of difference in their
+ horizontal coordinates should not render the same as one dashed line
+ alone. The opposite is true for continuous line.
+ The red squares allow to ignore the difference at the bounds -->
+
+ <div style="position: absolute; top: 5px; left: 5px;">
+ <math>
+ <mtable width="150px" rowlines="solid">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 6px;">
+ <math>
+ <mtable width="150px" rowlines="solid">
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mspace></mspace></mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </div>
+
+ <div style="position: absolute; top: 5px; left: 0px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ <div style="position: absolute; top: 5px; left: 112px;
+ width: 50px; height: 50px; background: red;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496-ref.xhtml b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496-ref.xhtml
new file mode 100644
index 0000000000..88aaad25f3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496-ref.xhtml
@@ -0,0 +1,22 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<body>
+
+<div><math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <mfenced open="[" close="]">
+ <mtable id="table" rowlines="dashed">
+ <mtr>
+ <mtd><mi>x</mi></mtd>
+ <mtd><mi>y</mi></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mi>z</mi></mtd>
+ <mtd><mi>w</mi></mtd>
+ </mtr>
+ </mtable>
+ </mfenced>
+</math></div>
+
+</body>
+
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496.xhtml b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496.xhtml
new file mode 100644
index 0000000000..2b5fc03ff9
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/rowlines-dynamic-mozilla-347496.xhtml
@@ -0,0 +1,25 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <link rel="match" href="rowlines-dynamic-mozilla-347496-ref.xhtml"/>
+ </head>
+
+<body onload="document.getElementById('table').setAttribute('rowlines', 'dashed')">
+
+<div><math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
+ <mfenced open="[" close="]">
+ <mtable id="table">
+ <mtr>
+ <mtd><mi>x</mi></mtd>
+ <mtd><mi>y</mi></mtd>
+ </mtr>
+ <mtr>
+ <mtd><mi>z</mi></mtd>
+ <mtd><mi>w</mi></mtd>
+ </mtr>
+ </mtable>
+ </mfenced>
+</math></div>
+
+</body>
+
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/semantics-4-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/semantics-4-ref.html
new file mode 100644
index 0000000000..92d3236c27
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/semantics-4-ref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
+ <mtable width="100%" mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+</math>
+
+<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
+ <mtable mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+</math>
+
+<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">
+ <mtable width="100%" mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+</math>
+
+<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">
+ <mtable mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+</math>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/semantics-4.html b/testing/web-platform/mozilla/tests/mathml/tables/semantics-4.html
new file mode 100644
index 0000000000..bdd13a9c24
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/semantics-4.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<head>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1131000"/>
+ <link rel="match" href="semantics-4-ref.html"/>
+</head>
+
+<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
+ <semantics>
+ <mtable width="100%" mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+ <annotation encoding="application/x-tex">y</annotation>
+ </semantics>
+</math>
+
+<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
+ <semantics>
+ <mtable mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+ <annotation encoding="application/x-tex">y</annotation>
+ </semantics>
+</math>
+
+<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">
+ <semantics>
+ <mtable width="100%" mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+ <annotation encoding="application/x-tex">y</annotation>
+ </semantics>
+</math>
+
+<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">
+ <semantics>
+ <mtable mathbackground="red">
+ <mtr> <mtd><mi>x</mi></mtd> </mtr>
+ </mtable>
+ <annotation encoding="application/x-tex">y</annotation>
+ </semantics>
+</math>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/spacing-attributes-001.html b/testing/web-platform/mozilla/tests/mathml/tables/spacing-attributes-001.html
new file mode 100644
index 0000000000..08e2d63ecd
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/spacing-attributes-001.html
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Test framespacing/rowspacing/columnspacing attributes</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=330964"/>
+</head>
+<body>
+
+<math>
+ <mtable framespacing="7px 20px" frame="solid" rowspacing="11px 27px" columnspacing="5px 16px"
+ style="border-width: 2px;" id="mtable0">
+ <mtr>
+ <mtd id="mtd0">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd1">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd2">
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd id="mtd3">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd4">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd5">
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd id="mtd6">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd7">
+ <mn>X</mn>
+ </mtd>
+ <mtd id="mtd8">
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+</math>
+
+<script type="application/javascript">
+
+ var epsilon = 2;
+
+ rectTable = document.getElementById("mtable0").getBoundingClientRect();
+ rect0 = document.getElementById("mtd0").getBoundingClientRect();
+ rect1 = document.getElementById("mtd1").getBoundingClientRect();
+ rect2 = document.getElementById("mtd2").getBoundingClientRect();
+ rect3 = document.getElementById("mtd3").getBoundingClientRect();
+ rect4 = document.getElementById("mtd4").getBoundingClientRect();
+ rect5 = document.getElementById("mtd5").getBoundingClientRect();
+ rect6 = document.getElementById("mtd6").getBoundingClientRect();
+ rect7 = document.getElementById("mtd7").getBoundingClientRect();
+ rect8 = document.getElementById("mtd8").getBoundingClientRect();
+ test(function() {
+ assert_approx_equals(rect1.left - rect0.right, 5, epsilon);
+ assert_approx_equals(rect2.left - rect1.right, 16, epsilon);
+ assert_approx_equals(rect4.left - rect3.right, 5, epsilon);
+ assert_approx_equals(rect5.left - rect4.right, 16, epsilon);
+ assert_approx_equals(rect7.left - rect6.right, 5, epsilon);
+ assert_approx_equals(rect8.left - rect7.right, 16, epsilon);
+ }, "columnspacing");
+ test(function() {
+ assert_approx_equals(rect3.top - rect0.bottom, 11, epsilon);
+ assert_approx_equals(rect4.top - rect1.bottom, 11, epsilon);
+ assert_approx_equals(rect5.top - rect2.bottom, 11, epsilon);
+ assert_approx_equals(rect6.top - rect3.bottom, 27, epsilon);
+ assert_approx_equals(rect7.top - rect4.bottom, 27, epsilon);
+ assert_approx_equals(rect8.top - rect5.bottom, 27, epsilon);
+ }, "rowspacing");
+ // Remember to subtract border
+ test(function() {
+ assert_approx_equals(rect0.left - rectTable.left - 2, 7, epsilon);
+ assert_approx_equals(rect3.left - rectTable.left - 2, 7, epsilon);
+ assert_approx_equals(rect6.left - rectTable.left - 2, 7, epsilon);
+ }, "framespacing left");
+ test(function() {
+ assert_approx_equals(rect0.top - rectTable.top - 2, 20, epsilon);
+ assert_approx_equals(rect1.top - rectTable.top - 2, 20, epsilon);
+ assert_approx_equals(rect2.top - rectTable.top - 2, 20, epsilon);
+ }, "framespacing top");
+ test(function() {
+ assert_approx_equals(rectTable.bottom - rect6.bottom - 2, 20, epsilon);
+ assert_approx_equals(rectTable.bottom - rect7.bottom - 2, 20, epsilon);
+ assert_approx_equals(rectTable.bottom - rect8.bottom - 2, 20, epsilon);
+ }, "framespacing bottom");
+ test(function() {
+ assert_approx_equals(rectTable.right - rect2.right - 2, 7, epsilon);
+ assert_approx_equals(rectTable.right - rect5.right - 2, 7, epsilon);
+ assert_approx_equals(rectTable.right - rect8.right - 2, 7, epsilon);
+ }, "framespacing right");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1-ref.html
new file mode 100644
index 0000000000..3ad0881e22
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1-ref.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Table spacing default values</title></head>
+ <body>
+
+ <p>
+ <math>
+ <mtable rowspacing="1.0ex" columnspacing="0.8em" framespacing="0em 0ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math >
+ <mtable frame="solid" rowspacing="1.0ex" columnspacing="0.8em" framespacing="0.4em 0.5ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1.html
new file mode 100644
index 0000000000..0259e6dea2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-1.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Table spacing default values</title>
+ <link rel="match" href="tablespacing-1-ref.html"/>
+ </head>
+ <body>
+
+ <p>
+ <math>
+ <mtable rowspacing="">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mtable frame="solid" rowspacing="">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2-ref.html
new file mode 100644
index 0000000000..0bf2e4822a
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2-ref.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Additional values ignored and insufficient ones expanded</title></head>
+ <body>
+
+ <p>
+ <math>
+ <mtable rowspacing="1.0ex 3.0ex 7.0ex" columnspacing="0.8em 2em 3em" framespacing="0em 0ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mtable rowspacing="1.0ex 3.0ex 3.0ex" columnspacing="0.8em 2em 2em">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2.html
new file mode 100644
index 0000000000..e5b2aa33a2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-2.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Additional values ignored and insufficient ones expanded</title>
+ <link rel="match" href="tablespacing-2-ref.html"/>
+ </head>
+ <body>
+
+ <p>
+ <math>
+ <mtable rowspacing="1.0ex 3.0ex 7.0ex 10ex 12ex" columnspacing="0.8em 2em 3em 5em 7em" framespacing="6em 9ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mtable rowspacing="1.0ex 3.0ex" columnspacing="0.8em 2em">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3-ref.html
new file mode 100644
index 0000000000..f4180d8dfb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3-ref.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Single value for rowspacing/columnspacing accepted</title></head>
+ <body>
+
+ <p>
+ <math>
+ <mtable columnspacing="4em 4em 4em">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mtable rowspacing="4.0ex 4.0ex 4.0ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3.html
new file mode 100644
index 0000000000..65a4bf5839
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-3.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Single value for rowspacing/columnspacing accepted</title>
+ <link rel="match" href="tablespacing-3-ref.html"/>
+ </head>
+ <body>
+
+ <p>
+ <math>
+ <mtable columnspacing="4em">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mtable rowspacing="4.0ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ <mtd>
+ <mtext>g</mtext>
+ </mtd>
+ <mtd>
+ <mtext>h</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>i</mtext>
+ </mtd>
+ <mtd>
+ <mtext>j</mtext>
+ </mtd>
+ <mtd>
+ <mtext>k</mtext>
+ </mtd>
+ <mtd>
+ <mtext>l</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>m</mtext>
+ </mtd>
+ <mtd>
+ <mtext>n</mtext>
+ </mtd>
+ <mtd>
+ <mtext>o</mtext>
+ </mtd>
+ <mtd>
+ <mtext>p</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4-ref.html
new file mode 100644
index 0000000000..42474859e7
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4-ref.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic tests involving adding and removing elements</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <math>
+ <mtable columnspacing="5em 7em">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable columnspacing="5em">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex 4ex">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex 4ex" columnspacing="4em">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ <mtd>
+ <mn>w</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4.html
new file mode 100644
index 0000000000..25d27b4479
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-4.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic tests involving adding and removing elements</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="tablespacing-4-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mtable columnspacing="5em 7em" id="mtable0a">
+ <mtr id="mtr0">
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable columnspacing="5em 7em">
+ <mtr id="mtr0a">
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ <mtd id="mtd0">
+ <mn>y</mn>
+ </mtd>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex 4ex" id="mtable0">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex 4ex" id="mtable1">
+ <mtr>
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ </mtr>
+ <mtr id="mtr1">
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable rowspacing="2ex 4ex" columnspacing="4em">
+ <mtr id="mtr2">
+ <mtd>
+ <mn>x</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>y</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>z</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <script>
+ function doTest() {
+ // Add a table cell
+ var mn0 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mn");
+ mn0.innerHTML = 'z';
+ var mtd0 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mtd");
+ mtd0.appendChild(mn0);
+ document.getElementById("mtr0").appendChild(mtd0);
+ // Remove a table cell
+ document.getElementById("mtr0a").removeChild(document.getElementById("mtd0"));
+ // Add a table row
+ var mn1 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mn");
+ mn1.innerHTML = 'z';
+ var mtd1 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mtd");
+ mtd1.appendChild(mn1);
+ var mtr1 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mtr");
+ mtr1.appendChild(mtd1);
+ document.getElementById("mtable0").appendChild(mtr1);
+ // Remove a table row
+ document.getElementById("mtable1").removeChild(document.getElementById("mtr1"));
+ // Add a table cell to a table containing several rows
+ var mn2 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mn");
+ mn2.innerHTML = 'w';
+ var mtd2 = document.createElementNS("http://www.w3.org/1998/Math/MathML", "mtd");
+ mtd2.appendChild(mn2);
+ document.getElementById("mtr2").appendChild(mtd2);
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5-ref.html
new file mode 100644
index 0000000000..c79ccd1e88
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5-ref.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <math>
+ <mtable id="mtable0" >
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable3" rowspacing="2ex 4ex">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable4" columnspacing="2em 3em" >
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable5" framespacing="2em 2ex" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable6">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5.html
new file mode 100644
index 0000000000..61595de845
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5.html
@@ -0,0 +1,296 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="tablespacing-5-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mtable id="mtable0" rowspacing="2ex 3ex">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1" columnspacing="2em 3em">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" framespacing="2em 2ex" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable3" >
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable4" >
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable5" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable6" frame="none">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <script>
+ function doTest() {
+ // remove spacing attributes
+ document.getElementById("mtable0").removeAttribute("rowspacing");
+ document.getElementById("mtable1").removeAttribute("columnspacing");
+ document.getElementById("mtable2").removeAttribute("framespacing");
+
+ // add spacing attributes
+ document.getElementById("mtable3").setAttribute("rowspacing", "2ex 4ex");
+ document.getElementById("mtable4").setAttribute("columnspacing", "2em 3em");
+ document.getElementById("mtable5").setAttribute("framespacing", "2em 2ex");
+
+ // framespacing doesn't apply with frame="none"
+ document.getElementById("mtable6").setAttribute("framespacing", "2em 2ex");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a-ref.html
new file mode 100644
index 0000000000..4d0820805c
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a-ref.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <!-- There are at present two implementations of mtable spacing behaviour,
+ one based on CSS and the other on rowspacing/columnspacing/framespacing
+ attributes which the user can select. This reftest tests that dynamic
+ transitions from one system to the other work appropriately. -->
+ <math>
+ <mtable id="mtable0" columnspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" frame="solid" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable3" rowspacing="2ex 4ex" columspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable4" columnspacing="2em 3em" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable5" framespacing="2em 2ex" frame="solid" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable6" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a.html
new file mode 100644
index 0000000000..8269e599b3
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-5a.html
@@ -0,0 +1,296 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="tablespacing-5a-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mtable id="mtable0" rowspacing="2ex 3ex" columnspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1" columnspacing="2em 3em" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" framespacing="2em 2ex" frame="solid" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable3" columspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable4" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable5" frame="solid" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable6" frame="none" rowspacing="">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <script>
+ function doTest() {
+ // remove spacing attributes
+ document.getElementById("mtable0").removeAttribute("rowspacing");
+ document.getElementById("mtable1").removeAttribute("columnspacing");
+ document.getElementById("mtable2").removeAttribute("framespacing");
+
+ // add spacing attributes
+ document.getElementById("mtable3").setAttribute("rowspacing", "2ex 4ex");
+ document.getElementById("mtable4").setAttribute("columnspacing", "2em 3em");
+ document.getElementById("mtable5").setAttribute("framespacing", "2em 2ex");
+
+ // framespacing doesn't apply with frame="none"
+ document.getElementById("mtable6").setAttribute("framespacing", "2em 2ex");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6-ref.html
new file mode 100644
index 0000000000..a08f5a0ca5
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6-ref.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ </head>
+ <body>
+ <math>
+ <mtable id="mtable0" rowspacing="3ex 7ex">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1" columnspacing="3em 7em">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" framespacing="3em 7ex" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6.html
new file mode 100644
index 0000000000..96fa362494
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-6.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <title>Dynamic tests involving changes to row/column/framespacing</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="tablespacing-6-ref.html"/>
+ </head>
+ <body>
+ <math>
+ <mtable id="mtable0" rowspacing="2ex 3ex">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable1" columnspacing="2em 3em">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <math>
+ <mtable id="mtable2" framespacing="2em 2ex" frame="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ <p>
+ <script>
+ function doTest() {
+
+ // modify existing spacing attributes
+ document.getElementById("mtable0").setAttribute("rowspacing", "3ex 7ex");
+ document.getElementById("mtable1").setAttribute("columnspacing", "3em 7em");
+ document.getElementById("mtable2").setAttribute("framespacing", "3em 7ex");
+
+ document.documentElement.removeAttribute("class");
+ }
+ document.documentElement.addEventListener("TestRendered", doTest);
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7-ref.html
new file mode 100644
index 0000000000..ad2d53b03e
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7-ref.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html>
+ <head><title>Table spacing error handling</title></head>
+ <body>
+
+ <p>
+ <math>
+ <mtable frame="solid" rowspacing="5.0ex 1.0ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math >
+ <mtable frame="solid" columnspacing="5em 0.8em">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ <p>
+ <math >
+ <mtable frame="solid" framespacing="0.4em 0.5ex">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7.html
new file mode 100644
index 0000000000..5d51bfd3e2
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-7.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Table spacing error handling</title>
+ <link rel="match" href="tablespacing-7-ref.html"/>
+ </head>
+ <body>
+
+ <p>
+ <math>
+ <mtable frame="solid" rowspacing="5.0ex cat">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+ </p>
+ <p>
+ <math >
+ <mtable frame="solid" columnspacing="5em cat">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ <p>
+ <math >
+ <mtable frame="solid" framespacing="0.4em cat">
+ <mtr>
+ <mtd>
+ <mtext>a</mtext>
+ </mtd>
+ <mtd>
+ <mtext>b</mtext>
+ </mtd>
+ <mtd>
+ <mtext>c</mtext>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mtext>d</mtext>
+ </mtd>
+ <mtd>
+ <mtext>e</mtext>
+ </mtd>
+ <mtd>
+ <mtext>f</mtext>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+
+ </p>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8-ref.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8-ref.html
new file mode 100644
index 0000000000..a39c15b3d6
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8-ref.html
@@ -0,0 +1,38 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <body>
+
+ <math>
+ <mtable rowspacing="30px" columnspacing="30px">
+ <mtr>
+ <mtd>
+ <mspace width="50px" height="30px"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="50px" height="30px"></mspace>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mspace width="50px" height="30px"></mspace>
+ </mtd>
+ <mtd>
+ <mspace width="50px" height="30px"></mspace>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+ <div style="position: absolute; top: 0; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 70px; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 0px;
+ width: 60px; height: 100px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 90px;
+ width: 60px; height: 100px; background: black;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8a.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8a.html
new file mode 100644
index 0000000000..9ed7adf31d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8a.html
@@ -0,0 +1,42 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="mismatch" href="tablespacing-8-ref.html"/>
+ </head>
+ <body>
+
+ <math>
+ <mtable rowspacing="30px" columnspacing="60px"
+ rowlines="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+ <div style="position: absolute; top: 0; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 70px; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 0px;
+ width: 60px; height: 100px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 90px;
+ width: 60px; height: 100px; background: black;"></div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8b.html b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8b.html
new file mode 100644
index 0000000000..ff01ce9e73
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/tables/tablespacing-8b.html
@@ -0,0 +1,41 @@
+<!-- -*- mode: HTML; tab-width: 2; indent-tabs-mode: nil; -*- -->
+<!-- vim: set tabstop=2 expandtab shiftwidth=2 textwidth=80: -->
+<!DOCTYPE html>
+<html>
+ <head>
+ <link rel="mismatch" href="tablespacing-8-ref.html"/>
+ </head>
+ <body>
+
+ <math>
+ <mtable rowspacing="20px" columnspacing="100px"
+ columnlines="solid">
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ <mtr>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ <mtd>
+ <mn>X</mn>
+ </mtd>
+ </mtr>
+ </mtable>
+ </math>
+
+ <div style="position: absolute; top: 0; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 70px; left: 0px;
+ width: 150px; height: 40px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 0px;
+ width: 60px; height: 100px; background: black;"></div>
+ <div style="position: absolute; top: 0px; left: 90px;
+ width: 60px; height: 100px; background: black;"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3-ref.html
new file mode 100644
index 0000000000..6d82b4ba0d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>table-width-3</title>
+ <meta charset="utf-8"/>
+ <style type="text/css">
+ html { background-color: grey; }
+ td { border: 1px solid white;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-right: 1px;
+ padding-left: 1px;
+ background-color: black;
+ color: red; }
+ mi, mtext { font-size: 3em; }
+ span { font-style: italic; display: inline-block; }
+ </style>
+ </head>
+ <body>
+ <table>
+ <tr>
+ <td>
+ <math>
+ <mphantom>
+ <mi>f</mi>
+ </mphantom>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3.html
new file mode 100644
index 0000000000..f5211e3cad
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/table-width-3.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>table-width-3</title>
+ <meta charset="utf-8"/>
+ <link rel="match" href="table-width-3-ref.html"/>
+ <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=415413"/>
+ <style type="text/css">
+ html { background-color: grey; }
+ td { border: 1px solid white;
+ padding-top: 0;
+ padding-bottom: 0;
+ padding-right: 1px;
+ padding-left: 1px;
+ background-color: black;
+ color: black; }
+ mi, mtext { font-size: 3em; }
+ span { font-style: italic; display: inline-block; }
+ </style>
+ </head>
+ <body>
+ <table>
+ <tr>
+ <td>
+ <math>
+ <mi> f </mi>
+ </math>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1-ref.html
new file mode 100644
index 0000000000..b2145dedf0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<math><mo minsize="10em">(</mo></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1.html
new file mode 100644
index 0000000000..c7a63dd131
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-1.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<link rel="match" href="whitespace-trim-1-ref.html"/>
+<math><mo minsize="10em"> ( </mo></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2-ref.html
new file mode 100644
index 0000000000..8b8f7b8129
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<math><mi>(</mi></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2.html
new file mode 100644
index 0000000000..db84b1207d
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-2.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<link rel="match" href="whitespace-trim-2-ref.html"/>
+<math><mi> ( </mi></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3-ref.html
new file mode 100644
index 0000000000..b8ba67d8f0
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<math><mi>&#x210e;</mi></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3.html
new file mode 100644
index 0000000000..d26dddfcad
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-3.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<link rel="match" href="whitespace-trim-3-ref.html"/>
+<math><mi> &#x210e; </mi></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4-ref.html
new file mode 100644
index 0000000000..f5951467cb
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4-ref.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<math><ms>x</ms></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4.html
new file mode 100644
index 0000000000..8a93d94b15
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-4.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<link rel="match" href="whitespace-trim-4-ref.html"/>
+<math><ms> x </ms></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5-ref.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5-ref.html
new file mode 100644
index 0000000000..560259c86f
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<math><mtext>|</mtext><mi>x</mi><mtext>|</mtext></math>
+<math><mtext>|</mtext><mn>x</mn><mtext>|</mtext></math>
+<math><mtext>|</mtext><mo>x</mo><mtext>|</mtext></math>
+<math><mtext>|</mtext><mtext>x</mtext><mtext>|</mtext></math>
diff --git a/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5.html b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5.html
new file mode 100644
index 0000000000..48f62691a1
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/mathml/whitespace-trimming/whitespace-trim-5.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<link rel="match" href="whitespace-trim-5-ref.html"/>
+<math><mtext>|</mtext><mi> x </mi><mtext>|</mtext></math>
+<math><mtext>|</mtext><mn> x </mn><mtext>|</mtext></math>
+<math><mtext>|</mtext><mo> x </mo><mtext>|</mtext></math>
+<math><mtext>|</mtext><mtext> x </mtext><mtext>|</mtext></math>