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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 void TearDown() override { | 81 void TearDown() override { |
82 web_contents2_.reset(NULL); | 82 web_contents2_.reset(NULL); |
83 web_contents1_.reset(NULL); | 83 web_contents1_.reset(NULL); |
84 ChromeRenderViewHostTestHarness::TearDown(); | 84 ChromeRenderViewHostTestHarness::TearDown(); |
85 } | 85 } |
86 | 86 |
87 // Simulates a successful load of |url|. | 87 // Simulates a successful load of |url|. |
88 void SimulateSuccess(const GURL& url, | 88 void SimulateSuccess(const GURL& url, |
89 content::RenderViewHost* render_view_host) { | 89 content::RenderViewHost* render_view_host) { |
90 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 90 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); |
91 tab_helper().DidStartProvisionalLoadForFrame( | 91 tab_helper().DidStartProvisionalLoadForFrame( |
92 render_view_host->GetMainFrame(), url, false, false); | 92 render_view_host->GetMainFrame(), url, false, false); |
93 | 93 |
94 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 94 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
95 tab_helper().DidCommitProvisionalLoadForFrame( | 95 tab_helper().DidCommitProvisionalLoadForFrame( |
96 render_view_host->GetMainFrame(), | 96 render_view_host->GetMainFrame(), |
97 url, | 97 url, |
98 ui::PAGE_TRANSITION_LINK); | 98 ui::PAGE_TRANSITION_LINK); |
99 } | 99 } |
100 | 100 |
101 // Simulates a connection timeout while requesting |url|. | 101 // Simulates a connection timeout while requesting |url|. |
102 void SimulateTimeout(const GURL& url, | 102 void SimulateTimeout(const GURL& url, |
103 content::RenderViewHost* render_view_host) { | 103 content::RenderViewHost* render_view_host) { |
104 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 104 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); |
105 tab_helper().DidStartProvisionalLoadForFrame( | 105 tab_helper().DidStartProvisionalLoadForFrame( |
106 render_view_host->GetMainFrame(), url, false, false); | 106 render_view_host->GetMainFrame(), url, false, false); |
107 | 107 |
108 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 108 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
109 url, | 109 url, |
110 net::ERR_TIMED_OUT, | 110 net::ERR_TIMED_OUT, |
111 base::string16()); | 111 base::string16()); |
112 | 112 |
113 // Provisional load starts for the error page. | 113 // Provisional load starts for the error page. |
114 tab_helper().DidStartProvisionalLoadForFrame( | 114 tab_helper().DidStartProvisionalLoadForFrame( |
115 render_view_host->GetMainFrame(), GURL(kErrorPageUrl), true, false); | 115 render_view_host->GetMainFrame(), GURL(kErrorPageUrl), true, false); |
116 | 116 |
117 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 117 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
118 tab_helper().DidCommitProvisionalLoadForFrame( | 118 tab_helper().DidCommitProvisionalLoadForFrame( |
119 render_view_host->GetMainFrame(), | 119 render_view_host->GetMainFrame(), |
120 GURL(kErrorPageUrl), | 120 GURL(kErrorPageUrl), |
121 ui::PAGE_TRANSITION_LINK); | 121 ui::PAGE_TRANSITION_LINK); |
122 } | 122 } |
123 | 123 |
124 // Simulates an abort while requesting |url|. | 124 // Simulates an abort while requesting |url|. |
125 void SimulateAbort(const GURL& url, | 125 void SimulateAbort(const GURL& url, |
126 content::RenderViewHost* render_view_host, | 126 content::RenderViewHost* render_view_host, |
127 NavigationType navigation_type) { | 127 NavigationType navigation_type) { |
128 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 128 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); |
129 tab_helper().DidStartProvisionalLoadForFrame( | 129 tab_helper().DidStartProvisionalLoadForFrame( |
130 render_view_host->GetMainFrame(), url, false, false); | 130 render_view_host->GetMainFrame(), url, false, false); |
131 | 131 |
132 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 132 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
133 if (navigation_type == kSameProcess) { | 133 if (navigation_type == kSameProcess) { |
134 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 134 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
135 url, | 135 url, |
136 net::ERR_ABORTED, | 136 net::ERR_ABORTED, |
137 base::string16()); | 137 base::string16()); |
138 } else { | 138 } else { |
139 // For interrupted provisional cross-process navigations, the | 139 // For interrupted provisional cross-process navigations, the |
140 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad | 140 // RenderViewHost is destroyed without sending a DidFailProvisionalLoad |
141 // notification. | 141 // notification. |
142 tab_helper().RenderViewDeleted(render_view_host); | 142 tab_helper().RenderViewDeleted(render_view_host); |
143 } | 143 } |
144 | 144 |
145 // Make sure that above call resulted in abort, for tests that continue | 145 // Make sure that above call resulted in abort, for tests that continue |
146 // after the abort. | 146 // after the abort. |
147 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); | 147 EXPECT_CALL(mock_reloader(), OnAbort()).Times(0); |
148 } | 148 } |
149 | 149 |
150 // Simulates an abort while loading an error page. | 150 // Simulates an abort while loading an error page. |
151 void SimulateAbortTimeout(const GURL& url, | 151 void SimulateAbortTimeout(const GURL& url, |
152 content::RenderViewHost* render_view_host, | 152 content::RenderViewHost* render_view_host, |
153 NavigationType navigation_type) { | 153 NavigationType navigation_type) { |
154 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 154 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); |
155 tab_helper().DidStartProvisionalLoadForFrame( | 155 tab_helper().DidStartProvisionalLoadForFrame( |
156 render_view_host->GetMainFrame(), url, false, false); | 156 render_view_host->GetMainFrame(), url, false, false); |
157 | 157 |
158 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), | 158 tab_helper().DidFailProvisionalLoad(render_view_host->GetMainFrame(), |
159 url, | 159 url, |
160 net::ERR_TIMED_OUT, | 160 net::ERR_TIMED_OUT, |
161 base::string16()); | 161 base::string16()); |
162 | 162 |
163 // Start event for the error page. | 163 // Start event for the error page. |
164 tab_helper().DidStartProvisionalLoadForFrame( | 164 tab_helper().DidStartProvisionalLoadForFrame( |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 } | 327 } |
328 | 328 |
329 // A provisional same-site navigation is interrupted by a cross-process | 329 // A provisional same-site navigation is interrupted by a cross-process |
330 // navigation without sending an abort first. | 330 // navigation without sending an abort first. |
331 TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) { | 331 TEST_F(CaptivePortalTabHelperTest, UnexpectedProvisionalLoad) { |
332 GURL same_site_url = GURL(kHttpUrl); | 332 GURL same_site_url = GURL(kHttpUrl); |
333 GURL cross_process_url = GURL(kHttpsUrl2); | 333 GURL cross_process_url = GURL(kHttpsUrl2); |
334 | 334 |
335 // A same-site load for the original RenderViewHost starts. | 335 // A same-site load for the original RenderViewHost starts. |
336 EXPECT_CALL(mock_reloader(), | 336 EXPECT_CALL(mock_reloader(), |
337 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); | 337 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); |
338 tab_helper().DidStartProvisionalLoadForFrame( | 338 tab_helper().DidStartProvisionalLoadForFrame( |
339 main_render_frame1(), same_site_url, false, false); | 339 main_render_frame1(), same_site_url, false, false); |
340 | 340 |
341 // It's unexpectedly interrupted by a cross-process navigation, which starts | 341 // It's unexpectedly interrupted by a cross-process navigation, which starts |
342 // navigating before the old navigation cancels. We generate an abort message | 342 // navigating before the old navigation cancels. We generate an abort message |
343 // for the old navigation. | 343 // for the old navigation. |
344 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 344 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
345 EXPECT_CALL(mock_reloader(), | 345 EXPECT_CALL(mock_reloader(), |
346 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); | 346 OnLoadStart(cross_process_url.SchemeUsesTLS())).Times(1); |
347 tab_helper().DidStartProvisionalLoadForFrame( | 347 tab_helper().DidStartProvisionalLoadForFrame( |
348 main_render_frame2(), cross_process_url, false, false); | 348 main_render_frame2(), cross_process_url, false, false); |
349 | 349 |
350 // The cross-process navigation fails. | 350 // The cross-process navigation fails. |
351 tab_helper().DidFailProvisionalLoad(main_render_frame2(), | 351 tab_helper().DidFailProvisionalLoad(main_render_frame2(), |
352 cross_process_url, | 352 cross_process_url, |
353 net::ERR_FAILED, | 353 net::ERR_FAILED, |
354 base::string16()); | 354 base::string16()); |
355 | 355 |
356 // The same-site navigation finally is aborted. | 356 // The same-site navigation finally is aborted. |
(...skipping 14 matching lines...) Expand all Loading... |
371 } | 371 } |
372 | 372 |
373 // Similar to the above test, except the original RenderViewHost manages to | 373 // Similar to the above test, except the original RenderViewHost manages to |
374 // commit before its navigation is aborted. | 374 // commit before its navigation is aborted. |
375 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { | 375 TEST_F(CaptivePortalTabHelperTest, UnexpectedCommit) { |
376 GURL same_site_url = GURL(kHttpUrl); | 376 GURL same_site_url = GURL(kHttpUrl); |
377 GURL cross_process_url = GURL(kHttpsUrl2); | 377 GURL cross_process_url = GURL(kHttpsUrl2); |
378 | 378 |
379 // A same-site load for the original RenderViewHost starts. | 379 // A same-site load for the original RenderViewHost starts. |
380 EXPECT_CALL(mock_reloader(), | 380 EXPECT_CALL(mock_reloader(), |
381 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); | 381 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); |
382 tab_helper().DidStartProvisionalLoadForFrame( | 382 tab_helper().DidStartProvisionalLoadForFrame( |
383 main_render_frame1(), same_site_url, false, false); | 383 main_render_frame1(), same_site_url, false, false); |
384 | 384 |
385 // It's unexpectedly interrupted by a cross-process navigation, which starts | 385 // It's unexpectedly interrupted by a cross-process navigation, which starts |
386 // navigating before the old navigation cancels. We generate an abort message | 386 // navigating before the old navigation cancels. We generate an abort message |
387 // for the old navigation. | 387 // for the old navigation. |
388 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 388 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
389 EXPECT_CALL(mock_reloader(), | 389 EXPECT_CALL(mock_reloader(), |
390 OnLoadStart(cross_process_url.SchemeIsSecure())).Times(1); | 390 OnLoadStart(cross_process_url.SchemeUsesTLS())).Times(1); |
391 tab_helper().DidStartProvisionalLoadForFrame( | 391 tab_helper().DidStartProvisionalLoadForFrame( |
392 main_render_frame2(), cross_process_url, false, false); | 392 main_render_frame2(), cross_process_url, false, false); |
393 | 393 |
394 // The cross-process navigation fails. | 394 // The cross-process navigation fails. |
395 tab_helper().DidFailProvisionalLoad(main_render_frame2(), | 395 tab_helper().DidFailProvisionalLoad(main_render_frame2(), |
396 cross_process_url, | 396 cross_process_url, |
397 net::ERR_FAILED, | 397 net::ERR_FAILED, |
398 base::string16()); | 398 base::string16()); |
399 | 399 |
400 // The same-site navigation succeeds. | 400 // The same-site navigation succeeds. |
401 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); | 401 EXPECT_CALL(mock_reloader(), OnAbort()).Times(1); |
402 EXPECT_CALL(mock_reloader(), | 402 EXPECT_CALL(mock_reloader(), |
403 OnLoadStart(same_site_url.SchemeIsSecure())).Times(1); | 403 OnLoadStart(same_site_url.SchemeUsesTLS())).Times(1); |
404 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 404 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
405 tab_helper().DidCommitProvisionalLoadForFrame( | 405 tab_helper().DidCommitProvisionalLoadForFrame( |
406 main_render_frame1(), same_site_url, ui::PAGE_TRANSITION_LINK); | 406 main_render_frame1(), same_site_url, ui::PAGE_TRANSITION_LINK); |
407 } | 407 } |
408 | 408 |
409 // Simulates navigations for a number of subframes, and makes sure no | 409 // Simulates navigations for a number of subframes, and makes sure no |
410 // CaptivePortalTabHelper function is called. | 410 // CaptivePortalTabHelper function is called. |
411 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { | 411 TEST_F(CaptivePortalTabHelperTest, HttpsSubframe) { |
412 GURL url = GURL(kHttpsUrl); | 412 GURL url = GURL(kHttpsUrl); |
413 | 413 |
(...skipping 29 matching lines...) Expand all Loading... |
443 // but with a different error code. Make sure the TabHelper sees the correct | 443 // but with a different error code. Make sure the TabHelper sees the correct |
444 // error. | 444 // error. |
445 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { | 445 TEST_F(CaptivePortalTabHelperTest, HttpsSubframeParallelError) { |
446 // URL used by both frames. | 446 // URL used by both frames. |
447 GURL url = GURL(kHttpsUrl); | 447 GURL url = GURL(kHttpsUrl); |
448 content::RenderFrameHost* subframe = | 448 content::RenderFrameHost* subframe = |
449 content::RenderFrameHostTester::For(main_render_frame1()) | 449 content::RenderFrameHostTester::For(main_render_frame1()) |
450 ->AppendChild("subframe"); | 450 ->AppendChild("subframe"); |
451 | 451 |
452 // Loads start. | 452 // Loads start. |
453 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeIsSecure())).Times(1); | 453 EXPECT_CALL(mock_reloader(), OnLoadStart(url.SchemeUsesTLS())).Times(1); |
454 tab_helper().DidStartProvisionalLoadForFrame( | 454 tab_helper().DidStartProvisionalLoadForFrame( |
455 main_render_frame1(), url, false, false); | 455 main_render_frame1(), url, false, false); |
456 tab_helper().DidStartProvisionalLoadForFrame(subframe, url, false, false); | 456 tab_helper().DidStartProvisionalLoadForFrame(subframe, url, false, false); |
457 | 457 |
458 // Loads return errors. | 458 // Loads return errors. |
459 tab_helper().DidFailProvisionalLoad( | 459 tab_helper().DidFailProvisionalLoad( |
460 main_render_frame1(), url, net::ERR_UNEXPECTED, base::string16()); | 460 main_render_frame1(), url, net::ERR_UNEXPECTED, base::string16()); |
461 tab_helper().DidFailProvisionalLoad( | 461 tab_helper().DidFailProvisionalLoad( |
462 subframe, url, net::ERR_TIMED_OUT, base::string16()); | 462 subframe, url, net::ERR_TIMED_OUT, base::string16()); |
463 | 463 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); | 499 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::ERR_TIMED_OUT)).Times(1); |
500 tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(), | 500 tab_helper().DidCommitProvisionalLoadForFrame(main_render_frame1(), |
501 GURL(kErrorPageUrl), | 501 GURL(kErrorPageUrl), |
502 ui::PAGE_TRANSITION_LINK); | 502 ui::PAGE_TRANSITION_LINK); |
503 } | 503 } |
504 | 504 |
505 // Simulates an HTTPS to HTTP redirect. | 505 // Simulates an HTTPS to HTTP redirect. |
506 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { | 506 TEST_F(CaptivePortalTabHelperTest, HttpsToHttpRedirect) { |
507 GURL https_url(kHttpsUrl); | 507 GURL https_url(kHttpsUrl); |
508 EXPECT_CALL(mock_reloader(), | 508 EXPECT_CALL(mock_reloader(), |
509 OnLoadStart(https_url.SchemeIsSecure())).Times(1); | 509 OnLoadStart(https_url.SchemeUsesTLS())).Times(1); |
510 tab_helper().DidStartProvisionalLoadForFrame( | 510 tab_helper().DidStartProvisionalLoadForFrame( |
511 main_render_frame1(), https_url, false, false); | 511 main_render_frame1(), https_url, false, false); |
512 | 512 |
513 GURL http_url(kHttpUrl); | 513 GURL http_url(kHttpUrl); |
514 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); | 514 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeUsesTLS())).Times(1); |
515 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, | 515 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, |
516 render_view_host1()->GetProcess()->GetID()); | 516 render_view_host1()->GetProcess()->GetID()); |
517 | 517 |
518 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 518 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
519 tab_helper().DidCommitProvisionalLoadForFrame( | 519 tab_helper().DidCommitProvisionalLoadForFrame( |
520 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); | 520 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); |
521 } | 521 } |
522 | 522 |
523 // Simulates an HTTPS to HTTPS redirect. | 523 // Simulates an HTTPS to HTTPS redirect. |
524 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { | 524 TEST_F(CaptivePortalTabHelperTest, HttpToHttpRedirect) { |
525 GURL http_url(kHttpUrl); | 525 GURL http_url(kHttpUrl); |
526 EXPECT_CALL(mock_reloader(), | 526 EXPECT_CALL(mock_reloader(), |
527 OnLoadStart(http_url.SchemeIsSecure())).Times(1); | 527 OnLoadStart(http_url.SchemeUsesTLS())).Times(1); |
528 tab_helper().DidStartProvisionalLoadForFrame( | 528 tab_helper().DidStartProvisionalLoadForFrame( |
529 main_render_frame1(), http_url, false, false); | 529 main_render_frame1(), http_url, false, false); |
530 | 530 |
531 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeIsSecure())).Times(1); | 531 EXPECT_CALL(mock_reloader(), OnRedirect(http_url.SchemeUsesTLS())).Times(1); |
532 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, | 532 OnRedirect(content::RESOURCE_TYPE_MAIN_FRAME, http_url, |
533 render_view_host1()->GetProcess()->GetID()); | 533 render_view_host1()->GetProcess()->GetID()); |
534 | 534 |
535 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); | 535 EXPECT_CALL(mock_reloader(), OnLoadCommitted(net::OK)).Times(1); |
536 tab_helper().DidCommitProvisionalLoadForFrame( | 536 tab_helper().DidCommitProvisionalLoadForFrame( |
537 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); | 537 main_render_frame1(), http_url, ui::PAGE_TRANSITION_LINK); |
538 } | 538 } |
539 | 539 |
540 // Tests that a subframe redirect doesn't reset the timer to kick off a captive | 540 // Tests that a subframe redirect doesn't reset the timer to kick off a captive |
541 // portal probe for the main frame if the main frame request is taking too long. | 541 // portal probe for the main frame if the main frame request is taking too long. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 EXPECT_FALSE(tab_helper().IsLoginTab()); | 632 EXPECT_FALSE(tab_helper().IsLoginTab()); |
633 | 633 |
634 ObservePortalResult(captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL, | 634 ObservePortalResult(captive_portal::RESULT_BEHIND_CAPTIVE_PORTAL, |
635 captive_portal::RESULT_NO_RESPONSE); | 635 captive_portal::RESULT_NO_RESPONSE); |
636 EXPECT_FALSE(tab_helper().IsLoginTab()); | 636 EXPECT_FALSE(tab_helper().IsLoginTab()); |
637 | 637 |
638 ObservePortalResult(captive_portal::RESULT_NO_RESPONSE, | 638 ObservePortalResult(captive_portal::RESULT_NO_RESPONSE, |
639 captive_portal::RESULT_INTERNET_CONNECTED); | 639 captive_portal::RESULT_INTERNET_CONNECTED); |
640 EXPECT_FALSE(tab_helper().IsLoginTab()); | 640 EXPECT_FALSE(tab_helper().IsLoginTab()); |
641 } | 641 } |
OLD | NEW |