summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html')
-rw-r--r--testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html54
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html b/testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html
new file mode 100644
index 0000000000..d70fa53022
--- /dev/null
+++ b/testing/web-platform/tests/css/css-cascade/all-prop-revert-noop.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Cascade: "all: revert"</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<link rel="help" href="https://www.w3.org/TR/css-cascade-4/#default">
+<meta name="assert" content="Checks that adding 'all: revert' has no effect on elements with no other author rules.">
+<meta name="timeout" content="long">
+
+<style>
+.revert-all {
+ all: revert;
+}
+</style>
+
+<div id="log"></div>
+<div id="wrapper"></div>
+
+<script src="/html/resources/common.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+function cloneStyle(style) {
+ const clone = Object.create(null);
+ for (let property of style) {
+ clone[property] = style.getPropertyValue(property);
+ }
+ return clone;
+}
+
+function assertSameClones(clone1, clone2, callback) {
+ for (let property in clone1) {
+ const value1 = clone1[property];
+ const value2 = clone2[property];
+ // assert_equals is slow, so only call it if it's going to fail.
+ if (value1 !== value2) {
+ assert_equals(value1, value2, property);
+ }
+ }
+}
+
+const wrapper = document.getElementById("wrapper");
+const elementNames = [...HTML5_ELEMENTS, "math", "svg", "z-custom"].sort();
+for (let elementName of elementNames) {
+ test(function() {
+ const element = document.createElement(elementName);
+ wrapper.appendChild(element);
+ const style = getComputedStyle(element);
+ const clonedBaseStyle = cloneStyle(style);
+ element.classList.add("revert-all");
+ const clonedRevertedStyle = cloneStyle(style);
+ assertSameClones(clonedRevertedStyle, clonedBaseStyle);
+ }, elementName);
+}
+</script>