Skip to content

Commit

Permalink
Bug 1876401 [wpt PR 44178] - Add tests for direction and bidi isolati…
Browse files Browse the repository at this point in the history
…on behavior of <slot> element., a=testonly

Automatic update from web-platform-tests
Add tests for direction and bidi isolation behavior of <slot> 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
whatwg/html#9880

Bug: 576815
Change-Id: Id4536cb39691c2d234113f891f96d7100c7eeea4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5233352
Reviewed-by: Di Zhang <dizhangg@chromium.org>
Auto-Submit: David Baron <dbaron@chromium.org>
Commit-Queue: Di Zhang <dizhangg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251783}

--

wpt-commits: 41bbcfcc813d99401ca0cacfa392c87d6f18ffca
wpt-pr: 44178
  • Loading branch information
dbaron authored and moz-wptsync-bot committed Jan 28, 2024
1 parent a52bd5c commit ebbc3d2
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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: "<slot> inherits direction from parent",
shadow_tree: `
<div dir=ltr data-expected="ltr">
<slot data-expected="ltr"></slot>
</div>
`,
host_dir: "rtl",
},
{
description: "<slot> inherits CSS direction from parent",
shadow_tree: `
<div style="direction: ltr" data-expected="ltr">
<slot data-expected="ltr"></slot>
</div>
`,
host_dir: "rtl",
},
{
description: "<slot dir=ltr>",
shadow_tree: `
<slot dir="ltr" data-expected="ltr"></slot>
`,
host_dir: "rtl",
},
{
description: "<slot dir=rtl>",
shadow_tree: `
<slot dir="rtl" data-expected="rtl"></slot>
`,
host_dir: "ltr",
},
{
description: "<slot dir=auto> resolving to LTR",
shadow_tree: `
<slot dir="ltr" data-expected="ltr"></slot>
`,
host_dir: "rtl",
host_contents: "A",
},
{
description: "<slot dir=auto> resolving to RTL",
shadow_tree: `
<slot dir="rtl" data-expected="rtl"></slot>
`,
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();
}, `<slot> element sets CSS direction property: ${t.description}`);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!DOCTYPE html>
<title>HTML Rendering: slot element has unicode-bidi: isolate</title>
<link rel="author" title="L. David Baron" href="https://dbaron.org/">
<link rel="author" title="Google" href="http://www.google.com/">

<div style="unicode-bidi: bidi-override; direction: ltr;">&#x5D1;-&#x5D0;</div>

<div>normal</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<title>HTML Rendering: slot element has unicode-bidi: isolate</title>
<link rel="author" title="L. David Baron" href="https://dbaron.org/">
<link rel="author" title="Google" href="http://www.google.com/">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering">
<link rel="help" href="https://github.com/whatwg/html/pull/9880">
<link rel="match" href="slot-no-isolate-001-ref.html">

<div>&#x5D0;-<span id="e">&#x5D1;</span></div>

<div id="v"></div>

<script>

let e = document.getElementById("e");
let root = e.attachShadow({mode: "open"});
// use display:inline to override default display:contents
root.innerHTML = "<slot style='display:inline'>\u05D2</slot>";
let val = getComputedStyle(root.querySelector("slot")).unicodeBidi;
document.getElementById("v").innerText = val;

</script>

0 comments on commit ebbc3d2

Please sign in to comment.