Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / extensions / extensions-events.html
1 <html>
2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/extensions-test.js"></script>
5 <script src="../../http/tests/inspector/debugger-test.js"></script>
6 <script src="../sources/debugger/resources/edit-me.js"></script>
7 <script type="text/javascript">
8
9 function initialize_extensionsSidebarTest()
10 {
11     InspectorTest.expandSidebar = function(callback)
12     {
13         var sidebar = InspectorTest._extensionSidebar();
14         InspectorTest.runAfterPendingDispatches(function() {
15             sidebar.expand();
16             callback();
17         });
18     }
19
20     InspectorTest._extensionSidebar = function()
21     {
22         return WebInspector.inspectorView.panel("elements")._extensionSidebarPanes[0];
23     }
24 }
25
26 function extension_expandSidebar(callback)
27 {
28     evaluateOnFrontend("InspectorTest.expandSidebar(reply);", callback);
29 }
30
31 function extension_testOnSelectionChanged(nextTest)
32 {
33     function onSelectionChanged()
34     {
35         webInspector.panels.elements.onSelectionChanged.removeListener(onSelectionChanged);
36         output("onSelectionChanged fired");
37         nextTest();
38     }
39     webInspector.panels.elements.onSelectionChanged.addListener(onSelectionChanged);
40     webInspector.inspectedWindow.eval("inspect(document.body.children[0]), 0");
41 }
42
43 function extension_testSourcesOnSelectionChanged(nextTest)
44 {
45     function onSelectionChanged(selectionInfo)
46     {
47         webInspector.panels.sources.onSelectionChanged.removeListener(onSelectionChanged);
48         output("sources onSelectionChanged fired, selectionInfo:");
49         dumpObject(selectionInfo, {url: "url"});
50         nextTest();
51     }
52     webInspector.panels.sources.onSelectionChanged.addListener(onSelectionChanged);
53     evaluateOnFrontend("InspectorTest.showScriptSource(\"edit-me.js\")");
54 }
55
56 function extension_testOnRequestFinished(nextTest)
57 {
58     function onRequestFinished()
59     {
60         webInspector.network.onRequestFinished.removeListener(onRequestFinished);
61         output("onRequestFinished fired");
62         nextTest();
63     }
64     webInspector.network.onRequestFinished.addListener(onRequestFinished);
65     webInspector.inspectedWindow.eval("var xhr = new XMLHttpRequest(); xhr.open('GET', '" + location.href + "', false); xhr.send(null);");
66 }
67
68 function extension_testOnNavigated(nextTest)
69 {
70     var urls = [];
71     var loadCount = 0;
72
73     function onLoad()
74     {
75         ++loadCount;
76         processEvent();
77     }
78     function processEvent()
79     {
80         if (loadCount !== urls.length)
81             return;
82         if (loadCount === 1)
83             evaluateOnFrontend("InspectorTest.navigate(WebInspector.resourceTreeModel.inspectedPageURL().substring(0, WebInspector.resourceTreeModel.inspectedPageURL().indexOf('?')), reply)", onLoad);
84         else {
85             webInspector.network.onNavigated.removeListener(onNavigated);
86             for (var i = 0; i < urls.length; ++i)
87                 output("Navigated to: " + urls[i]);
88             nextTest();
89         }
90     }
91     function onNavigated(url)
92     {
93         urls.push(url.replace(/^(.*\/)*/, ""));
94         processEvent();
95     }
96     webInspector.network.onNavigated.addListener(onNavigated);
97     evaluateOnFrontend("InspectorTest.navigate(WebInspector.resourceTreeModel.inspectedPageURL() + '?navigated', reply)", onLoad);
98 }
99
100 function extension_testViewShowHide(nextTest)
101 {
102     var listenersToCleanup = [];
103     var sidebar;
104     var beenToExtensionPanel = false;
105
106     function onViewEvent(type, viewName, viewWindow)
107     {
108         output("Got " + type + " event for " + viewName);
109         if (type !== "onShown")
110             return;
111         if (viewName === "panel") {
112             output("Panel shown, location: " + trimURL(viewWindow.location.href));
113             extension_showPanel("elements");
114         } else if (viewName === "sidebar") {
115             output("Sidebar shown, location: " + trimURL(viewWindow.location.href));
116             if (!beenToExtensionPanel) {
117                 extension_showPanel("extension");
118                 beenToExtensionPanel = true;
119             } else {
120                 cleanupListeners();
121                 nextTest();
122             }
123         }
124     }
125     function addListener(view, viewName, type)
126     {
127         var listener = bind(onViewEvent, null, type, viewName);
128         var event = view[type];
129         listenersToCleanup.push({ event: event, listener: listener });
130         event.addListener(listener);
131     }
132     function cleanupListeners()
133     {
134         for (var i = 0; i < listenersToCleanup.length; ++i)
135             listenersToCleanup[i].event.removeListener(listenersToCleanup[i].listener);
136     }
137     function onPanelCreated(panel)
138     {
139         addListener(panel, "panel", "onShown");
140         addListener(panel, "panel", "onHidden");
141         addListener(sidebar, "sidebar", "onHidden");
142         addListener(sidebar, "sidebar", "onShown");
143         sidebar.setPage(basePath + "extension-sidebar.html");
144     }
145     extension_showPanel("elements", extension_expandSidebar);
146     var basePath = location.pathname.replace(/\/[^/]*$/, "/");
147     function onSidebarCreated(sidebarPane)
148     {
149         sidebar = sidebarPane;
150         webInspector.panels.create("Test Panel", basePath + "extension-panel.png", basePath + "extension-panel.html", onPanelCreated);
151     }
152     webInspector.panels.elements.createSidebarPane("Test Sidebar", onSidebarCreated);
153 }
154
155 </script>
156 </head>
157 <body onload="runTest()">
158 <p>Tests WebInspector extension API</p>
159 </body>
160 </html>