summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/rendering/bidi-rendering
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/rendering/bidi-rendering')
-rw-r--r--testing/web-platform/tests/html/rendering/bidi-rendering/slot-direction.window.js72
-rw-r--r--testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html8
-rw-r--r--testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001.html22
-rw-r--r--testing/web-platform/tests/html/rendering/bidi-rendering/unicode-bidi-ua-rules.html25
4 files changed, 127 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/rendering/bidi-rendering/slot-direction.window.js b/testing/web-platform/tests/html/rendering/bidi-rendering/slot-direction.window.js
new file mode 100644
index 0000000000..673f6c0b0f
--- /dev/null
+++ b/testing/web-platform/tests/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: "<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}`);
+}
diff --git a/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html b/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html
new file mode 100644
index 0000000000..6675f0a166
--- /dev/null
+++ b/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001-ref.html
@@ -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>
diff --git a/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001.html b/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001.html
new file mode 100644
index 0000000000..bb2e927c08
--- /dev/null
+++ b/testing/web-platform/tests/html/rendering/bidi-rendering/slot-no-isolate-001.html
@@ -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>
diff --git a/testing/web-platform/tests/html/rendering/bidi-rendering/unicode-bidi-ua-rules.html b/testing/web-platform/tests/html/rendering/bidi-rendering/unicode-bidi-ua-rules.html
new file mode 100644
index 0000000000..78bfb80e6f
--- /dev/null
+++ b/testing/web-platform/tests/html/rendering/bidi-rendering/unicode-bidi-ua-rules.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>unicode-bidi UA stylesheet rules</title>
+<link rel="author" href="masonf@chromium.org">
+<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering">
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+
+<body>
+<script>
+ const elements = ['address', 'blockquote', 'center', 'div', 'figure',
+ 'figcaption', 'footer', 'form', 'header', 'hr', 'legend', 'listing',
+ 'main', 'p', 'plaintext', 'pre', 'summary', 'xmp', 'article', 'aside',
+ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup', 'nav', 'section', 'search',
+ 'table', 'caption', 'colgroup', 'col', 'thead', 'tbody', 'tfoot', 'tr',
+ 'td', 'th', 'dir', 'dd', 'dl', 'dt', 'menu', 'ol', 'ul', 'li', 'bdi',
+ 'output'];
+ for(let tagname of elements) {
+ test((t) => {
+ const element = document.createElement(tagname);
+ t.add_cleanup(() => element.remove());
+ document.body.appendChild(element);
+ assert_equals(window.getComputedStyle(element, "").unicodeBidi,'isolate');
+ },`UA stylesheet rule for unicode-bidi, for <${tagname}>`);
+ }
+</script>