File: flexbox-dyn-insertEmptySpan-1.xhtml

package info (click to toggle)
thunderbird 1%3A68.10.0-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,754,812 kB
  • sloc: cpp: 5,411,679; javascript: 4,161,772; ansic: 2,639,702; python: 763,064; java: 346,606; xml: 266,623; asm: 265,884; sh: 117,270; lisp: 41,340; makefile: 23,560; perl: 18,042; objc: 5,277; yacc: 1,778; ada: 1,681; pascal: 1,673; lex: 1,417; cs: 879; exp: 527; awk: 495; php: 436; ruby: 221; sed: 69; csh: 27
file content (103 lines) | stat: -rw-r--r-- 4,024 bytes parent folder | download | duplicates (48)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?xml version="1.0" encoding="UTF-8"?>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<!--
     This test is a variant of flexbox-dyn-insertAroundText-3.xhtml with the
     inserted spans being empty & having padding. This triggered invalidation
     issues with an older work-in-progress patch, so I'm adding this reftest to
     track that issue & prevent it from regressing.
-->
<html xmlns="http://www.w3.org/1999/xhtml"
      class="reftest-wait">
  <head>
    <style>
      body { font-size: 10px; }

      <!-- to make inserted span elements stand out -->
      span {
        background: teal;
        padding: 3px;
      }

      div.flexbox {
        border: 1px dashed blue;
        width: 300px;
        display: flex;
        justify-content: space-around;
        margin-bottom: 1px;
        white-space: pre;
      }
    </style>
    <script>
      function insertNodeAtPosnInElem(aNodeToInsert, aPosn, aParentId) {
        var parent = document.getElementById(aParentId);
        var insertBeforeTarget = parent.firstChild;
        for (var i = 0; i &lt; aPosn; i++) {
          insertBeforeTarget = insertBeforeTarget.nextSibling;
        }
        parent.insertBefore(aNodeToInsert, insertBeforeTarget);
      }

      function createSpanElem() {
        return document.createElement("span");
      }

      function tweak() {
        // Inserting span, on either side of existing content
        // --------------------------------------------------
        insertNodeAtPosnInElem(createSpanElem(), 0, "f0");
        insertNodeAtPosnInElem(createSpanElem(), 1, "f1");

        // Inserting span and whitespace, before existing content
        // ------------------------------------------------------
        insertNodeAtPosnInElem(document.createTextNode("  "), 0, "f2");
        insertNodeAtPosnInElem(createSpanElem(),              0, "f2");

        insertNodeAtPosnInElem(createSpanElem(),              0, "f3");
        insertNodeAtPosnInElem(document.createTextNode("  "), 0, "f3");

        // Inserting span and whitespace, after existing content
        // -----------------------------------------------------
        insertNodeAtPosnInElem(document.createTextNode("  "), 1, "f4");
        insertNodeAtPosnInElem(createSpanElem(),              1, "f4");

        insertNodeAtPosnInElem(createSpanElem(),              1, "f5");
        insertNodeAtPosnInElem(document.createTextNode("  "), 1, "f5");

        // Inserting span and text, before existing content
        // ------------------------------------------------
        insertNodeAtPosnInElem(document.createTextNode("[NewText]"), 0, "f6");
        insertNodeAtPosnInElem(createSpanElem(),                     0, "f6");

        insertNodeAtPosnInElem(createSpanElem(),                     0, "f7");
        insertNodeAtPosnInElem(document.createTextNode("[NewText]"), 0, "f7");

        // Inserting span and text, after existing content
        // -----------------------------------------------
        insertNodeAtPosnInElem(document.createTextNode("[NewText]"), 1, "f8");
        insertNodeAtPosnInElem(createSpanElem(),                     1, "f8");

        insertNodeAtPosnInElem(createSpanElem(),                     1, "f9");
        insertNodeAtPosnInElem(document.createTextNode("[NewText]"), 1, "f9");

        document.documentElement.removeAttribute("class");
      }

      window.addEventListener("MozReftestInvalidate", tweak, false);
    </script>
  </head>
  <body>
    <div class="flexbox" id="f0">[orig]</div>
    <div class="flexbox" id="f1">[orig]</div>
    <div class="flexbox" id="f2">[orig]</div>
    <div class="flexbox" id="f3">[orig]</div>
    <div class="flexbox" id="f4">[orig]</div>
    <div class="flexbox" id="f5">[orig]</div>
    <div class="flexbox" id="f6">[orig]</div>
    <div class="flexbox" id="f7">[orig]</div>
    <div class="flexbox" id="f8">[orig]</div>
    <div class="flexbox" id="f9">[orig]</div>
  </body>
</html>