3 <script src="../../http/tests/inspector/inspector-test.js"></script>
6 function createDynamicElements()
8 var frameDoc = window.frames[0].document;
10 var el = frameDoc.createElement("article");
11 el.style.webkitFlowInto = "flow4";
12 frameDoc.body.appendChild(el);
14 el = frameDoc.createElement("div");
15 el.style.webkitFlowFrom = "flow4";
16 frameDoc.body.appendChild(el);
21 function createNamedFlow()
23 var article = document.createElement("article");
24 var div = document.createElement("div");
26 article.id = "tmpArticle";
27 article.style["-webkit-flow-into"] = "tmpNamedFlow";
28 article.textContent = "This text is from CSS Named Flow \"tmpNamedFlow\"";
31 div.style["-webkit-flow-from"] = "tmpNamedFlow";
32 div.style["height"] = "5px";
33 div.style["width"] = "20px";
35 document.body.appendChild(article);
36 document.body.appendChild(div);
39 function removeNamedFlow()
41 document.body.removeChild(document.getElementById("tmpArticle"));
42 document.body.removeChild(document.getElementById("tmpDiv"));
47 WebInspector.showPanel("elements");
48 InspectorTest.runTestSuite([
49 function testGetNamedFlowCollection(next)
51 WebInspector.domAgent.requestDocument(documentCallback);
53 function documentCallback(document)
55 WebInspector.cssModel.getNamedFlowCollectionAsync(document.id, namedFlowCallback);
58 function namedFlowCallback(namedFlowCollection)
60 InspectorTest.addResult("=== CSS Named Flows in main document ===");
62 if (!namedFlowCollection) {
63 InspectorTest.addResult("[!] Failed to get Named Flows");
64 InspectorTest.completeTest();
68 var namedFlowMap = namedFlowCollection.namedFlowMap;
70 for (var flowName in namedFlowMap)
71 namedFlows.push(namedFlowMap[flowName]);
73 namedFlows.sort(function (nf1, nf2) {
74 return ((nf1.name == nf2.name) ? 0 : ((nf1.name > nf2.name) ? 1 : -1));
77 for (var i = 0; i < namedFlows.length; ++i)
78 printNamedFlow(namedFlows[i]);
84 function testGetNamedFlowCollectionWithInvalidDocument(next)
86 WebInspector.domAgent.requestDocument(documentCallback);
88 function documentCallback(document)
90 WebInspector.domAgent.querySelector(document.id, "#fake-document", querySelectorCallback);
93 function querySelectorCallback(nodeId)
95 WebInspector.cssModel.getNamedFlowCollectionAsync(nodeId, namedFlowCallback);
98 function namedFlowCallback(namedFlowCollection)
100 InspectorTest.addResult("=== CSS Named Flows in #fake-document ===");
102 if (namedFlowCollection) {
103 InspectorTest.addResult("[!] Failed");
104 InspectorTest.completeTest();
108 InspectorTest.addResult("#fake-document is not a document")
113 function testGetFlowByName(next)
115 WebInspector.domAgent.requestDocument(documentCallback);
117 function documentCallback(document)
119 WebInspector.cssModel.getFlowByNameAsync(document.id, "flow2", namedFlowCallback);
122 function namedFlowCallback(namedFlow)
124 InspectorTest.addResult("=== Named Flow \"flow2\" from main document ===");
127 InspectorTest.addResult("[!] Failed to get Named Flow");
128 InspectorTest.completeTest();
132 printNamedFlow(namedFlow);
138 function testGetFlowByNameWithInvalidName(next)
140 WebInspector.domAgent.requestDocument(documentCallback);
142 function documentCallback(document)
144 WebInspector.cssModel.getFlowByNameAsync(document.id, "flow4", namedFlowCallback);
147 function namedFlowCallback(namedFlow)
149 InspectorTest.addResult("=== Name Flow \"flow4\" from main document ===");
152 InspectorTest.addResult("[!] Failed")
153 InspectorTest.completeTest();
157 InspectorTest.addResult("There is no Named Flow \"flow4\" in the main document");
162 function testNamedFlowCreated(next)
164 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated, callback, this);
165 InspectorTest.evaluateInPage("createNamedFlow()");
167 function callback(event)
169 if (event.data.name !== "tmpNamedFlow")
172 WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowCreated, callback, this);
174 InspectorTest.addResult("NamedFlowCreated: \"tmpNamedFlow\"");
179 function testRegionOversetChanged(next)
181 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, callback, this);
182 InspectorTest.evaluateInPage("window.document.getElementById(\"region3\").style.webkitFlowFrom=\"flow3\"");
184 function callback(event)
186 if (event.data.name !== "flow3")
189 WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.RegionOversetChanged, callback, this);
191 InspectorTest.addResult("RegionOversetChanged: \"flow3\"");
196 function testNamedFlowRemoved(next)
198 WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved, callback, this);
199 InspectorTest.evaluateInPage("removeNamedFlow()");
201 function callback(event)
203 if (event.data.flowName !== "tmpNamedFlow")
206 WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.NamedFlowRemoved, callback, this);
208 InspectorTest.addResult("NamedFlowRemoved: \"tmpNamedFlow\"");
214 function printNamedFlow(namedFlow)
216 InspectorTest.addResult("* Named Flow \"" + namedFlow.name + "\"");
217 InspectorTest.addResult("Content Elements: " + namedFlow.content.length);
218 InspectorTest.addResult("Regions: " + namedFlow.regions.length);
224 <body onload="createDynamicElements()">
226 Tests the following commands and events:
228 <li>getNamedFlowCollection <a href="https://bugs.webkit.org/show_bug.cgi?id=91607">Bug 91607</a></li>
229 <li>getFlowByName <a href="https://bugs.webkit.org/show_bug.cgi?id=91855">Bug 91855</a></li>
230 <li>namedFlowCreated <a href="https://bugs.webkit.org/show_bug.cgi?id=92739">Bug 92739</a></li>
231 <li>namedFlowRemoved <a href="https://bugs.webkit.org/show_bug.cgi?id=92739">Bug 92739</a></li>
232 <li>regionOversetChanged <a href="https://code.google.com/p/chromium/issues/detail?id=252250">Bug 252250</a></li>
236 <article style="-webkit-flow-into: flow1"></article>
237 <div style="-webkit-flow-from: flow1"></div>
238 <div style="-webkit-flow-from: flow1"></div>
239 <div style="-webkit-flow-from: flow1"></div>
241 <article style="-webkit-flow-into: flow2"></article>
242 <div style="-webkit-flow-from: flow2"></div>
243 <div style="-webkit-flow-from: flow2"></div>
245 <article style="-webkit-flow-into: flow3">
246 This text is from CSS Named Flow "flow3".
248 <div id="region3" style="-webkit-flow-from: none; height: 20px; width: 5px"></div>
250 <div id="fake-document"></div>