diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/selectors/pseudo-classes/dir-dynamic.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/selectors/pseudo-classes/dir-dynamic.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/dir-dynamic.html b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/dir-dynamic.html new file mode 100644 index 0000000000..8f2951f8ef --- /dev/null +++ b/testing/web-platform/tests/html/semantics/selectors/pseudo-classes/dir-dynamic.html @@ -0,0 +1,47 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <link rel="author" title="Vincent Hilla" href="mailto:vhilla@mozilla.com"> + <link rel="help" href="https://html.spec.whatwg.org/#the-directionality"> +</head> +<body> + <input id="inp"/> + <textarea id="ta"></textarea> + <div id="div"></div> + <pre id="pre"></pre> + + <script> + function doTest(e) { + e.dir = "ltr"; + assert_true(e.matches(":dir(ltr)"), "dir to ltr on " + e.tagName + " element"); + + e.dir = "rtl"; + assert_true(e.matches(":dir(rtl)"), "dir to rtl on " + e.tagName + " element"); + + e.dir = "auto"; + assert_true(e.matches(":dir(ltr)"), "dir to auto, empty text on " + e.tagName + " element"); + + e.value = "\u05D0;"; + e.textContent = "\u05D0;"; + assert_true(e.matches(":dir(rtl)"), "auto dir, text to Hebrew on " + e.tagName + " element"); + + e.dir = "ltr"; + assert_true(e.matches(":dir(ltr)"), "dir to ltr, Hebrew text on " + e.tagName + " element"); + + e.dir = "auto"; + assert_true(e.matches(":dir(rtl)"), "dir to auto, Hebrew text on " + e.tagName + " element"); + + e.removeAttribute("dir"); + assert_true(e.matches(":dir(ltr)"), "dir removed, Hebrew text on " + e.tagName + " element"); + } + + const elements = [inp, ta, div, pre]; + for (const e of elements) { + test(() => doTest(e), "Dynamically changing dir, text on " + e.tagName.toLowerCase() + " element"); + } + </script> +</body> +</html> |