https://bugs.webkit.org/show_bug.cgi?id=123361
Reviewed by Timothy Hatcher.
Created a test to check that WebInspector.DOMTree.Event.ContentFlowWasAdded and
WebInspector.DOMTree.Event.ContentFlowWasRemoved are dispatched when a flow is added
and removed.
* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.assert): Similar to InspectorTest.log, but also takes a boolean and prefixes the message
with "FAIL" or "PASS" depending on the value.
(InspectorTest.importInspectorScripts): Added the required CSS Agent scripts to enable the flow thread events.
* inspector-protocol/model/content-flow-list-expected.txt: Added.
* inspector-protocol/model/content-flow-list.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@158062
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2013-10-25 Alexandru Chiculita <achicu@adobe.com>
+
+ Web Inspector: CSS Regions: Add layout tests for the new events in the DOMTreeManager
+ https://bugs.webkit.org/show_bug.cgi?id=123361
+
+ Reviewed by Timothy Hatcher.
+
+ Created a test to check that WebInspector.DOMTree.Event.ContentFlowWasAdded and
+ WebInspector.DOMTree.Event.ContentFlowWasRemoved are dispatched when a flow is added
+ and removed.
+
+ * http/tests/inspector-protocol/resources/InspectorTest.js:
+ (InspectorTest.assert): Similar to InspectorTest.log, but also takes a boolean and prefixes the message
+ with "FAIL" or "PASS" depending on the value.
+ (InspectorTest.importInspectorScripts): Added the required CSS Agent scripts to enable the flow thread events.
+ * inspector-protocol/model/content-flow-list-expected.txt: Added.
+ * inspector-protocol/model/content-flow-list.html: Added.
+
2013-10-25 Oliver Hunt <oliver@apple.com>
Fix a number of problems with destructuring of arguments
}
/**
+* Logs an assert message to document.
+* @param {boolean} condition
+* @param {string} message
+*/
+InspectorTest.assert = function(condition, message)
+{
+ var status = condition ? "PASS" : "FAIL";
+ this.sendCommand("Runtime.evaluate", { "expression": "log(" + JSON.stringify(status + ": " + message) + ")" } );
+}
+
+/**
* Logs message directly to process stdout via alert function (hopefully followed by flush call).
* This message should survive process crash or kill by timeout.
* @param {string} message
"Setting",
"PageObserver",
"DOMObserver",
+ "CSSObserver",
"FrameResourceManager",
"RuntimeManager",
"Frame",
"ContentFlow",
"DOMTree",
"ExecutionContext",
- "ExecutionContextList"
+ "ExecutionContextList",
+ "CSSStyleManager",
+ "Color"
];
for (var i = 0; i < inspectorScripts.length; ++i)
InspectorTest.importScript("../../../../../Source/WebInspectorUI/UserInterface/" + inspectorScripts[i] + ".js");
InspectorBackend.registerPageDispatcher(new WebInspector.PageObserver);
InspectorBackend.registerDOMDispatcher(new WebInspector.DOMObserver);
+ InspectorBackend.registerCSSDispatcher(new WebInspector.CSSObserver);
WebInspector.frameResourceManager = new WebInspector.FrameResourceManager;
WebInspector.domTreeManager = new WebInspector.DOMTreeManager;
+ WebInspector.cssStyleManager = new WebInspector.CSSStyleManager;
InspectorFrontendHost.loaded();
}
--- /dev/null
+Testing that the ContentFlows events are correctly dispatched when new flows are created/removed.
+
+PASS: ContentFlow was added
+PASS: Flow count is 1
+PASS: ContentFlow was removed
+PASS: Flow count is 0
+
--- /dev/null
+<!doctype html>
+<html>
+<head>
+<style>
+#flow1
+{
+ -webkit-flow-into: flow1;
+}
+</style>
+<script type="text/javascript" src="../../http/tests/inspector-protocol/resources/protocol-test.js"></script>
+<script>
+function removeFlow()
+{
+ document.getElementById("flow1").remove();
+}
+
+function test()
+{
+ InspectorTest.importInspectorScripts();
+
+ WebInspector.frameResourceManager.addEventListener(WebInspector.FrameResourceManager.Event.MainFrameDidChange, function(event) {
+ var domTree = WebInspector.frameResourceManager.mainFrame.domTree;
+ domTree.addEventListener(WebInspector.DOMTree.Event.RootDOMNodeInvalidated, onRootDOMNodeInvalidated, null);
+ domTree.addEventListener(WebInspector.DOMTree.Event.ContentFlowWasAdded, onContentFlowWasAdded, null);
+ domTree.addEventListener(WebInspector.DOMTree.Event.ContentFlowWasRemoved, onContentFlowWasRemoved, null);
+ domTree.requestContentFlowList();
+ });
+
+ function onRootDOMNodeInvalidated()
+ {
+ WebInspector.frameResourceManager.mainFrame.domTree.requestContentFlowList();
+ }
+
+ function onContentFlowWasAdded(event)
+ {
+ InspectorTest.assert(event.data.flow.name === "flow1", "ContentFlow was added");
+ InspectorTest.assert(WebInspector.frameResourceManager.mainFrame.domTree.flowsCount === 1, "Flow count is 1");
+
+ InspectorTest.sendCommand("Runtime.evaluate", {expression: "removeFlow()"});
+ }
+
+ function onContentFlowWasRemoved(event)
+ {
+ InspectorTest.assert(event.data.flow.name === "flow1", "ContentFlow was removed");
+ InspectorTest.assert(WebInspector.frameResourceManager.mainFrame.domTree.flowsCount === 0, "Flow count is 0");
+ InspectorTest.completeTest();
+ }
+}
+</script>
+</head>
+<body onload="runTest()">
+ <p>Testing that the ContentFlows events are correctly dispatched when new flows are created/removed.</p>
+
+ <div id="flow1"></div>
+</body>
+</html>