OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/captive_portal/captive_portal_tab_helper.h" | 5 #include "chrome/browser/captive_portal/captive_portal_tab_helper.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "chrome/browser/captive_portal/captive_portal_service.h" | 9 #include "chrome/browser/captive_portal/captive_portal_service.h" |
10 #include "chrome/browser/captive_portal/captive_portal_tab_reloader.h" | 10 #include "chrome/browser/captive_portal/captive_portal_tab_reloader.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 | 84 |
85 // Simulates a successful load of |url|. | 85 // Simulates a successful load of |url|. |
86 void SimulateSuccess(const GURL& url, | 86 void SimulateSuccess(const GURL& url, |
87 content::RenderViewHost* render_view_host) { | 87 content::RenderViewHost* render_view_host) { |
88 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 88 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); |
89 tab_helper().DidStartProvisionalLoadForFrame( | 89 tab_helper().DidStartProvisionalLoadForFrame( |
90 1, -1, true, url, false, false, render_view_host); | 90 1, -1, true, url, false, false, render_view_host); |
91 | 91 |
92 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 92 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
93 tab_helper().DidCommitProvisionalLoadForFrame( | 93 tab_helper().DidCommitProvisionalLoadForFrame( |
94 1, string16(), true, url, content::PAGE_TRANSITION_LINK, | 94 1, base::string16(), true, url, content::PAGE_TRANSITION_LINK, |
95 render_view_host); | 95 render_view_host); |
96 } | 96 } |
97 | 97 |
98 // Simulates a connection timeout while requesting |url|. | 98 // Simulates a connection timeout while requesting |url|. |
99 void SimulateTimeout(const GURL& url, | 99 void SimulateTimeout(const GURL& url, |
100 content::RenderViewHost* render_view_host) { | 100 content::RenderViewHost* render_view_host) { |
101 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 101 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); |
102 tab_helper().DidStartProvisionalLoadForFrame( | 102 tab_helper().DidStartProvisionalLoadForFrame( |
103 1, -1, true, url, false, false, render_view_host); | 103 1, -1, true, url, false, false, render_view_host); |
104 | 104 |
105 tab_helper().DidFailProvisionalLoad( | 105 tab_helper().DidFailProvisionalLoad( |
106 1, string16(), true, url, net::ERR_TIMED_OUT, string16(), | 106 1, base::string16(), true, url, net::ERR_TIMED_OUT, base::string16(), |
107 render_view_host); | 107 render_view_host); |
108 | 108 |
109 // Provisional load starts for the error page. | 109 // Provisional load starts for the error page. |
110 tab_helper().DidStartProvisionalLoadForFrame( | 110 tab_helper().DidStartProvisionalLoadForFrame( |
111 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host); | 111 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host); |
112 | 112 |
113 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 113 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
114 tab_helper().DidCommitProvisionalLoadForFrame( | 114 tab_helper().DidCommitProvisionalLoadForFrame( |
115 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK, | 115 1, base::string16(), true, GURL(kErrorPageUrl), |
116 render_view_host); | 116 content::PAGE_TRANSITION_LINK, render_view_host); |
117 } | 117 } |
118 | 118 |
119 // Simulates an abort while requesting |url|. | 119 // Simulates an abort while requesting |url|. |
120 void SimulateAbort(const GURL& url, | 120 void SimulateAbort(const GURL& url, |
121 content::RenderViewHost* render_view_host, | 121 content::RenderViewHost* render_view_host, |
122 NavigationType navigation_type) { | 122 NavigationType navigation_type) { |
123 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 123 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); |
124 tab_helper().DidStartProvisionalLoadForFrame( | 124 tab_helper().DidStartProvisionalLoadForFrame( |
125 1, -1, true, url, false, false, render_view_host); | 125 1, -1, true, url, false, false, render_view_host); |
126 | 126 |
127 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 127 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
128 if (navigation_type == kSameProcess) { | 128 if (navigation_type == kSameProcess) { |
129 tab_helper().DidFailProvisionalLoad( | 129 tab_helper().DidFailProvisionalLoad( |
130 1, string16(), true, url, net::ERR_ABORTED, string16(), | 130 1, base::string16(), true, url, net::ERR_ABORTED, base::string16(), |
131 render_view_host); | 131 render_view_host); |
132 } else { | 132 } else { |
133 // For interrupted provisional cross-process navigations, the | 133 // For interrupted provisional cross-process navigations, the |
134 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad | 134 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad |
135 // notification. | 135 // notification. |
136 tab_helper().RenderViewDeleted(render_view_host); | 136 tab_helper().RenderViewDeleted(render_view_host); |
137 } | 137 } |
138 | 138 |
139 // Make sure that above call resulted in abort, for tests that continue | 139 // Make sure that above call resulted in abort, for tests that continue |
140 // after the abort. | 140 // after the abort. |
141 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); | 141 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); |
142 } | 142 } |
143 | 143 |
144 // Simulates an abort while loading an error page. | 144 // Simulates an abort while loading an error page. |
145 void SimulateAbortTimeout(const GURL& url, | 145 void SimulateAbortTimeout(const GURL& url, |
146 content::RenderViewHost* render_view_host, | 146 content::RenderViewHost* render_view_host, |
147 NavigationType navigation_type) { | 147 NavigationType navigation_type) { |
148 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 148 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); |
149 tab_helper().DidStartProvisionalLoadForFrame( | 149 tab_helper().DidStartProvisionalLoadForFrame( |
150 1, -1, true, url, false, false, render_view_host); | 150 1, -1, true, url, false, false, render_view_host); |
151 | 151 |
152 tab_helper().DidFailProvisionalLoad( | 152 tab_helper().DidFailProvisionalLoad( |
153 1, string16(), true, url, net::ERR_TIMED_OUT, string16(), | 153 1, base::string16(), true, url, net::ERR_TIMED_OUT, base::string16(), |
154 render_view_host); | 154 render_view_host); |
155 | 155 |
156 // Start event for the error page. | 156 // Start event for the error page. |
157 tab_helper().DidStartProvisionalLoadForFrame( | 157 tab_helper().DidStartProvisionalLoadForFrame( |
158 1, -1, true, url, true, false, render_view_host); | 158 1, -1, true, url, true, false, render_view_host); |
159 | 159 |
160 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 160 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
161 if (navigation_type == kSameProcess) { | 161 if (navigation_type == kSameProcess) { |
162 tab_helper().DidFailProvisionalLoad( | 162 tab_helper().DidFailProvisionalLoad( |
163 1, string16(), true, url, net::ERR_ABORTED, string16(), | 163 1, base::string16(), true, url, net::ERR_ABORTED, base::string16(), |
164 render_view_host); | 164 render_view_host); |
165 } else { | 165 } else { |
166 // For interrupted provisional cross-process navigations, the | 166 // For interrupted provisional cross-process navigations, the |
167 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad | 167 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad |
168 // notification. | 168 // notification. |
169 tab_helper().RenderViewDeleted(render_view_host); | 169 tab_helper().RenderViewDeleted(render_view_host); |
170 } | 170 } |
171 | 171 |
172 // Make sure that above call resulted in abort, for tests that continue | 172 // Make sure that above call resulted in abort, for tests that continue |
173 // after the abort. | 173 // after the abort. |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 TEST_F(CaptivePortalTabHelperTest, HttpTimeoutLinkDoctor) { | 242 TEST_F(CaptivePortalTabHelperTest, HttpTimeoutLinkDoctor) { |
243 SimulateTimeout(GURL(kHttpUrl), render_view_host1()); | 243 SimulateTimeout(GURL(kHttpUrl), render_view_host1()); |
244 | 244 |
245 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); | 245 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); |
246 // Provisional load starts for the error page. | 246 // Provisional load starts for the error page. |
247 tab_helper().DidStartProvisionalLoadForFrame( | 247 tab_helper().DidStartProvisionalLoadForFrame( |
248 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); | 248 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); |
249 | 249 |
250 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 250 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
251 tab_helper().DidCommitProvisionalLoadForFrame( | 251 tab_helper().DidCommitProvisionalLoadForFrame( |
252 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK, | 252 1, base::string16(), true, GURL(kErrorPageUrl), |
253 render_view_host1()); | 253 content::PAGE_TRANSITION_LINK, render_view_host1()); |
254 tab_helper().DidStopLoading(render_view_host1()); | 254 tab_helper().DidStopLoading(render_view_host1()); |
255 } | 255 } |
256 | 256 |
257 TEST_F(CaptivePortalTabHelperTest, HttpsSuccess) { | 257 TEST_F(CaptivePortalTabHelperTest, HttpsSuccess) { |
258 SimulateSuccess(GURL(kHttpsUrl), render_view_host1()); | 258 SimulateSuccess(GURL(kHttpsUrl), render_view_host1()); |
259 tab_helper().DidStopLoading(render_view_host1()); | 259 tab_helper().DidStopLoading(render_view_host1()); |
260 EXPECT_FALSE(tab_helper().IsLoginTab()); | 260 EXPECT_FALSE(tab_helper().IsLoginTab()); |
261 } | 261 } |
262 | 262 |
263 TEST_F(CaptivePortalTabHelperTest, HttpsTimeout) { | 263 TEST_F(CaptivePortalTabHelperTest, HttpsTimeout) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 // navigating before the old navigation cancels. We generate an abort message | 325 // navigating before the old navigation cancels. We generate an abort message |
326 // for the old navigation. | 326 // for the old navigation. |
327 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 327 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
328 EXPECT_CALL(mock_reloader(), | 328 EXPECT_CALL(mock_reloader(), |
329 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); | 329 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); |
330 tab_helper().DidStartProvisionalLoadForFrame( | 330 tab_helper().DidStartProvisionalLoadForFrame( |
331 1, -1, true, cross_process_url, false, false, render_view_host2()); | 331 1, -1, true, cross_process_url, false, false, render_view_host2()); |
332 | 332 |
333 // The cross-process navigation fails. | 333 // The cross-process navigation fails. |
334 tab_helper().DidFailProvisionalLoad( | 334 tab_helper().DidFailProvisionalLoad( |
335 1, string16(), true, cross_process_url, net::ERR_FAILED, string16(), | 335 1, base::string16(), true, cross_process_url, net::ERR_FAILED, |
336 render_view_host2()); | 336 base::string16(), render_view_host2()); |
337 | 337 |
338 // The same-site navigation finally is aborted. | 338 // The same-site navigation finally is aborted. |
339 tab_helper().DidFailProvisionalLoad( | 339 tab_helper().DidFailProvisionalLoad( |
340 1, string16(), true, same_site_url, net::ERR_ABORTED, string16(), | 340 1, base::string16(), true, same_site_url, net::ERR_ABORTED, |
341 render_view_host1()); | 341 base::string16(), render_view_host1()); |
342 | 342 |
343 // The provisional load starts for the error page for the cross-process | 343 // The provisional load starts for the error page for the cross-process |
344 // navigation. | 344 // navigation. |
345 tab_helper().DidStartProvisionalLoadForFrame( | 345 tab_helper().DidStartProvisionalLoadForFrame( |
346 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host2()); | 346 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host2()); |
347 | 347 |
348 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_FAILED)).Times(1); | 348 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_FAILED)).Times(1); |
349 tab_helper().DidCommitProvisionalLoadForFrame( | 349 tab_helper().DidCommitProvisionalLoadForFrame( |
350 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_TYPED, | 350 1, base::string16(), true, GURL(kErrorPageUrl), |
351 render_view_host2()); | 351 content::PAGE_TRANSITION_TYPED, render_view_host2()); |
352 } | 352 } |
353 | 353 |
354 // Similar to the above test, except the original RenderViewHost manages to | 354 // Similar to the above test, except the original RenderViewHost manages to |
355 // commit before its navigation is aborted. | 355 // commit before its navigation is aborted. |
356 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { | 356 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { |
357 GURL same_site_url = GURL(kHttpUrl); | 357 GURL same_site_url = GURL(kHttpUrl); |
358 GURL cross_process_url = GURL(kHttpsUrl2); | 358 GURL cross_process_url = GURL(kHttpsUrl2); |
359 | 359 |
360 // A same-site load for the original RenderViewHost starts. | 360 // A same-site load for the original RenderViewHost starts. |
361 EXPECT_CALL(mock_reloader(), | 361 EXPECT_CALL(mock_reloader(), |
362 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); | 362 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); |
363 tab_helper().DidStartProvisionalLoadForFrame( | 363 tab_helper().DidStartProvisionalLoadForFrame( |
364 1, -1, true, same_site_url, false, false, render_view_host1()); | 364 1, -1, true, same_site_url, false, false, render_view_host1()); |
365 | 365 |
366 // It's unexpectedly interrupted by a cross-process navigation, which starts | 366 // It's unexpectedly interrupted by a cross-process navigation, which starts |
367 // navigating before the old navigation cancels. We generate an abort message | 367 // navigating before the old navigation cancels. We generate an abort message |
368 // for the old navigation. | 368 // for the old navigation. |
369 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 369 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
370 EXPECT_CALL(mock_reloader(), | 370 EXPECT_CALL(mock_reloader(), |
371 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); | 371 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); |
372 tab_helper().DidStartProvisionalLoadForFrame( | 372 tab_helper().DidStartProvisionalLoadForFrame( |
373 1, -1, true, cross_process_url, false, false, render_view_host2()); | 373 1, -1, true, cross_process_url, false, false, render_view_host2()); |
374 | 374 |
375 // The cross-process navigation fails. | 375 // The cross-process navigation fails. |
376 tab_helper().DidFailProvisionalLoad( | 376 tab_helper().DidFailProvisionalLoad( |
377 1, string16(), true, cross_process_url, net::ERR_FAILED, string16(), | 377 1, base::string16(), true, cross_process_url, net::ERR_FAILED, |
| 378 base::string16(), |
378 render_view_host2()); | 379 render_view_host2()); |
379 | 380 |
380 // The same-site navigation succeeds. | 381 // The same-site navigation succeeds. |
381 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 382 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
382 EXPECT_CALL(mock_reloader(), | 383 EXPECT_CALL(mock_reloader(), |
383 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); | 384 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); |
384 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 385 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
385 tab_helper().DidCommitProvisionalLoadForFrame( | 386 tab_helper().DidCommitProvisionalLoadForFrame( |
386 1, string16(), true, same_site_url, content::PAGE_TRANSITION_LINK, | 387 1, base::string16(), true, same_site_url, content::PAGE_TRANSITION_LINK, |
387 render_view_host1()); | 388 render_view_host1()); |
388 } | 389 } |
389 | 390 |
390 // Simulates navigations for a number of subframes, and makes sure no | 391 // Simulates navigations for a number of subframes, and makes sure no |
391 // CaptivePortalTabHelper function is called. | 392 // CaptivePortalTabHelper function is called. |
392 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { | 393 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { |
393 GURL url = GURL(kHttpsUrl); | 394 GURL url = GURL(kHttpsUrl); |
394 // Normal load. | 395 // Normal load. |
395 tab_helper().DidStartProvisionalLoadForFrame( | 396 tab_helper().DidStartProvisionalLoadForFrame( |
396 1, -1, false, url, false, false, render_view_host1()); | 397 1, -1, false, url, false, false, render_view_host1()); |
397 tab_helper().DidCommitProvisionalLoadForFrame( | 398 tab_helper().DidCommitProvisionalLoadForFrame( |
398 1, string16(), false, url, content::PAGE_TRANSITION_LINK, | 399 1, base::string16(), false, url, content::PAGE_TRANSITION_LINK, |
399 render_view_host1()); | 400 render_view_host1()); |
400 | 401 |
401 // Timeout. | 402 // Timeout. |
402 tab_helper().DidStartProvisionalLoadForFrame( | 403 tab_helper().DidStartProvisionalLoadForFrame( |
403 2, -1, false, url, false, false, render_view_host1()); | 404 2, -1, false, url, false, false, render_view_host1()); |
404 tab_helper().DidFailProvisionalLoad( | 405 tab_helper().DidFailProvisionalLoad( |
405 2, string16(), false, url, net::ERR_TIMED_OUT, string16(), | 406 2, base::string16(), false, url, net::ERR_TIMED_OUT, base::string16(), |
406 render_view_host1()); | 407 render_view_host1()); |
407 tab_helper().DidStartProvisionalLoadForFrame( | 408 tab_helper().DidStartProvisionalLoadForFrame( |
408 2, -1, false, url, true, false, render_view_host1()); | 409 2, -1, false, url, true, false, render_view_host1()); |
409 tab_helper().DidFailProvisionalLoad( | 410 tab_helper().DidFailProvisionalLoad( |
410 2, string16(), false, url, net::ERR_ABORTED, string16(), | 411 2, base::string16(), false, url, net::ERR_ABORTED, base::string16(), |
411 render_view_host1()); | 412 render_view_host1()); |
412 | 413 |
413 // Abort. | 414 // Abort. |
414 tab_helper().DidStartProvisionalLoadForFrame( | 415 tab_helper().DidStartProvisionalLoadForFrame( |
415 3, -1, false, url, false, false, render_view_host1()); | 416 3, -1, false, url, false, false, render_view_host1()); |
416 tab_helper().DidFailProvisionalLoad( | 417 tab_helper().DidFailProvisionalLoad( |
417 3, string16(), false, url, net::ERR_ABORTED, string16(), | 418 3, base::string16(), false, url, net::ERR_ABORTED, base::string16(), |
418 render_view_host1()); | 419 render_view_host1()); |
419 } | 420 } |
420 | 421 |
421 // Simulates a subframe erroring out at the same time as a provisional load, | 422 // Simulates a subframe erroring out at the same time as a provisional load, |
422 // but with a different error code. Make sure the TabHelper sees the correct | 423 // but with a different error code. Make sure the TabHelper sees the correct |
423 // error. | 424 // error. |
424 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { | 425 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { |
425 // URL used by both frames. | 426 // URL used by both frames. |
426 GURL url = GURL(kHttpsUrl); | 427 GURL url = GURL(kHttpsUrl); |
427 | 428 |
428 int frame_id = 2; | 429 int frame_id = 2; |
429 int subframe_id = 1; | 430 int subframe_id = 1; |
430 | 431 |
431 // Loads start. | 432 // Loads start. |
432 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 433 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); |
433 tab_helper().DidStartProvisionalLoadForFrame( | 434 tab_helper().DidStartProvisionalLoadForFrame( |
434 frame_id, -1, true, url, false, false, render_view_host1()); | 435 frame_id, -1, true, url, false, false, render_view_host1()); |
435 tab_helper().DidStartProvisionalLoadForFrame( | 436 tab_helper().DidStartProvisionalLoadForFrame( |
436 subframe_id, frame_id, false, url, false, false, render_view_host1()); | 437 subframe_id, frame_id, false, url, false, false, render_view_host1()); |
437 | 438 |
438 // Loads return errors. | 439 // Loads return errors. |
439 tab_helper().DidFailProvisionalLoad( | 440 tab_helper().DidFailProvisionalLoad( |
440 frame_id, string16(), true, url, net::ERR_UNEXPECTED, string16(), | 441 frame_id, base::string16(), true, url, net::ERR_UNEXPECTED, |
441 render_view_host1()); | 442 base::string16(), render_view_host1()); |
442 tab_helper().DidFailProvisionalLoad( | 443 tab_helper().DidFailProvisionalLoad( |
443 subframe_id, string16(), false, url, net::ERR_TIMED_OUT, string16(), | 444 subframe_id, base::string16(), false, url, net::ERR_TIMED_OUT, |
444 render_view_host1()); | 445 base::string16(), render_view_host1()); |
445 | 446 |
446 // Provisional load starts for the error pages. | 447 // Provisional load starts for the error pages. |
447 tab_helper().DidStartProvisionalLoadForFrame( | 448 tab_helper().DidStartProvisionalLoadForFrame( |
448 frame_id, -1, true, url, true, false, render_view_host1()); | 449 frame_id, -1, true, url, true, false, render_view_host1()); |
449 tab_helper().DidStartProvisionalLoadForFrame( | 450 tab_helper().DidStartProvisionalLoadForFrame( |
450 subframe_id, frame_id, false, url, true, false, render_view_host1()); | 451 subframe_id, frame_id, false, url, true, false, render_view_host1()); |
451 | 452 |
452 // Error page load finishes. | 453 // Error page load finishes. |
453 tab_helper().DidCommitProvisionalLoadForFrame( | 454 tab_helper().DidCommitProvisionalLoadForFrame( |
454 subframe_id, string16(), false, url, | 455 subframe_id, base::string16(), false, url, |
455 content::PAGE_TRANSITION_AUTO_SUBFRAME, render_view_host1()); | 456 content::PAGE_TRANSITION_AUTO_SUBFRAME, render_view_host1()); |
456 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_UNEXPECTED)).Times(1); | 457 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_UNEXPECTED)).Times(1); |
457 tab_helper().DidCommitProvisionalLoadForFrame( | 458 tab_helper().DidCommitProvisionalLoadForFrame( |
458 frame_id, string16(), true, url, content::PAGE_TRANSITION_LINK, | 459 frame_id, base::string16(), true, url, content::PAGE_TRANSITION_LINK, |
459 render_view_host1()); | 460 render_view_host1()); |
460 } | 461 } |
461 | 462 |
462 // Simulates an HTTP to HTTPS redirect, which then times out. | 463 // Simulates an HTTP to HTTPS redirect, which then times out. |
463 TEST_F(CaptivePortalTabHelperTest, HttpToHttpsRedirectTimeout) { | 464 TEST_F(CaptivePortalTabHelperTest, HttpToHttpsRedirectTimeout) { |
464 GURL http_url(kHttpUrl); | 465 GURL http_url(kHttpUrl); |
465 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); | 466 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); |
466 tab_helper().DidStartProvisionalLoadForFrame( | 467 tab_helper().DidStartProvisionalLoadForFrame( |
467 1, -1, true, http_url, false, false, render_view_host1()); | 468 1, -1, true, http_url, false, false, render_view_host1()); |
468 | 469 |
469 GURL https_url(kHttpsUrl); | 470 GURL https_url(kHttpsUrl); |
470 EXPECT_CALL(mock_reloader(), OnRedirect(true)).Times(1); | 471 EXPECT_CALL(mock_reloader(), OnRedirect(true)).Times(1); |
471 OnRedirect(ResourceType::MAIN_FRAME, https_url, | 472 OnRedirect(ResourceType::MAIN_FRAME, https_url, |
472 render_view_host1()->GetProcess()->GetID()); | 473 render_view_host1()->GetProcess()->GetID()); |
473 | 474 |
474 tab_helper().DidFailProvisionalLoad( | 475 tab_helper().DidFailProvisionalLoad( |
475 1, string16(), true, https_url, net::ERR_TIMED_OUT, string16(), | 476 1, base::string16(), true, https_url, net::ERR_TIMED_OUT, |
476 render_view_host1()); | 477 base::string16(), render_view_host1()); |
477 | 478 |
478 // Provisional load starts for the error page. | 479 // Provisional load starts for the error page. |
479 tab_helper().DidStartProvisionalLoadForFrame( | 480 tab_helper().DidStartProvisionalLoadForFrame( |
480 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); | 481 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); |
481 | 482 |
482 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 483 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
483 tab_helper().DidCommitProvisionalLoadForFrame( | 484 tab_helper().DidCommitProvisionalLoadForFrame( |
484 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK, | 485 1, base::string16(), true, GURL(kErrorPageUrl), |
485 render_view_host1()); | 486 content::PAGE_TRANSITION_LINK, render_view_host1()); |
486 } | 487 } |
487 | 488 |
488 // Simulates an HTTPS to HTTP redirect. | 489 // Simulates an HTTPS to HTTP redirect. |
489 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { | 490 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { |
490 GURL https_url(kHttpsUrl); | 491 GURL https_url(kHttpsUrl); |
491 EXPECT_CALL(mock_reloader(), | 492 EXPECT_CALL(mock_reloader(), |
492 OnLoadStart(https_url.SchemeIsSecure())).Times(1); | 493 OnLoadStart(https_url.SchemeIsSecure())).Times(1); |
493 tab_helper().DidStartProvisionalLoadForFrame(1, -1, true, https_url, false, | 494 tab_helper().DidStartProvisionalLoadForFrame(1, -1, true, https_url, false, |
494 false, render_view_host1()); | 495 false, render_view_host1()); |
495 | 496 |
496 GURL http_url(kHttpUrl); | 497 GURL http_url(kHttpUrl); |
497 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); | 498 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); |
498 OnRedirect(ResourceType::MAIN_FRAME, http_url, | 499 OnRedirect(ResourceType::MAIN_FRAME, http_url, |
499 render_view_host1()->GetProcess()->GetID()); | 500 render_view_host1()->GetProcess()->GetID()); |
500 | 501 |
501 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 502 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
502 tab_helper().DidCommitProvisionalLoadForFrame( | 503 tab_helper().DidCommitProvisionalLoadForFrame( |
503 1, string16(), true, http_url, content::PAGE_TRANSITION_LINK, | 504 1, base::string16(), true, http_url, content::PAGE_TRANSITION_LINK, |
504 render_view_host1()); | 505 render_view_host1()); |
505 } | 506 } |
506 | 507 |
507 // Simulates an HTTPS to HTTPS redirect. | 508 // Simulates an HTTPS to HTTPS redirect. |
508 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { | 509 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { |
509 GURL http_url(kHttpUrl); | 510 GURL http_url(kHttpUrl); |
510 EXPECT_CALL(mock_reloader(), | 511 EXPECT_CALL(mock_reloader(), |
511 OnLoadStart(http_url.SchemeIsSecure())).Times(1); | 512 OnLoadStart(http_url.SchemeIsSecure())).Times(1); |
512 tab_helper().DidStartProvisionalLoadForFrame( | 513 tab_helper().DidStartProvisionalLoadForFrame( |
513 1, -1, true, http_url, false, false, render_view_host1()); | 514 1, -1, true, http_url, false, false, render_view_host1()); |
514 | 515 |
515 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); | 516 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); |
516 OnRedirect(ResourceType::MAIN_FRAME, http_url, | 517 OnRedirect(ResourceType::MAIN_FRAME, http_url, |
517 render_view_host1()->GetProcess()->GetID()); | 518 render_view_host1()->GetProcess()->GetID()); |
518 | 519 |
519 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 520 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
520 tab_helper().DidCommitProvisionalLoadForFrame( | 521 tab_helper().DidCommitProvisionalLoadForFrame( |
521 1, string16(), true, http_url, content::PAGE_TRANSITION_LINK, | 522 1, base::string16(), true, http_url, content::PAGE_TRANSITION_LINK, |
522 render_view_host1()); | 523 render_view_host1()); |
523 } | 524 } |
524 | 525 |
525 // Simulates redirect of a subframe. | 526 // Simulates redirect of a subframe. |
526 TEST_F(CaptivePortalTabHelperTest, SubframeRedirect) { | 527 TEST_F(CaptivePortalTabHelperTest, SubframeRedirect) { |
527 GURL http_url(kHttpUrl); | 528 GURL http_url(kHttpUrl); |
528 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); | 529 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); |
529 tab_helper().DidStartProvisionalLoadForFrame( | 530 tab_helper().DidStartProvisionalLoadForFrame( |
530 1, -1, true, http_url, false, false, render_view_host1()); | 531 1, -1, true, http_url, false, false, render_view_host1()); |
531 | 532 |
532 GURL https_url(kHttpsUrl); | 533 GURL https_url(kHttpsUrl); |
533 OnRedirect(ResourceType::SUB_FRAME, https_url, | 534 OnRedirect(ResourceType::SUB_FRAME, https_url, |
534 render_view_host1()->GetProcess()->GetID()); | 535 render_view_host1()->GetProcess()->GetID()); |
535 | 536 |
536 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 537 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
537 tab_helper().DidCommitProvisionalLoadForFrame( | 538 tab_helper().DidCommitProvisionalLoadForFrame( |
538 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK, | 539 1, base::string16(), true, GURL(kErrorPageUrl), |
539 render_view_host1()); | 540 content::PAGE_TRANSITION_LINK, render_view_host1()); |
540 } | 541 } |
541 | 542 |
542 // Simulates a redirect, for another RenderViewHost. | 543 // Simulates a redirect, for another RenderViewHost. |
543 TEST_F(CaptivePortalTabHelperTest, OtherRenderViewHostRedirect) { | 544 TEST_F(CaptivePortalTabHelperTest, OtherRenderViewHostRedirect) { |
544 GURL http_url(kHttpUrl); | 545 GURL http_url(kHttpUrl); |
545 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); | 546 EXPECT_CALL(mock_reloader(), OnLoadStart(false)).Times(1); |
546 tab_helper().DidStartProvisionalLoadForFrame( | 547 tab_helper().DidStartProvisionalLoadForFrame( |
547 1, -1, true, http_url, false, false, render_view_host1()); | 548 1, -1, true, http_url, false, false, render_view_host1()); |
548 | 549 |
549 // Another RenderViewHost sees a redirect. None of the reloader's functions | 550 // Another RenderViewHost sees a redirect. None of the reloader's functions |
550 // should be called. | 551 // should be called. |
551 GURL https_url(kHttpsUrl); | 552 GURL https_url(kHttpsUrl); |
552 OnRedirect(ResourceType::MAIN_FRAME, https_url, | 553 OnRedirect(ResourceType::MAIN_FRAME, https_url, |
553 render_view_host2()->GetProcess()->GetID()); | 554 render_view_host2()->GetProcess()->GetID()); |
554 | 555 |
555 tab_helper().DidFailProvisionalLoad( | 556 tab_helper().DidFailProvisionalLoad( |
556 1, string16(), true, https_url, net::ERR_TIMED_OUT, string16(), | 557 1, base::string16(), true, https_url, net::ERR_TIMED_OUT, |
557 render_view_host1()); | 558 base::string16(), render_view_host1()); |
558 | 559 |
559 // Provisional load starts for the error page. | 560 // Provisional load starts for the error page. |
560 tab_helper().DidStartProvisionalLoadForFrame( | 561 tab_helper().DidStartProvisionalLoadForFrame( |
561 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); | 562 1, -1, true, GURL(kErrorPageUrl), true, false, render_view_host1()); |
562 | 563 |
563 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 564 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
564 tab_helper().DidCommitProvisionalLoadForFrame( | 565 tab_helper().DidCommitProvisionalLoadForFrame( |
565 1, string16(), true, GURL(kErrorPageUrl), content::PAGE_TRANSITION_LINK, | 566 1, base::string16(), true, GURL(kErrorPageUrl), |
566 render_view_host1()); | 567 content::PAGE_TRANSITION_LINK, render_view_host1()); |
567 } | 568 } |
568 | 569 |
569 TEST_F(CaptivePortalTabHelperTest, LoginTabLogin) { | 570 TEST_F(CaptivePortalTabHelperTest, LoginTabLogin) { |
570 EXPECT_FALSE(tab_helper().IsLoginTab()); | 571 EXPECT_FALSE(tab_helper().IsLoginTab()); |
571 SetIsLoginTab(); | 572 SetIsLoginTab(); |
572 EXPECT_TRUE(tab_helper().IsLoginTab()); | 573 EXPECT_TRUE(tab_helper().IsLoginTab()); |
573 | 574 |
574 ObservePortalResult(RESULT_INTERNET_CONNECTED, RESULT_INTERNET_CONNECTED); | 575 ObservePortalResult(RESULT_INTERNET_CONNECTED, RESULT_INTERNET_CONNECTED); |
575 EXPECT_FALSE(tab_helper().IsLoginTab()); | 576 EXPECT_FALSE(tab_helper().IsLoginTab()); |
576 } | 577 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 EXPECT_FALSE(tab_helper().IsLoginTab()); | 610 EXPECT_FALSE(tab_helper().IsLoginTab()); |
610 | 611 |
611 ObservePortalResult(RESULT_BEHIND_CAPTIVE_PORTAL, RESULT_NO_RESPONSE); | 612 ObservePortalResult(RESULT_BEHIND_CAPTIVE_PORTAL, RESULT_NO_RESPONSE); |
612 EXPECT_FALSE(tab_helper().IsLoginTab()); | 613 EXPECT_FALSE(tab_helper().IsLoginTab()); |
613 | 614 |
614 ObservePortalResult(RESULT_NO_RESPONSE, RESULT_INTERNET_CONNECTED); | 615 ObservePortalResult(RESULT_NO_RESPONSE, RESULT_INTERNET_CONNECTED); |
615 EXPECT_FALSE(tab_helper().IsLoginTab()); | 616 EXPECT_FALSE(tab_helper().IsLoginTab()); |
616 } | 617 } |
617 | 618 |
618 } // namespace captive_portal | 619 } // namespace captive_portal |
OLD | NEW |