| OLD | NEW |
| (Empty) |
| 1 <!doctype html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="../../../resources/js-test.js"></script> | |
| 5 <script src="../resources/helper.js"></script> | |
| 6 <style> | |
| 7 #region { -webkit-flow-from: flow; width: 250px; height: 150px; } | |
| 8 </style> | |
| 9 </head> | |
| 10 <body> | |
| 11 <!-- | |
| 12 1. The content nodes collection for a named flow 'flow' contains only th
ose elements that have | |
| 13 the style property -webkit-flow-into set to 'flow'. | |
| 14 2. If an element has an ancestor with -webkit-flow-into = 'flow' but doe
s not have its '-webkit-flow-into' | |
| 15 set to 'flow' will not be listed among the content nodes for named flow
'flow'. | |
| 16 3. Elements with '-webkit-flow-into' set to 'flow' and 'display:none' sh
ould be listed among the content nodes | |
| 17 for named flow object 'flow'. | |
| 18 4. The collection of nodes is returned in document order. | |
| 19 --> | |
| 20 <script> | |
| 21 if (window.testRunner) | |
| 22 window.testRunner.dumpAsText(); | |
| 23 description("Test for 90163: [CSSRegions]Rename NamedFlow::contentNo
des to NamedFlow::getContent()"); | |
| 24 | |
| 25 // Add an element that would be collected by the named flow but do n
ot add it to the DOM, the contentNodes should be empty. | |
| 26 var article = document.createElement("div"); | |
| 27 article.id = "article"; | |
| 28 article.style.webkitFlowInto = "flow"; | |
| 29 | |
| 30 shouldBeNull('getFlowByName("flow")'); | |
| 31 | |
| 32 // Append the above element to the DOM. It will be collected by the
flow, therefore the contentNodes should have 1 element. | |
| 33 document.body.appendChild(article); | |
| 34 var namedFlowContent3 = getFlowByName("flow").getContent(); | |
| 35 shouldEvaluateTo("namedFlowContent3.length", 1); | |
| 36 shouldBeEqualToString("namedFlowContent3.item(0).id", "article"); | |
| 37 | |
| 38 // Append a child element to the article above but do not set its st
yle to flow into 'flow'. | |
| 39 // The contentNodes should still have 1 element. | |
| 40 var pNode = document.createElement("p"); | |
| 41 pNode.id = "p1"; | |
| 42 document.getElementById("article").appendChild(pNode); | |
| 43 var namedFlowContent4 = getFlowByName("flow").getContent(); | |
| 44 shouldEvaluateTo("namedFlowContent4.length", 1); | |
| 45 shouldBeEqualToString("namedFlowContent4.item(0).id", "article"); | |
| 46 | |
| 47 // Add another element directly to the flow and set its 'display' pr
operty to 'none', it should be part of the flow. | |
| 48 var article2 = document.createElement("div"); | |
| 49 article2.id = "article2"; | |
| 50 article2.style.webkitFlowInto = "flow"; | |
| 51 article2.style.display = "none"; | |
| 52 document.body.insertBefore(article2, article); | |
| 53 | |
| 54 var namedFlowContent5 = getFlowByName("flow").getContent(); | |
| 55 shouldEvaluateTo("namedFlowContent5.length", 2); | |
| 56 shouldBeEqualToString("namedFlowContent5.item(0).id", "article2"); | |
| 57 shouldBeEqualToString("namedFlowContent5.item(1).id", "article"); | |
| 58 | |
| 59 // Adding a region element to flow content into should not influence
the content nodes collection. | |
| 60 var regionNode = document.createElement("div"); | |
| 61 regionNode.id = "region"; | |
| 62 document.body.appendChild(regionNode); | |
| 63 var namedFlowContent6 = getFlowByName("flow").getContent(); | |
| 64 shouldEvaluateTo("namedFlowContent6.length", 2); | |
| 65 | |
| 66 // Change display:none for the 'article2' element, the list of conte
ntNodes should stay the same | |
| 67 document.getElementById("article2").style.display = "block"; | |
| 68 var namedFlowContent7 = getFlowByName("flow").getContent(); | |
| 69 shouldEvaluateTo("namedFlowContent7.length", 2); | |
| 70 | |
| 71 // Add a p and a span under p. Make the span directly collected by t
he flow. The contentNodes collection should have 3 elements. | |
| 72 pNode = document.createElement("p"); | |
| 73 pNode.id = "p2"; | |
| 74 var spanNode = document.createElement("span"); | |
| 75 spanNode.id = "span1"; | |
| 76 spanNode.style.webkitFlowInto = "flow"; | |
| 77 pNode.appendChild(spanNode); | |
| 78 document.getElementById("article2").appendChild(pNode); | |
| 79 | |
| 80 var namedFlowContent8 = getFlowByName("flow").getContent(); | |
| 81 shouldEvaluateTo("namedFlowContent8.length", 3); | |
| 82 | |
| 83 // Change display of article node to none, the collection should sti
ll have 3 elements. | |
| 84 document.getElementById("article").style.display = "none"; | |
| 85 var namedFlowContent9 = getFlowByName("flow").getContent(); | |
| 86 shouldEvaluateTo("namedFlowContent9.length", 3); | |
| 87 shouldBeEqualToString("namedFlowContent9.item(0).id", "article2"); | |
| 88 shouldBeEqualToString("namedFlowContent9.item(1).id", "span1"); | |
| 89 shouldBeEqualToString("namedFlowContent9.item(2).id", "article"); | |
| 90 | |
| 91 // Take 'article' node from last position and insert it before 'arti
cle2' | |
| 92 article = document.getElementById("article"); | |
| 93 document.body.insertBefore(document.body.removeChild(article), artic
le2); | |
| 94 var namedFlowContent10 = getFlowByName("flow").getContent(); | |
| 95 shouldEvaluateTo("namedFlowContent10.length", 3); | |
| 96 shouldBeEqualToString("namedFlowContent10.item(0).id", "article"); | |
| 97 | |
| 98 // Clone 'article2' including its children. | |
| 99 var article2Clone = document.getElementById("article2").cloneNode(tr
ue); | |
| 100 document.body.appendChild(article2Clone); | |
| 101 var namedFlowContent11 = getFlowByName("flow").getContent(); | |
| 102 shouldEvaluateTo("namedFlowContent11.length", 5); | |
| 103 // Remove article2 nodes from document, they should be removed from
flow. | |
| 104 document.body.removeChild(article2); | |
| 105 document.body.removeChild(article2Clone); | |
| 106 var namedFlowContent12 = getFlowByName("flow").getContent(); | |
| 107 shouldEvaluateTo("namedFlowContent12.length", 1); | |
| 108 shouldBeEqualToString("namedFlowContent12.item(0).id", "article"); | |
| 109 | |
| 110 // Move the content node 'article' from named flow 'flow' to named f
low 'flow2' | |
| 111 document.getElementById("article").style.webkitFlowInto = "flow2"; | |
| 112 var flow2 = getFlowByName("flow2"); | |
| 113 var namedFlowContent11 = getFlowByName("flow").getContent(); | |
| 114 var namedFlowContent12 = getFlowByName("flow2").getContent(); | |
| 115 shouldEvaluateTo("namedFlowContent11.length", "0"); | |
| 116 shouldEvaluateTo("namedFlowContent12.length", "1"); | |
| 117 shouldBeEqualToString("namedFlowContent12.item(0).id", "article"); | |
| 118 | |
| 119 // Remove the content node from dom, content nodes for both 'flow' a
nd 'flow2' should be empty | |
| 120 document.body.removeChild(document.getElementById("article")); | |
| 121 shouldBeNull('getFlowByName("flow2")'); | |
| 122 | |
| 123 var namedFlowContent13 = getFlowByName("flow").getContent(); | |
| 124 shouldEvaluateTo("namedFlowContent13.length", "0"); | |
| 125 | |
| 126 var namedFlowContent14 = flow2.getContent(); | |
| 127 shouldEvaluateTo("namedFlowContent14.length", "0"); | |
| 128 document.body.appendChild(article); | |
| 129 var namedFlowContent15 = flow2.getContent(); | |
| 130 shouldEvaluateTo("namedFlowContent15.length", "1"); | |
| 131 | |
| 132 document.getElementById("region").style.visibility = "hidden"; | |
| 133 </script> | |
| 134 </body> | |
| 135 </html> | |
| OLD | NEW |