Bug 1448236 [wpt PR 10152] - [css-typed-om] Support font properties., a=testonly
authorDarren Shen <shend@chromium.org>
Mon, 09 Apr 2018 18:09:46 +0000
changeset 467178 da41b05b899f09b9db9c9515be5af1960f177a9b
parent 467177 dfa12b7487ef92a3edf36c7bfc823f651b1c9b77
child 467179 37d525724639f11ca2ba1e37fc3fc07594455282
push id9165
push userasasaki@mozilla.com
push dateThu, 26 Apr 2018 21:04:54 +0000
treeherdermozilla-beta@064c3804de2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1448236, 10152, 820299, 977247, 545721
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1448236 [wpt PR 10152] - [css-typed-om] Support font properties., a=testonly Automatic update from web-platform-tests[css-typed-om] Support font properties. We try to support as many font properties as possible. However, several font properties have not been implemented in Blink yet. Also, the computed value for font-stretch is wrong (it should be as specified, and no rounding should occur). Spec: https://drafts.css-houdini.org/css-typed-om-1/#reify-stylevalue Bug: 820299 Change-Id: I744d03a08856bd6d0df6bd07230ec80138e6e3b7 Reviewed-on: https://chromium-review.googlesource.com/977247 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Darren Shen <shend@chromium.org> Cr-Commit-Position: refs/heads/master@{#545721} wpt-commits: 4ff4c6645e47cf6e2585e3bd3f648f5c9491a859 wpt-pr: 10152 wpt-commits: 4ff4c6645e47cf6e2585e3bd3f648f5c9491a859 wpt-pr: 10152
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-family.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-language-override.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-palette.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-presentation.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-size.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html
testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -317684,34 +317684,112 @@
     ]
    ],
    "css/css-typed-om/the-stylepropertymap/properties/float.html": [
     [
      "/css/css-typed-om/the-stylepropertymap/properties/float.html",
      {}
     ]
    ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-family.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-language-override.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-palette.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-presentation.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html",
+     {}
+    ]
+   ],
    "css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
     [
      "/css/css-typed-om/the-stylepropertymap/properties/font-size.html",
      {}
     ]
    ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html",
+     {}
+    ]
+   ],
    "css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
     [
      "/css/css-typed-om/the-stylepropertymap/properties/font-style.html",
      {}
     ]
    ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-variant.html",
+     {}
+    ]
+   ],
+   "css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html",
+     {}
+    ]
+   ],
    "css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
     [
      "/css/css-typed-om/the-stylepropertymap/properties/font-weight.html",
      {}
     ]
    ],
+   "css/css-typed-om/the-stylepropertymap/properties/font.html": [
+    [
+     "/css/css-typed-om/the-stylepropertymap/properties/font.html",
+     {}
+    ]
+   ],
    "css/css-typed-om/the-stylepropertymap/properties/height.html": [
     [
      "/css/css-typed-om/the-stylepropertymap/properties/height.html",
      {}
     ]
    ],
    "css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
     [
@@ -523171,28 +523249,80 @@
   "css/css-typed-om/the-stylepropertymap/properties/flex.html": [
    "3bfc9c981b2131ed480f5d0bc2b90f76743e2b28",
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/float.html": [
    "1dfca0045c2b57f36d5165139087301ffe54c63a",
    "testharness"
   ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
+   "72e8dd4dd54081fe9b2278c860f2752e2d17de74",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
+   "e43730c10c85fc5bbed8e6a32c594f5c643e4786",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
+   "7183f6fcb2fd4e713d3b2d6cbc7211a8b2a071a6",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
+   "8ec2ff5bbc9913680fd5fab16949f4aaf4eca740",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
+   "fe359fc963e95d1ca539bb9f217164292e5a13fb",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
+   "1a8fa0ace8426d7cfecaaa79e2f4fbd77c5265ab",
+   "testharness"
+  ],
   "css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
-   "bb31e5cb88492bece2c54ff106d01e789e3f08a6",
+   "5b405bd6bb5ea140bf6a3d62b670e2924fcc6378",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
+   "52438b3be5d9c1037863880834e766dda7d07d5a",
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
    "c4a42872dca602b71f021799d29e404cfa7ed90e",
    "testharness"
   ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
+   "de9400e7f238dbc1dc47fb5f483b3ba01eefe934",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
+   "141eab85e1a4bcbc051d61dc502bb90613eae996",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
+   "737a0494625e9d22c16f791fbb437c47d4a2923b",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
+   "b538f2ed407c8cfd4718c28082da3de237cd9953",
+   "testharness"
+  ],
+  "css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
+   "566a8c49d7a7e71e960061fee88c9b17d33f1e45",
+   "testharness"
+  ],
   "css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
    "6429fa7266a227e93cb0a5d3eb19468b0f73fce8",
    "testharness"
   ],
