From 69d96c7cf5f52186b0b561e58f41cf4dcad0df3d Mon Sep 17 00:00:00 2001 From: "L. David Baron" Date: Wed, 24 Jan 2024 15:54:13 -0800 Subject: [PATCH] Add tests for direction and bidi isolation behavior of element. These tests are based on the tests previously in https://crrev.com/c/4800075 and https://crrev.com/c/4973701, but are revised to reflect that the HTML spec changes that those changes were implementing have been reverted in https://github.com/whatwg/html/pull/9880 Bug: 576815 Change-Id: Id4536cb39691c2d234113f891f96d7100c7eeea4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5233352 Reviewed-by: Di Zhang Auto-Submit: David Baron Commit-Queue: Di Zhang Cr-Commit-Position: refs/heads/main@{#1251783} --- .../bidi-rendering/slot-direction.window.js | 72 +++++++++++++++++++ .../slot-no-isolate-001-ref.html | 8 +++ .../bidi-rendering/slot-no-isolate-001.html | 22 ++++++ 3 files changed, 102 insertions(+) create mode 100644 html/rendering/bidi-rendering/slot-direction.window.js create mode 100644 html/rendering/bidi-rendering/slot-no-isolate-001-ref.html create mode 100644 html/rendering/bidi-rendering/slot-no-isolate-001.html diff --git a/html/rendering/bidi-rendering/slot-direction.window.js b/html/rendering/bidi-rendering/slot-direction.window.js new file mode 100644 index 00000000000000..673f6c0b0fc3ad --- /dev/null +++ b/html/rendering/bidi-rendering/slot-direction.window.js @@ -0,0 +1,72 @@ +// https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering +// https://github.com/whatwg/html/pull/9796 +// https://github.com/whatwg/html/pull/9880 + +for (let t of [ + { + description: " inherits direction from parent", + shadow_tree: ` +
+ +
+ `, + host_dir: "rtl", + }, + { + description: " inherits CSS direction from parent", + shadow_tree: ` +
+ +
+ `, + host_dir: "rtl", + }, + { + description: "", + shadow_tree: ` + + `, + host_dir: "rtl", + }, + { + description: "", + shadow_tree: ` + + `, + host_dir: "ltr", + }, + { + description: " resolving to LTR", + shadow_tree: ` + + `, + host_dir: "rtl", + host_contents: "A", + }, + { + description: " resolving to RTL", + shadow_tree: ` + + `, + host_dir: "ltr", + host_contents: "\u0627", + }, +]) { + test(() => { + let host = document.createElement("div"); + document.body.appendChild(host); + host.dir = t.host_dir; + if ("host_contents" in t) { + host.innerHTML = t.host_contents; + } + + let root = host.attachShadow({mode: "open"}); + root.innerHTML = t.shadow_tree; + + for (let e of Array.from(root.querySelectorAll("[data-expected]"))) { + assert_equals(getComputedStyle(e).direction, e.getAttribute("data-expected"), `direction of ${e.nodeName}`); + } + + host.remove(); + }, ` element sets CSS direction property: ${t.description}`); +} diff --git a/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html b/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html new file mode 100644 index 00000000000000..6675f0a16644c8 --- /dev/null +++ b/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html @@ -0,0 +1,8 @@ + +HTML Rendering: slot element has unicode-bidi: isolate + + + +
ב-א
+ +
normal
diff --git a/html/rendering/bidi-rendering/slot-no-isolate-001.html b/html/rendering/bidi-rendering/slot-no-isolate-001.html new file mode 100644 index 00000000000000..bb2e927c08bad7 --- /dev/null +++ b/html/rendering/bidi-rendering/slot-no-isolate-001.html @@ -0,0 +1,22 @@ + +HTML Rendering: slot element has unicode-bidi: isolate + + + + + + +
א-ב
+ +
+ +