summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/elements/global-attributes/translate-non-html-translation-mode.html
blob: 3bd7f6ace9cb389e1d6cf8eb235f7773a62d5069 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<!doctype html>
<meta charset=utf-8>
<title>Non-HTML elements have a translation mode</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  test(() => {
    const svgContainer = document.createElement("svg");
    const foreignObject = document.createElement("foreignObject");
    svgContainer.appendChild(foreignObject);
    const div = document.createElement("div");
    foreignObject.appendChild(div);

    assert_true(div.translate);
  }, 'Non-HTML elements default to translate-enabled');

  test(() => {
    const outerDiv = document.createElement("div");
    outerDiv.translate = true;
    assert_true(outerDiv.translate);

    const svgContainer = document.createElement("svg");
    outerDiv.appendChild(svgContainer);
    const foreignObject = document.createElement("foreignObject");
    svgContainer.appendChild(foreignObject);
    const div = document.createElement("div");
    foreignObject.appendChild(div);

    assert_true(div.translate);
  }, "Non-HTML elements inherit their parent's translation-enabled state");

  test(() => {
    const outerDiv = document.createElement("div");
    outerDiv.translate = false;
    assert_false(outerDiv.translate);

    const svgContainer = document.createElement("svg");
    outerDiv.appendChild(svgContainer);
    const foreignObject = document.createElement("foreignObject");
    svgContainer.appendChild(foreignObject);
    const div = document.createElement("div");
    foreignObject.appendChild(div);

    assert_false(div.translate);
  }, "Non-HTML elements inherit their parent's no-translation state");
</script>