+  "css/css-typed-om/the-stylepropertymap/properties/font.html": [
+   "6f3f672ecb0ad0b4391b7c7fbd8bb666b77a1efc",
+   "testharness"
+  ],
   "css/css-typed-om/the-stylepropertymap/properties/height.html": [
    "617ec941ab1cbd02b31b8a9bb7ce6da311109476",
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
    "883b36434d3e3d8fee25f0ae0fee9884b5ceef44",
    "testharness"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-family.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-family' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+// FIXME: font-family is list-valued. Run list-valued tests here too.
+runUnsupportedPropertyTests('font-family', [
+  'Georgia',
+  '"Gill Sans"',
+  'sans-serif',
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-language-override.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-language-override' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-language-override', [
+  { syntax: 'normal' },
+]);
+
+runUnsupportedPropertyTests('font-language-override', [
+  '"SRB"',
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-optical-sizing' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-optical-sizing', [
+  { syntax: 'auto' },
+  { syntax: 'none' },
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-palette.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-palette' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-palette', [
+  { syntax: 'normal' },
+  { syntax: 'light' },
+  { syntax: 'dark' },
+]);
+
+runUnsupportedPropertyTests('font-palette', [
+  'Augusta'
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-presentation.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-presentation' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-presentation', [
+  { syntax: 'auto' },
+  { syntax: 'text' },
+  { syntax: 'emoji' },
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-size-adjust' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-size-adjust', [
+  { syntax: 'none' },
+  {
+    syntax: '<number>',
+    specified: assert_is_equal_with_range_handling
+  },
+]);
+
+</script>
--- a/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-size.html
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-size.html
@@ -8,58 +8,65 @@
 <script src="/resources/testharnessreport.js"></script>
 <script src="../../resources/testhelper.js"></script>
 <script src="resources/testsuite.js"></script>
 <body>
 <div id="log"></div>
 <script>
 'use strict';
 
-runPropertyTests('font-size', [
-  {
-    syntax: 'xx-small',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'x-small',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'small',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'medium',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'large',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'x-large',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'xx-large',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'larger',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: 'smaller',
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: '<length>',
-    specified: assert_is_equal_with_range_handling,
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-  {
-    syntax: '<percentage>',
-    specified: assert_is_equal_with_range_handling,
-    computed: (_, result) => assert_is_unit('px', result)
-  },
-]);
+for (const property of ['font-size', 'font-min-size', 'font-max-size']) {
+  // font-max-size also supports 'infinity' keyword
+  const infinity = property === 'font-max-size' ?
+    [{ syntax: 'infinity'}] : [];
+
+  runPropertyTests(property, [
+    ...infinity,
+    {
+      syntax: 'xx-small',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'x-small',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'small',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'medium',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'large',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'x-large',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'xx-large',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'larger',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: 'smaller',
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: '<length>',
+      specified: assert_is_equal_with_range_handling,
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+    {
+      syntax: '<percentage>',
+      specified: assert_is_equal_with_range_handling,
+      computed: (_, result) => assert_is_unit('px', result)
+    },
+  ]);
+}
 
 </script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html
@@ -0,0 +1,32 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-stretch' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-stretch', [
+  { syntax: 'normal' },
+  { syntax: 'ultra-condensed' },
+  { syntax: 'extra-condensed' },
+  { syntax: 'condensed' },
+  { syntax: 'semi-condensed' },
+  { syntax: 'semi-expanded' },
+  { syntax: 'expanded' },
+  { syntax: 'extra-expanded' },
+  { syntax: 'ultra-expanded' },
+  {
+    syntax: '<percentage>',
+    specified: assert_is_equal_with_range_handling
+  },
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-synthesis' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-synthesis', [
+  { syntax: 'none' },
+  { syntax: 'weight' },
+  { syntax: 'style' },
+  { syntax: 'small-caps' },
+]);
+
+runUnsupportedPropertyTests('font-synthesis', [
+  'weight style', 'style small-caps', 'small-caps weight style'
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-variant-alternates' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-variant-alternates', [
+  { syntax: 'normal' },
+  { syntax: 'historical-forms' },
+]);
+
+runUnsupportedPropertyTests('font-variant-alternates', [
+  'stylistic(foo)',
+  'styleset(foo)',
+  'character-variant(foo)',
+  'swash(foo)',
+  'ornaments(foo)',
+  'annotation(foo)',
+  'swash(foo) annotation(foo2)',
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-variant-emoji' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-variant-emoji', [
+  { syntax: 'auto' },
+  { syntax: 'text' },
+  { syntax: 'emoji' },
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variant.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-variant' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runUnsupportedPropertyTests('font-variant', [
+  'normal', 'no-common-ligatures proportional-nums',
+  'common-ligatures tabular-nums', 'small-caps slashed-zero'
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font-variation-settings' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runPropertyTests('font-variation-settings', [
+  { syntax: 'normal' },
+]);
+
+runUnsupportedPropertyTests('font-variation-settings', [
+  '"XHGT" 0.7',
+]);
+
+</script>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-typed-om/the-stylepropertymap/properties/font.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>'font' property</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<script src="resources/testsuite.js"></script>
+<body>
+<div id="log"></div>
+<script>
+'use strict';
+
+runUnsupportedPropertyTests('font', [
+  '1.2em "Fira Sans", sans-serif',
+  'italic 1.2em "Fira Sans", serif',
+  'italic small-caps bold 16px/2 cursive',
+  'small-caps bold 24px/1 sans-serif',
+  'caption',
+]);
+
+</script>