Bug 1400773 - Reland basic-shape wpt test added in
bug 1290864.
The test was added in
bug 1290864, but was deleted accidentally in
bug
1302423. This patch revives the test without any modification, but adds it
under different path.
testing/web-platform/meta/MANIFEST.json is generated by running
`./mach web-platform-tests --manifest-update`
MozReview-Commit-ID: KNk4AzhUcgV
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -332374,16 +332374,22 @@
]
],
"css/css-scoping-1/shadow-cascade-order-001.html": [
[
"/css/css-scoping-1/shadow-cascade-order-001.html",
{}
]
],
+ "css/css-shapes-1/basic-shape-circle-ellipse-serialization.html": [
+ [
+ "/css/css-shapes-1/basic-shape-circle-ellipse-serialization.html",
+ {}
+ ]
+ ],
"css/css-shapes-1/shape-outside-invalid-001.html": [
[
"/css/css-shapes-1/shape-outside-invalid-001.html",
{}
]
],
"css/css-shapes-1/shape-outside-invalid-circle-000.html": [
[
@@ -519523,16 +519529,20 @@
"css/css-scoping-1/shadow-cascade-order-001.html": [
"46913ea7e47811b11be898de5c3bd0a330ea6637",
"testharness"
],
"css/css-shapes-1/OWNERS": [
"d26aa70436055346420fd8bae6fd174daf090124",
"support"
],
+ "css/css-shapes-1/basic-shape-circle-ellipse-serialization.html": [
+ "b0841c5c1e328846aaa95376ae62178173cdf5a5",
+ "testharness"
+ ],
"css/css-shapes-1/shape-outside-invalid-001.html": [
"550e970032ac78ada40b7b8b3e7159c4160d60da",
"testharness"
],
"css/css-shapes-1/shape-outside-invalid-circle-000.html": [
"081416538a641c47c2e6c4ecbd2dfe2b793fc246",
"testharness"
],
@@ -620820,21 +620830,21 @@
"963e8436d3c2571fb971f05aaa4710f5d3dd7abe",
"support"
],
"service-workers/service-worker/resources/blank.html": [
"0ddb4f1cf84729ed673295719ec58a3e5d600a12",
"support"
],
"service-workers/service-worker/resources/bytecheck-worker-imported-script.py": [
- "772d029d4efbe22f62f3473d4afe9e501a792571",
+ "b488558e1bb16901b0a9b60f40aeddab9c464021",
"support"
],
"service-workers/service-worker/resources/bytecheck-worker.py": [
- "66ec51461bc4da5862a9c4d06a9468a8dbe1d134",
+ "11a8883c24628b25f3faa1470da05caddd5eb094",
"support"
],
"service-workers/service-worker/resources/claim-shared-worker-fetch-iframe.html": [
"2f7b5ec149446b2a81044e8b50ccc644facb4e42",
"support"
],
"service-workers/service-worker/resources/claim-shared-worker-fetch-worker.js": [
"f5b8d26920aecfde1ee34657aa6006304c7da5a3",
@@ -628464,29 +628474,29 @@
"16bdf435f3d05ceca30394dee6d82adcb64c997b",
"wdspec"
],
"webdriver/tests/retrieval/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"webdriver/tests/retrieval/find_element.py": [
- "eeddcad4917fa1c01cda6e9c61f922243935d8d7",
+ "a2d29c9c8dd5303d196d0682a19f3f3560b35872",
"wdspec"
],
"webdriver/tests/retrieval/find_element_from_element.py": [
- "d08f125d788b2bba224f26415a7d5f7bc0294a30",
+ "78d5e503bf979307f313b72f7578c55264c6e207",
"wdspec"
],
"webdriver/tests/retrieval/find_element_from_elements.py": [
- "ad0baf0ad3506051f7959eea72c077b41c994167",
+ "0be0eb0bd904fa8f7e5332d43cef2b36dae1a579",
"wdspec"
],
"webdriver/tests/retrieval/find_elements.py": [
- "5f052a79bfe687ec7cdb2583649bf689a9d0e984",
+ "7df448c94c89bdb9f6818a69a9d52b21faa4b944",
"wdspec"
],
"webdriver/tests/sessions/new_session/conftest.py": [
"d2df38e506cb9a3e501f03fe03e2a31af42d6f04",
"support"
],
"webdriver/tests/sessions/new_session/create.py": [
"f47ffcbaf22af9f445e4202ebeaa03bb9415fbc9",
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-shapes-1/basic-shape-circle-ellipse-serialization.html
@@ -0,0 +1,76 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Serialization of basic shapes</title>
+<link rel="help" href="https://drafts.csswg.org/css-shapes/#basic-shape-serialization"/>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+function checkEquals(input, expected) {
+ test(function() {
+ let div = document.createElement('div');
+ div.style.clipPath = input;
+ let serialized = div.style.clipPath;
+ assert_equals(serialized, expected, input);
+ });
+}
+
+// Keywords get replaced by percentages in 2-value form
+checkEquals("circle(at left bottom)", "circle(at 0% 100%)");
+checkEquals("circle(at bottom left)", "circle(at 0% 100%)");
+checkEquals("circle(at right calc(10% + 5px))",
+ "circle(at 100% calc(10% + 5px))");
+checkEquals("ellipse(at left bottom)", "ellipse(at 0% 100%)");
+checkEquals("ellipse(at bottom left)", "ellipse(at 0% 100%)");
+checkEquals("ellipse(at right calc(10% + 5px))",
+ "ellipse(at 100% calc(10% + 5px))");
+
+// Only 2 or 4 value form allowed
+checkEquals("circle()", "circle(at 50% 50%)");
+checkEquals("circle(0px)", "circle(0px at 50% 50%)");
+checkEquals("circle(closest-side)", "circle(at 50% 50%)");
+checkEquals("circle(farthest-side)",
+ "circle(farthest-side at 50% 50%)");
+checkEquals("ellipse()", "ellipse(at 50% 50%)");
+checkEquals("ellipse(closest-side farthest-side)",
+ "ellipse(closest-side farthest-side at 50% 50%)");
+
+
+checkEquals("circle(at right 5px top)", "circle(at right 5px top 0%)");
+checkEquals("ellipse(at right 10px top)", "ellipse(at right 10px top 0%)");
+// Remove defaults like closest-side
+checkEquals("circle(closest-side at center)",
+ "circle(at 50% 50%)");
+checkEquals("ellipse(closest-side closest-side at center)",
+ "ellipse(at 50% 50%)");
+
+// don't remove non defaults
+checkEquals("circle(farthest-side at center)",
+ "circle(farthest-side at 50% 50%)");
+checkEquals("circle(10px at center)",
+ "circle(10px at 50% 50%)");
+checkEquals("ellipse(farthest-side 10px at center)",
+ "ellipse(farthest-side 10px at 50% 50%)");
+// Ellipse can have 0 radii or two, not one. We cannot
+// eliminate a single closest-side if the other is different
+checkEquals("ellipse(closest-side farthest-side at 50% 50%)",
+ "ellipse(closest-side farthest-side at 50% 50%)");
+checkEquals("ellipse(closest-side 10% at 50% 50%)",
+ "ellipse(closest-side 10% at 50% 50%)");
+
+// Don't transform nonzero lengths
+checkEquals("circle(at right 5px bottom 10px)",
+ "circle(at right 5px bottom 10px)");
+checkEquals("ellipse(at right 5px bottom 10px)",
+ "ellipse(at right 5px bottom 10px)");
+
+// Convert keyword-percentage pairs to plain percentages
+// Convert zero lengths to 0%
+checkEquals("circle(at right 5% top 0px)", "circle(at 95% 0%)");
+checkEquals("ellipse(at right 5% top 0px)", "ellipse(at 95% 0%)");
+
+// Don't transform calcs
+checkEquals("circle(at right calc(10% + 5px) bottom calc(10% + 5px))",
+ "circle(at right calc(10% + 5px) bottom calc(10% + 5px))");
+checkEquals("ellipse(at right calc(10% + 5px) bottom calc(10% + 5px))",
+ "ellipse(at right calc(10% + 5px) bottom calc(10% + 5px))");
+</script>