Add ewk_view_fullscreen_exit to exit fullscreen mode
[framework/web/webkit-efl.git] / LayoutTests / inspector / view-events.html
1 <html>
2 <head>
3 <script src="../http/tests/inspector/inspector-test.js"></script>
4 <script>
5
6 function test()
7 {
8     function TestView(viewName)
9     {
10         WebInspector.View.call(this);
11
12         this._viewName = viewName;
13         InspectorTest.addResult(this._viewName + "()");
14     }
15
16     TestView.prototype = {
17         show: function(parentElement)
18         {
19             InspectorTest.addResult(this._viewName + ".show()");
20             WebInspector.View.prototype.show.call(this, parentElement);
21         },
22
23         detach: function()
24         {
25             InspectorTest.addResult(this._viewName + ".detach()");
26             WebInspector.View.prototype.detach.call(this);
27         },
28
29         doResize: function()
30         {
31             InspectorTest.addResult(this._viewName + ".doResize()");
32             WebInspector.View.prototype.doResize.call(this);
33         },
34
35         wasShown: function()
36         {
37             InspectorTest.addResult("  " + this._viewName + ".wasShown()");
38         },
39
40         willHide: function()
41         {
42             InspectorTest.addResult("  " + this._viewName + ".willHide()");
43         },
44
45         onResize: function()
46         {
47             InspectorTest.addResult("  " + this._viewName + ".onResize()");
48         }
49     };
50
51     TestView.prototype.__proto__ = WebInspector.View.prototype;
52
53     InspectorTest.runTestSuite([
54         function testShowView(next)
55         {
56             var view = new TestView("View");
57             view.show(WebInspector.inspectorView.element);
58             view.detach();
59             next();
60         },
61
62         function testAppendViaDOM(next)
63         {
64             try {
65                 var view = new TestView("View");
66                 document.body.appendChild(view.element);
67             } catch (e) {
68                 InspectorTest.addResult(e);
69             }
70             next();
71         },
72
73         function testInsertViaDOM(next)
74         {
75             try {
76                 var view = new TestView("View");
77                 document.body.insertBefore(view.element, null);
78             } catch (e) {
79                 InspectorTest.addResult(e);
80             }
81             next();
82         },
83
84         function testAttachToOrphanNode(next)
85         {
86             try {
87                 var view = new TestView("View");
88                 var div = document.createElement("div");
89                 view.show(div);
90             } catch (e) {
91                 InspectorTest.addResult(e);
92             }
93             next();
94         },
95
96         function testImmediateParent(next)
97         {
98             var parentView = new TestView("Parent");
99             var childView = new TestView("Child");
100             childView.show(parentView.element);
101             if (childView._parentView === parentView)
102                 InspectorTest.addResult("OK");
103             else
104                 InspectorTest.addResult("FAILED");
105             next();
106         },
107
108         function testDistantParent(next)
109         {
110             var parentView = new TestView("Parent");
111             var div = document.createElement("div");
112             parentView.element.appendChild(div);
113             var childView = new TestView("Child");
114             childView.show(div);
115
116             if (childView._parentView === parentView)
117                 InspectorTest.addResult("OK");
118             else
119                 InspectorTest.addResult("FAILED");
120             next();
121         },
122
123         function testEvents(next)
124         {
125             var parentView = new TestView("Parent");
126             parentView.markAsRoot();
127             var childView = new TestView("Child");
128             parentView.show(WebInspector.inspectorView.element);
129
130             parentView.doResize();
131             childView.show(parentView.element);
132             parentView.doResize();
133             parentView.detach();
134             parentView.show(WebInspector.inspectorView.element);
135             childView.detach();
136             parentView.detach();
137             next();
138         },
139
140         function testEventsHideOnDetach(next)
141         {
142             var parentView = new TestView("Parent");
143             var childView = new TestView("Child");
144             childView.setHideOnDetach();
145             parentView.show(WebInspector.inspectorView.element);
146
147             parentView.doResize();
148             childView.show(parentView.element);
149             parentView.doResize();
150             parentView.detach();
151             parentView.show(WebInspector.inspectorView.element);
152             childView.detach();
153             parentView.detach();
154             next();
155         },
156
157         function testViewCounter(next)
158         {
159             var parentView = new TestView("Parent");
160             parentView.show(WebInspector.inspectorView.element);
161
162             var childView = new TestView("Child");
163             childView.show(parentView.element);
164             InspectorTest.addResult("  view counter: " + parentView.element.__viewCounter);
165
166             var childView2 = new TestView("Child 2");
167             childView2.show(parentView.element);
168             InspectorTest.addResult("  view counter: " + parentView.element.__viewCounter);
169
170             childView.detach();
171             InspectorTest.addResult("  view counter: " + parentView.element.__viewCounter);
172
173             childView2.detach();
174             InspectorTest.addResult("  view counter: " + parentView.element.__viewCounter);
175
176             next();
177         },
178
179         function testRemoveChild(next)
180         {
181             var parentView = new TestView("Parent");
182             parentView.show(WebInspector.inspectorView.element);
183
184             var childView = new TestView("Child");
185             childView.show(parentView.element);
186             try {
187                 parentView.element.removeChild(childView.element);
188             } catch (e) {
189                 InspectorTest.addResult(e);
190             }
191             next();
192         },
193
194         function testImplicitRemoveChild(next)
195         {
196             var parentView = new TestView("Parent");
197             var div = document.createElement("div");
198             parentView.element.appendChild(div);
199
200             var childView = new TestView("Child");
201             childView.show(div);
202
203             try {
204                 parentView.element.removeChild(div);
205             } catch (e) {
206                 InspectorTest.addResult(e);
207             }
208             next();
209         },
210
211         function testRemoveChildren(next)
212         {
213             var parentView = new TestView("Parent");
214             var childView = new TestView("Child");
215             childView.show(parentView.element);
216             parentView.element.appendChild(document.createElement("div"));
217             try {
218                 parentView.element.removeChildren();
219             } catch (e) {
220                 InspectorTest.addResult(e);
221             }
222             next();
223         },
224
225         function testImplicitRemoveChildren(next)
226         {
227             var parentView = new TestView("Parent");
228             var div = document.createElement("div");
229             parentView.element.appendChild(div);
230
231             var childView = new TestView("Child");
232             childView.show(div);
233
234             try {
235                 parentView.element.removeChildren();
236             } catch (e) {
237                 InspectorTest.addResult(e);
238             }
239             next();
240         }
241     ]);
242 }
243
244 </script>
245 </head>
246
247 <body onload="runTest()">
248 <p>
249 This tests that events are properly propagated through View hierarchy.
250 </p>
251
252 </body>
253 </html>