Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / progress-bar.html
1 <html>
2 <head>
3 <script src="../http/tests/inspector/inspector-test.js"></script>
4 <script type="text/javascript">
5
6 function initialize_ProgressBarTest()
7 {
8
9 InspectorTest.MockProgressIndicator = function()
10 {
11 }
12
13 InspectorTest.MockProgressIndicator.prototype = {
14     // Implementation of WebInspector.Progress interface.
15     isCanceled: function()
16     {
17         return this._isCanceled;
18     },
19
20     done: function()
21     {
22         InspectorTest.addResult("progress indicator: done");
23         this.dispatchEventToListeners(WebInspector.Progress.Events.Done);
24     },
25
26     setTotalWork: function(totalWork)
27     {
28         this._totalWork = totalWork;
29     },
30
31     setWorked: function(worked, title)
32     {
33         this._worked = worked;
34         if (typeof title !== "undefined")
35             this._title = title;
36     },
37
38     setTitle: function(title)
39     {
40         this._title = title;
41     },
42
43     // Test methods.
44     cancel: function()
45     {
46         this._isCanceled = true;
47     },
48
49     dump: function()
50     {
51         const roundFactor = 10000;
52
53         var worked = this._worked;
54         var totalWork = this._totalWork;
55
56         if (typeof worked === "number")
57             worked = Math.round(worked * roundFactor) / roundFactor;
58         if (typeof totalWork === "number")
59             totalWork = Math.round(totalWork * roundFactor) / roundFactor;
60
61         InspectorTest.addResult("progress: `" + this._title + "' " + worked + " out of " + totalWork + " done.");
62     },
63     
64     addEventListener: function(eventType, listener, thisObject) { },
65
66     __proto__: WebInspector.Object.prototype
67 }
68
69 }
70
71 var test = function()
72 {
73     function installProgressListeners(progressName, progress)
74     {
75         function onDone()
76         {
77             InspectorTest.addResult("Progress " + progressName + " dispatched Done event.");
78         }
79
80         function onCanceled()
81         {
82             InspectorTest.addResult("Progress " + progressName + " dispatched Canceled event.");
83         }
84
85         progress.addEventListener(WebInspector.Progress.Events.Done, onDone);
86         progress.addEventListener(WebInspector.Progress.Events.Canceled, onCanceled);
87     }
88     
89     InspectorTest.runTestSuite([
90         function testOneSubProgress(next)
91         {
92             var indicator = new InspectorTest.MockProgressIndicator();
93             var composite = new WebInspector.CompositeProgress(indicator);
94             var subProgress = composite.createSubProgress();
95             installProgressListeners("composite", composite);
96             installProgressListeners("subProgress", subProgress);
97
98             InspectorTest.addResult("Testing CompositeProgress with a single subprogress:");
99             indicator.dump();
100             subProgress.setTitle("cuckooing");
101             subProgress.setWorked(10);
102             indicator.dump();
103             subProgress.setTotalWork(100);
104             indicator.dump();
105             subProgress.setWorked(20, "meowing");
106             indicator.dump();
107             subProgress.done();
108             indicator.dump();
109             next();
110         },
111
112         function testMultipleSubProgresses(next)
113         {
114             var indicator = new InspectorTest.MockProgressIndicator();
115             var composite = new WebInspector.CompositeProgress(indicator);
116             var subProgress1 = composite.createSubProgress();
117             var subProgress2 = composite.createSubProgress(3);
118             installProgressListeners("composite", composite);
119             installProgressListeners("subProgress1", subProgress1);
120             installProgressListeners("subProgress2", subProgress2);
121
122             InspectorTest.addResult("Testing CompositeProgress with multiple subprogresses:");
123             indicator.dump();
124
125             subProgress1.setTitle("cuckooing");
126             subProgress1.setTotalWork(100);
127             subProgress1.setWorked(20);
128             indicator.dump();
129
130             subProgress2.setWorked(10);
131             indicator.dump();
132
133             subProgress2.setTotalWork(10);
134             subProgress2.setWorked(3, "barking");
135             indicator.dump();
136
137             subProgress1.setWorked(50, "meowing");
138             subProgress2.setWorked(5);
139             indicator.dump();
140
141             subProgress2.done();
142             indicator.dump();
143
144             subProgress1.done();
145             indicator.dump();
146             next();
147         },
148
149         function testCancel(next)
150         {
151             var indicator = new InspectorTest.MockProgressIndicator();
152             var composite = new WebInspector.CompositeProgress(indicator);
153             var subProgress = composite.createSubProgress();
154             installProgressListeners("composite", composite);
155             installProgressListeners("subProgress", subProgress);
156
157             InspectorTest.addResult("Testing isCanceled:");
158             InspectorTest.assertTrue(!subProgress.isCanceled(), "progress should not be canceled");
159             indicator.cancel();
160             InspectorTest.assertTrue(subProgress.isCanceled(), "progress should be canceled");
161             next();
162         },
163
164         function testNested(next)
165         {
166             var indicator = new InspectorTest.MockProgressIndicator();
167             var composite0 = new WebInspector.CompositeProgress(indicator);
168             var subProgress01 = composite0.createSubProgress();
169             var composite1 = new WebInspector.CompositeProgress(subProgress01);
170             var subProgress11 = composite1.createSubProgress(10); // Weight should have no effect.
171
172             installProgressListeners("composite0", composite0);
173             installProgressListeners("composite1", composite1);
174             installProgressListeners("subProgress01", subProgress01);
175             installProgressListeners("subProgress11", subProgress11);
176
177             InspectorTest.addResult("Testing nested subprogresses:");
178             indicator.dump();
179
180             subProgress11.setWorked(10);
181             indicator.dump();
182
183             subProgress11.setTotalWork(100);
184             indicator.dump();
185
186             subProgress11.setWorked(50, "meowing");
187             indicator.dump();
188
189             InspectorTest.assertTrue(!subProgress11.isCanceled());
190             indicator.cancel();
191             InspectorTest.assertTrue(subProgress11.isCanceled());
192
193             subProgress11.done();
194             indicator.dump();
195             next();
196         }
197     ]);
198 }
199
200 </script>
201 </head>
202 <body onload="runTest()">
203 <p>Tests inspector's composite progress bar.</p>
204 </body>
205 </html>