Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Side by Side Diff: chrome/test/data/extensions/api_test/webnavigation/test_iframe.js

Issue 7859014: Refactor ExtensionApiTest.WebNavigationEvents* to not rely on window.setTimeout (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 function runTests() { 5 function runTests() {
6 var getURL = chrome.extension.getURL; 6 var getURL = chrome.extension.getURL;
7 chrome.tabs.create({"url": "about:blank"}, function(tab) { 7 chrome.tabs.create({"url": "about:blank"}, function(tab) {
8 var tabId = tab.id; 8 var tabId = tab.id;
9 9
10 chrome.test.runTests([ 10 chrome.test.runTests([
11 // Navigates to a.html which includes b.html as an iframe. b.html 11 // Navigates to a.html which includes b.html as an iframe. b.html
12 // redirects to c.html. 12 // redirects to c.html.
13 function iframe() { 13 function iframe() {
14 expect([ 14 expect([
15 [ "onBeforeNavigate", 15 { label: "a-onBeforeNavigate",
16 { frameId: 0, 16 event: "onBeforeNavigate",
17 tabId: 0, 17 details: { frameId: 0,
18 timeStamp: 0, 18 tabId: 0,
19 url: getURL('iframe/a.html') }], 19 timeStamp: 0,
20 [ "onCommitted", 20 url: getURL('iframe/a.html') }},
21 { frameId: 0, 21 { label: "a-onCommitted",
22 tabId: 0, 22 event: "onCommitted",
23 timeStamp: 0, 23 details: { frameId: 0,
24 transitionQualifiers: [], 24 tabId: 0,
25 transitionType: "link", 25 timeStamp: 0,
26 url: getURL('iframe/a.html') }], 26 transitionQualifiers: [],
27 [ "onBeforeNavigate", 27 transitionType: "link",
28 { frameId: 1, 28 url: getURL('iframe/a.html') }},
29 tabId: 0, 29 { label: "a-onDOMContentLoaded",
30 timeStamp: 0, 30 event: "onDOMContentLoaded",
31 url: getURL('iframe/b.html') }], 31 details: { frameId: 0,
32 [ "onDOMContentLoaded", 32 tabId: 0,
33 { frameId: 0, 33 timeStamp: 0,
34 tabId: 0, 34 url: getURL('iframe/a.html') }},
35 timeStamp: 0, 35 { label: "a-onCompleted",
36 url: getURL('iframe/a.html') }], 36 event: "onCompleted",
37 [ "onCommitted", 37 details: { frameId: 0,
38 { frameId: 1, 38 tabId: 0,
39 tabId: 0, 39 timeStamp: 0,
40 timeStamp: 0, 40 url: getURL('iframe/a.html') }},
41 transitionQualifiers: [], 41 { label: "b-onBeforeNavigate",
42 transitionType: "auto_subframe", 42 event: "onBeforeNavigate",
43 url: getURL('iframe/b.html') }], 43 details: { frameId: 1,
44 [ "onDOMContentLoaded", 44 tabId: 0,
45 { frameId: 1, 45 timeStamp: 0,
46 tabId: 0, 46 url: getURL('iframe/b.html') }},
47 timeStamp: 0, 47 { label: "b-onCommitted",
48 url: getURL('iframe/b.html') }], 48 event: "onCommitted",
49 [ "onCompleted", 49 details: { frameId: 1,
50 { frameId: 1, 50 tabId: 0,
51 tabId: 0, 51 timeStamp: 0,
52 timeStamp: 0, 52 transitionQualifiers: [],
53 url: getURL('iframe/b.html') }], 53 transitionType: "auto_subframe",
54 [ "onCompleted", 54 url: getURL('iframe/b.html') }},
55 { frameId: 0, 55 { label: "b-onDOMContentLoaded",
56 tabId: 0, 56 event: "onDOMContentLoaded",
57 timeStamp: 0, 57 details: { frameId: 1,
58 url: getURL('iframe/a.html') }], 58 tabId: 0,
59 [ "onBeforeNavigate", 59 timeStamp: 0,
60 { frameId: 1, 60 url: getURL('iframe/b.html') }},
61 tabId: 0, 61 { label: "b-onCompleted",
62 timeStamp: 0, 62 event: "onCompleted",
63 url: getURL('iframe/c.html') }], 63 details: { frameId: 1,
64 [ "onCommitted", 64 tabId: 0,
65 { frameId: 1, 65 timeStamp: 0,
66 tabId: 0, 66 url: getURL('iframe/b.html') }},
67 timeStamp: 0, 67 { label: "c-onBeforeNavigate",
68 transitionQualifiers: [], 68 event: "onBeforeNavigate",
69 transitionType: "manual_subframe", 69 details: { frameId: 1,
70 url: getURL('iframe/c.html') }], 70 tabId: 0,
71 [ "onDOMContentLoaded", 71 timeStamp: 0,
72 { frameId: 1, 72 url: getURL('iframe/c.html') }},
73 tabId: 0, 73 { label: "c-onCommitted",
74 timeStamp: 0, 74 event: "onCommitted",
75 url: getURL('iframe/c.html') }], 75 details: { frameId: 1,
76 [ "onCompleted", 76 tabId: 0,
77 { frameId: 1, 77 timeStamp: 0,
78 tabId: 0, 78 transitionQualifiers: [],
79 timeStamp: 0, 79 transitionType: "auto_subframe",
80 url: getURL('iframe/c.html') }]]); 80 url: getURL('iframe/c.html') }},
81 { label: "c-onDOMContentLoaded",
82 event: "onDOMContentLoaded",
83 details: { frameId: 1,
84 tabId: 0,
85 timeStamp: 0,
86 url: getURL('iframe/c.html') }},
87 { label: "c-onCompleted",
88 event: "onCompleted",
89 details: { frameId: 1,
90 tabId: 0,
91 timeStamp: 0,
92 url: getURL('iframe/c.html') }}],
93 [ navigationOrder("a-"),
94 navigationOrder("b-"),
95 navigationOrder("c-"),
96 isIFrameOf("b-", "a-"),
97 isLoadedBy("c-", "b-")]);
81 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') }); 98 chrome.tabs.update(tabId, { url: getURL('iframe/a.html') });
82 }, 99 },
83 100
84 // Navigates to d.html which includes e.html and f.html as iframes. To be 101 // Navigates to d.html which includes e.html and f.html as iframes. To be
85 // able to predict which iframe has which id, the iframe for f.html is 102 // able to predict which iframe has which id, the iframe for f.html is
86 // created by javascript. f.html then navigates to g.html. 103 // created by javascript. f.html then navigates to g.html.
87 function iframeMultiple() { 104 function iframeMultiple() {
88 expect([ 105 expect([
89 [ "onBeforeNavigate", 106 { label: "d-onBeforeNavigate",
90 { frameId: 0, 107 event: "onBeforeNavigate",
91 tabId: 0, 108 details: { frameId: 0,
92 timeStamp: 0, 109 tabId: 0,
93 url: getURL('iframe/d.html') }], 110 timeStamp: 0,
94 [ "onCommitted", 111 url: getURL('iframe/d.html') }},
95 { frameId: 0, 112 { label: "d-onCommitted",
96 tabId: 0, 113 event: "onCommitted",
97 timeStamp: 0, 114 details: { frameId: 0,
98 transitionQualifiers: [], 115 tabId: 0,
99 transitionType: "link", 116 timeStamp: 0,
100 url: getURL('iframe/d.html') }], 117 transitionQualifiers: [],
101 [ "onBeforeNavigate", 118 transitionType: "link",
102 { frameId: 1, 119 url: getURL('iframe/d.html') }},
103 tabId: 0, 120 { label: "d-onDOMContentLoaded",
104 timeStamp: 0, 121 event: "onDOMContentLoaded",
105 url: getURL('iframe/e.html') }], 122 details: { frameId: 0,
106 [ "onDOMContentLoaded", 123 tabId: 0,
107 { frameId: 0, 124 timeStamp: 0,
108 tabId: 0, 125 url: getURL('iframe/d.html') }},
109 timeStamp: 0, 126 { label: "d-onCompleted",
110 url: getURL('iframe/d.html') }], 127 event: "onCompleted",
111 [ "onCommitted", 128 details: { frameId: 0,
112 { frameId: 1, 129 tabId: 0,
113 tabId: 0, 130 timeStamp: 0,
114 timeStamp: 0, 131 url: getURL('iframe/d.html') }},
115 transitionQualifiers: [], 132 { label: "e-onBeforeNavigate",
116 transitionType: "auto_subframe", 133 event: "onBeforeNavigate",
117 url: getURL('iframe/e.html') }], 134 details: { frameId: 1,
118 [ "onDOMContentLoaded", 135 tabId: 0,
119 { frameId: 1, 136 timeStamp: 0,
120 tabId: 0, 137 url: getURL('iframe/e.html') }},
121 timeStamp: 0, 138 { label: "e-onCommitted",
122 url: getURL('iframe/e.html') }], 139 event: "onCommitted",
123 [ "onBeforeNavigate", 140 details: { frameId: 1,
124 { frameId: 2, 141 tabId: 0,
125 tabId: 0, 142 timeStamp: 0,
126 timeStamp: 0, 143 transitionQualifiers: [],
127 url: getURL('iframe/f.html') }], 144 transitionType: "auto_subframe",
128 [ "onCompleted", 145 url: getURL('iframe/e.html') }},
129 { frameId: 1, 146 { label: "e-onDOMContentLoaded",
130 tabId: 0, 147 event: "onDOMContentLoaded",
131 timeStamp: 0, 148 details: { frameId: 1,
132 url: getURL('iframe/e.html') }], 149 tabId: 0,
133 [ "onCommitted", 150 timeStamp: 0,
134 { frameId: 2, 151 url: getURL('iframe/e.html') }},
135 tabId: 0, 152 { label: "e-onCompleted",
136 timeStamp: 0, 153 event: "onCompleted",
137 transitionQualifiers: [], 154 details: { frameId: 1,
138 transitionType: "auto_subframe", 155 tabId: 0,
139 url: getURL('iframe/f.html') }], 156 timeStamp: 0,
140 [ "onDOMContentLoaded", 157 url: getURL('iframe/e.html') }},
141 { frameId: 2, 158 { label: "f-onBeforeNavigate",
142 tabId: 0, 159 event: "onBeforeNavigate",
143 timeStamp: 0, 160 details: { frameId: 2,
144 url: getURL('iframe/f.html') }], 161 tabId: 0,
145 [ "onCompleted", 162 timeStamp: 0,
146 { frameId: 2, 163 url: getURL('iframe/f.html') }},
147 tabId: 0, 164 { label: "f-onCommitted",
148 timeStamp: 0, 165 event: "onCommitted",
149 url: getURL('iframe/f.html') }], 166 details: { frameId: 2,
150 [ "onCompleted", 167 tabId: 0,
151 { frameId: 0, 168 timeStamp: 0,
152 tabId: 0, 169 transitionQualifiers: [],
153 timeStamp: 0, 170 transitionType: "auto_subframe",
154 url: getURL('iframe/d.html') }], 171 url: getURL('iframe/f.html') }},
155 [ "onBeforeNavigate", 172 { label: "f-onDOMContentLoaded",
156 { frameId: 2, 173 event: "onDOMContentLoaded",
157 tabId: 0, 174 details: { frameId: 2,
158 timeStamp: 0, 175 tabId: 0,
159 url: getURL('iframe/g.html') }], 176 timeStamp: 0,
160 [ "onCommitted", 177 url: getURL('iframe/f.html') }},
161 { frameId: 2, 178 { label: "f-onCompleted",
162 tabId: 0, 179 event: "onCompleted",
163 timeStamp: 0, 180 details: { frameId: 2,
164 transitionQualifiers: [], 181 tabId: 0,
165 transitionType: "manual_subframe", 182 timeStamp: 0,
166 url: getURL('iframe/g.html') }], 183 url: getURL('iframe/f.html') }},
167 [ "onDOMContentLoaded", 184 { label: "g-onBeforeNavigate",
168 { frameId: 2, 185 event: "onBeforeNavigate",
169 tabId: 0, 186 details: { frameId: 2,
170 timeStamp: 0, 187 tabId: 0,
171 url: getURL('iframe/g.html') }], 188 timeStamp: 0,
172 [ "onCompleted", 189 url: getURL('iframe/g.html') }},
173 { frameId: 2, 190 { label: "g-onCommitted",
174 tabId: 0, 191 event: "onCommitted",
175 timeStamp: 0, 192 details: { frameId: 2,
176 url: getURL('iframe/g.html') }]]); 193 tabId: 0,
194 timeStamp: 0,
195 transitionQualifiers: [],
196 transitionType: "auto_subframe",
197 url: getURL('iframe/g.html') }},
198 { label: "g-onDOMContentLoaded",
199 event: "onDOMContentLoaded",
200 details: { frameId: 2,
201 tabId: 0,
202 timeStamp: 0,
203 url: getURL('iframe/g.html') }},
204 { label: "g-onCompleted",
205 event: "onCompleted",
206 details: { frameId: 2,
207 tabId: 0,
208 timeStamp: 0,
209 url: getURL('iframe/g.html') }}],
210 [ navigationOrder("d-"),
211 navigationOrder("e-"),
212 navigationOrder("f-"),
213 navigationOrder("g-"),
214 isIFrameOf("e-", "d-"),
215 ["d-onDOMContentLoaded", "f-onBeforeNavigate", "f-onCompleted",
216 "d-onCompleted"],
217 isLoadedBy("g-", "f-")]);
177 chrome.tabs.update(tabId, { url: getURL('iframe/d.html') }); 218 chrome.tabs.update(tabId, { url: getURL('iframe/d.html') });
178 }, 219 },
179 220
180 // Navigates to h.html which includes i.html that triggers a navigation 221 // Navigates to h.html which includes i.html that triggers a navigation
181 // on the main frame. 222 // on the main frame.
182 function iframeNavigate() { 223 function iframeNavigate() {
183 expect([ 224 expect([
184 [ "onBeforeNavigate", 225 { label: "h-onBeforeNavigate",
185 { frameId: 0, 226 event: "onBeforeNavigate",
186 tabId: 0, 227 details: { frameId: 0,
187 timeStamp: 0, 228 tabId: 0,
188 url: getURL('iframe/h.html') }], 229 timeStamp: 0,
189 [ "onCommitted", 230 url: getURL('iframe/h.html') }},
190 { frameId: 0, 231 { label: "h-onCommitted",
191 tabId: 0, 232 event: "onCommitted",
192 timeStamp: 0, 233 details: { frameId: 0,
193 transitionQualifiers: [], 234 tabId: 0,
194 transitionType: "link", 235 timeStamp: 0,
195 url: getURL('iframe/h.html') }], 236 transitionQualifiers: [],
196 [ "onBeforeNavigate", 237 transitionType: "link",
197 { frameId: 1, 238 url: getURL('iframe/h.html') }},
198 tabId: 0, 239 { label: "h-onDOMContentLoaded",
199 timeStamp: 0, 240 event: "onDOMContentLoaded",
200 url: getURL('iframe/i.html') }], 241 details: { frameId: 0,
201 [ "onDOMContentLoaded", 242 tabId: 0,
202 { frameId: 0, 243 timeStamp: 0,
203 tabId: 0, 244 url: getURL('iframe/h.html') }},
204 timeStamp: 0, 245 { label: "h-onCompleted",
205 url: getURL('iframe/h.html') }], 246 event: "onCompleted",
206 [ "onCommitted", 247 details: { frameId: 0,
207 { frameId: 1, 248 tabId: 0,
208 tabId: 0, 249 timeStamp: 0,
209 timeStamp: 0, 250 url: getURL('iframe/h.html') }},
210 transitionQualifiers: [], 251 { label: "i-onBeforeNavigate",
211 transitionType: "auto_subframe", 252 event: "onBeforeNavigate",
212 url: getURL('iframe/i.html') }], 253 details: { frameId: 1,
213 [ "onDOMContentLoaded", 254 tabId: 0,
214 { frameId: 1, 255 timeStamp: 0,
215 tabId: 0, 256 url: getURL('iframe/i.html') }},
216 timeStamp: 0, 257 { label: "i-onCommitted",
217 url: getURL('iframe/i.html') }], 258 event: "onCommitted",
218 [ "onCompleted", 259 details: { frameId: 1,
219 { frameId: 1, 260 tabId: 0,
220 tabId: 0, 261 timeStamp: 0,
221 timeStamp: 0, 262 transitionQualifiers: [],
222 url: getURL('iframe/i.html') }], 263 transitionType: "auto_subframe",
223 [ "onCompleted", 264 url: getURL('iframe/i.html') }},
224 { frameId: 0, 265 { label: "i-onDOMContentLoaded",
225 tabId: 0, 266 event: "onDOMContentLoaded",
226 timeStamp: 0, 267 details: { frameId: 1,
227 url: getURL('iframe/h.html') }], 268 tabId: 0,
228 [ "onBeforeNavigate", 269 timeStamp: 0,
229 { frameId: 0, 270 url: getURL('iframe/i.html') }},
230 tabId: 0, 271 { label: "i-onCompleted",
231 timeStamp: 0, 272 event: "onCompleted",
232 url: getURL('iframe/c.html') }], 273 details: { frameId: 1,
233 [ "onCommitted", 274 tabId: 0,
234 { frameId: 0, 275 timeStamp: 0,
235 tabId: 0, 276 url: getURL('iframe/i.html') }},
236 timeStamp: 0, 277 { label: "c-onBeforeNavigate",
237 transitionQualifiers: [], 278 event: "onBeforeNavigate",
238 transitionType: "link", 279 details: { frameId: 0,
239 url: getURL('iframe/c.html') }], 280 tabId: 0,
240 [ "onDOMContentLoaded", 281 timeStamp: 0,
241 { frameId: 0, 282 url: getURL('iframe/c.html') }},
242 tabId: 0, 283 { label: "c-onCommitted",
243 timeStamp: 0, 284 event: "onCommitted",
244 url: getURL('iframe/c.html') }], 285 details: { frameId: 0,
245 [ "onCompleted", 286 tabId: 0,
246 { frameId: 0, 287 timeStamp: 0,
247 tabId: 0, 288 transitionQualifiers: [],
248 timeStamp: 0, 289 transitionType: "link",
249 url: getURL('iframe/c.html') }]]); 290 url: getURL('iframe/c.html') }},
291 { label: "c-onDOMContentLoaded",
292 event: "onDOMContentLoaded",
293 details: { frameId: 0,
294 tabId: 0,
295 timeStamp: 0,
296 url: getURL('iframe/c.html') }},
297 { label: "c-onCompleted",
298 event: "onCompleted",
299 details: { frameId: 0,
300 tabId: 0,
301 timeStamp: 0,
302 url: getURL('iframe/c.html') }}],
303 [ navigationOrder("h-"),
304 navigationOrder("i-"),
305 navigationOrder("c-"),
306 isIFrameOf("i-", "h-"),
307 isLoadedBy("c-", "i-") ]);
250 chrome.tabs.update(tabId, { url: getURL('iframe/h.html') }); 308 chrome.tabs.update(tabId, { url: getURL('iframe/h.html') });
251 }, 309 },
252 ]); 310 ]);
253 }); 311 });
254 } 312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698