OLD | NEW |
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 #include <algorithm> | 5 #include <algorithm> |
6 #include <list> | 6 #include <list> |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/prerender/prerender_manager.h" | 10 #include "chrome/browser/prerender/prerender_manager.h" |
11 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
12 #include "chrome/browser/ui/login/login_prompt.h" | 12 #include "chrome/browser/ui/login/login_prompt.h" |
13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
14 #include "chrome/common/chrome_notification_types.h" | 14 #include "chrome/common/chrome_notification_types.h" |
15 #include "chrome/test/base/in_process_browser_test.h" | 15 #include "chrome/test/base/in_process_browser_test.h" |
16 #include "chrome/test/base/ui_test_utils.h" | 16 #include "chrome/test/base/ui_test_utils.h" |
17 #include "content/browser/renderer_host/resource_dispatcher_host.h" | 17 #include "content/browser/renderer_host/resource_dispatcher_host.h" |
18 #include "content/browser/tab_contents/tab_contents.h" | 18 #include "content/browser/tab_contents/tab_contents.h" |
19 #include "content/public/browser/notification_details.h" | 19 #include "content/public/browser/notification_details.h" |
20 #include "content/public/browser/notification_source.h" | 20 #include "content/public/browser/notification_source.h" |
21 #include "content/test/test_browser_thread.h" | 21 #include "content/test/test_browser_thread.h" |
22 #include "net/base/auth.h" | 22 #include "net/base/auth.h" |
23 #include "net/base/mock_host_resolver.h" | 23 #include "net/base/mock_host_resolver.h" |
24 | 24 |
| 25 using content::NavigationController; |
25 using content::OpenURLParams; | 26 using content::OpenURLParams; |
26 using content::Referrer; | 27 using content::Referrer; |
27 | 28 |
28 namespace { | 29 namespace { |
29 | 30 |
30 class LoginPromptBrowserTest : public InProcessBrowserTest { | 31 class LoginPromptBrowserTest : public InProcessBrowserTest { |
31 public: | 32 public: |
32 LoginPromptBrowserTest() | 33 LoginPromptBrowserTest() |
33 : bad_password_("incorrect"), bad_username_("nouser") { | 34 : bad_password_("incorrect"), bad_username_("nouser") { |
34 set_show_window(true); | 35 set_show_window(true); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 const content::NotificationSource& source) { | 152 const content::NotificationSource& source) { |
152 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); | 153 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); |
153 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source); | 154 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source); |
154 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source); | 155 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source); |
155 } | 156 } |
156 | 157 |
157 template <int T> | 158 template <int T> |
158 class WindowedNavigationObserver | 159 class WindowedNavigationObserver |
159 : public ui_test_utils::WindowedNotificationObserver { | 160 : public ui_test_utils::WindowedNotificationObserver { |
160 public: | 161 public: |
161 explicit WindowedNavigationObserver(content::NavigationController* controller) | 162 explicit WindowedNavigationObserver(NavigationController* controller) |
162 : ui_test_utils::WindowedNotificationObserver( | 163 : ui_test_utils::WindowedNotificationObserver( |
163 T, content::Source<content::NavigationController>(controller)) {} | 164 T, content::Source<NavigationController>(controller)) {} |
164 }; | 165 }; |
165 | 166 |
166 // LOAD_STOP observer is special since we want to be able to wait for | 167 // LOAD_STOP observer is special since we want to be able to wait for |
167 // multiple LOAD_STOP events. | 168 // multiple LOAD_STOP events. |
168 class WindowedLoadStopObserver | 169 class WindowedLoadStopObserver |
169 : public WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP> { | 170 : public WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP> { |
170 public: | 171 public: |
171 WindowedLoadStopObserver(content::NavigationController* controller, | 172 WindowedLoadStopObserver(NavigationController* controller, |
172 int notification_count) | 173 int notification_count) |
173 : WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP>(controller), | 174 : WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP>(controller), |
174 remaining_notification_count_(notification_count) {} | 175 remaining_notification_count_(notification_count) {} |
175 protected: | 176 protected: |
176 virtual void Observe(int type, | 177 virtual void Observe(int type, |
177 const content::NotificationSource& source, | 178 const content::NotificationSource& source, |
178 const content::NotificationDetails& details) OVERRIDE; | 179 const content::NotificationDetails& details) OVERRIDE; |
179 private: | 180 private: |
180 int remaining_notification_count_; // Number of notifications remaining. | 181 int remaining_notification_count_; // Number of notifications remaining. |
181 }; | 182 }; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 prerender::PrerenderManager::SetMode(old_mode_); | 238 prerender::PrerenderManager::SetMode(old_mode_); |
238 } | 239 } |
239 private: | 240 private: |
240 bool old_prefetch_state_; | 241 bool old_prefetch_state_; |
241 prerender::PrerenderManager::PrerenderManagerMode old_mode_; | 242 prerender::PrerenderManager::PrerenderManagerMode old_mode_; |
242 } set_prefetch_for_test(true); | 243 } set_prefetch_for_test(true); |
243 | 244 |
244 TabContentsWrapper* contents = | 245 TabContentsWrapper* contents = |
245 browser()->GetSelectedTabContentsWrapper(); | 246 browser()->GetSelectedTabContentsWrapper(); |
246 ASSERT_TRUE(contents); | 247 ASSERT_TRUE(contents); |
247 content::NavigationController* controller = | 248 NavigationController* controller = &contents->web_contents()->GetController(); |
248 &contents->web_contents()->GetController(); | |
249 LoginPromptBrowserTestObserver observer; | 249 LoginPromptBrowserTestObserver observer; |
250 | 250 |
251 observer.Register(content::Source<content::NavigationController>(controller)); | 251 observer.Register(content::Source<NavigationController>(controller)); |
252 | 252 |
253 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 253 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
254 browser()->OpenURL(OpenURLParams( | 254 browser()->OpenURL(OpenURLParams( |
255 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 255 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
256 false)); | 256 false)); |
257 | 257 |
258 load_stop_waiter.Wait(); | 258 load_stop_waiter.Wait(); |
259 EXPECT_TRUE(observer.handlers_.empty()); | 259 EXPECT_TRUE(observer.handlers_.empty()); |
260 EXPECT_TRUE(test_server()->Stop()); | 260 EXPECT_TRUE(test_server()->Stop()); |
261 } | 261 } |
262 | 262 |
263 // Test login prompt cancellation. | 263 // Test login prompt cancellation. |
264 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth) { | 264 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth) { |
265 ASSERT_TRUE(test_server()->Start()); | 265 ASSERT_TRUE(test_server()->Start()); |
266 GURL auth_page = test_server()->GetURL(kAuthBasicPage); | 266 GURL auth_page = test_server()->GetURL(kAuthBasicPage); |
267 GURL no_auth_page_1 = test_server()->GetURL("a"); | 267 GURL no_auth_page_1 = test_server()->GetURL("a"); |
268 GURL no_auth_page_2 = test_server()->GetURL("b"); | 268 GURL no_auth_page_2 = test_server()->GetURL("b"); |
269 GURL no_auth_page_3 = test_server()->GetURL("c"); | 269 GURL no_auth_page_3 = test_server()->GetURL("c"); |
270 | 270 |
271 TabContentsWrapper* contents = | 271 TabContentsWrapper* contents = |
272 browser()->GetSelectedTabContentsWrapper(); | 272 browser()->GetSelectedTabContentsWrapper(); |
273 ASSERT_TRUE(contents); | 273 ASSERT_TRUE(contents); |
274 | 274 |
275 content::NavigationController* controller = | 275 NavigationController* controller = &contents->web_contents()->GetController(); |
276 &contents->web_contents()->GetController(); | |
277 | 276 |
278 LoginPromptBrowserTestObserver observer; | 277 LoginPromptBrowserTestObserver observer; |
279 observer.Register(content::Source<content::NavigationController>(controller)); | 278 observer.Register(content::Source<NavigationController>(controller)); |
280 | 279 |
281 // First navigate to an unauthenticated page so we have something to | 280 // First navigate to an unauthenticated page so we have something to |
282 // go back to. | 281 // go back to. |
283 ui_test_utils::NavigateToURL(browser(), no_auth_page_1); | 282 ui_test_utils::NavigateToURL(browser(), no_auth_page_1); |
284 | 283 |
285 // Navigating while auth is requested is the same as cancelling. | 284 // Navigating while auth is requested is the same as cancelling. |
286 { | 285 { |
287 // We need to wait for two LOAD_STOP events. One for auth_page and one for | 286 // We need to wait for two LOAD_STOP events. One for auth_page and one for |
288 // no_auth_page_2. | 287 // no_auth_page_2. |
289 WindowedLoadStopObserver load_stop_waiter(controller, 2); | 288 WindowedLoadStopObserver load_stop_waiter(controller, 2); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 // displaying the page. First we check whether cancelling works as | 364 // displaying the page. First we check whether cancelling works as |
366 // expected. | 365 // expected. |
367 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmCancellation) { | 366 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmCancellation) { |
368 ASSERT_TRUE(test_server()->Start()); | 367 ASSERT_TRUE(test_server()->Start()); |
369 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); | 368 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); |
370 | 369 |
371 TabContentsWrapper* contents = | 370 TabContentsWrapper* contents = |
372 browser()->GetSelectedTabContentsWrapper(); | 371 browser()->GetSelectedTabContentsWrapper(); |
373 ASSERT_TRUE(contents); | 372 ASSERT_TRUE(contents); |
374 | 373 |
375 content::NavigationController* controller = | 374 NavigationController* controller = &contents->web_contents()->GetController(); |
376 &contents->web_contents()->GetController(); | |
377 LoginPromptBrowserTestObserver observer; | 375 LoginPromptBrowserTestObserver observer; |
378 | 376 |
379 observer.Register(content::Source<content::NavigationController>(controller)); | 377 observer.Register(content::Source<NavigationController>(controller)); |
380 | 378 |
381 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 379 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
382 | 380 |
383 { | 381 { |
384 WindowedAuthNeededObserver auth_needed_waiter(controller); | 382 WindowedAuthNeededObserver auth_needed_waiter(controller); |
385 browser()->OpenURL(OpenURLParams( | 383 browser()->OpenURL(OpenURLParams( |
386 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 384 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
387 false)); | 385 false)); |
388 auth_needed_waiter.Wait(); | 386 auth_needed_waiter.Wait(); |
389 } | 387 } |
(...skipping 29 matching lines...) Expand all Loading... |
419 // Similar to the MultipleRealmCancellation test above, but tests | 417 // Similar to the MultipleRealmCancellation test above, but tests |
420 // whether supplying credentials work as exepcted. | 418 // whether supplying credentials work as exepcted. |
421 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmConfirmation) { | 419 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmConfirmation) { |
422 ASSERT_TRUE(test_server()->Start()); | 420 ASSERT_TRUE(test_server()->Start()); |
423 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); | 421 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); |
424 | 422 |
425 TabContentsWrapper* contents = | 423 TabContentsWrapper* contents = |
426 browser()->GetSelectedTabContentsWrapper(); | 424 browser()->GetSelectedTabContentsWrapper(); |
427 ASSERT_TRUE(contents); | 425 ASSERT_TRUE(contents); |
428 | 426 |
429 content::NavigationController* controller = | 427 NavigationController* controller = &contents->web_contents()->GetController(); |
430 &contents->web_contents()->GetController(); | |
431 LoginPromptBrowserTestObserver observer; | 428 LoginPromptBrowserTestObserver observer; |
432 | 429 |
433 observer.Register(content::Source<content::NavigationController>(controller)); | 430 observer.Register(content::Source<NavigationController>(controller)); |
434 | 431 |
435 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 432 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
436 int n_handlers = 0; | 433 int n_handlers = 0; |
437 | 434 |
438 { | 435 { |
439 WindowedAuthNeededObserver auth_needed_waiter(controller); | 436 WindowedAuthNeededObserver auth_needed_waiter(controller); |
440 | 437 |
441 browser()->OpenURL(OpenURLParams( | 438 browser()->OpenURL(OpenURLParams( |
442 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 439 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
443 false)); | 440 false)); |
(...skipping 29 matching lines...) Expand all Loading... |
473 // Testing for recovery from an incorrect password for the case where | 470 // Testing for recovery from an incorrect password for the case where |
474 // there are multiple authenticated resources. | 471 // there are multiple authenticated resources. |
475 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, IncorrectConfirmation) { | 472 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, IncorrectConfirmation) { |
476 ASSERT_TRUE(test_server()->Start()); | 473 ASSERT_TRUE(test_server()->Start()); |
477 GURL test_page = test_server()->GetURL(kSingleRealmTestPage); | 474 GURL test_page = test_server()->GetURL(kSingleRealmTestPage); |
478 | 475 |
479 TabContentsWrapper* contents = | 476 TabContentsWrapper* contents = |
480 browser()->GetSelectedTabContentsWrapper(); | 477 browser()->GetSelectedTabContentsWrapper(); |
481 ASSERT_TRUE(contents); | 478 ASSERT_TRUE(contents); |
482 | 479 |
483 content::NavigationController* controller = | 480 NavigationController* controller = &contents->web_contents()->GetController(); |
484 &contents->web_contents()->GetController(); | |
485 LoginPromptBrowserTestObserver observer; | 481 LoginPromptBrowserTestObserver observer; |
486 | 482 |
487 observer.Register(content::Source<content::NavigationController>(controller)); | 483 observer.Register(content::Source<NavigationController>(controller)); |
488 | 484 |
489 { | 485 { |
490 WindowedAuthNeededObserver auth_needed_waiter(controller); | 486 WindowedAuthNeededObserver auth_needed_waiter(controller); |
491 browser()->OpenURL(OpenURLParams( | 487 browser()->OpenURL(OpenURLParams( |
492 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 488 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
493 false)); | 489 false)); |
494 auth_needed_waiter.Wait(); | 490 auth_needed_waiter.Wait(); |
495 } | 491 } |
496 | 492 |
497 EXPECT_FALSE(observer.handlers_.empty()); | 493 EXPECT_FALSE(observer.handlers_.empty()); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, NoLoginPromptForFavicon) { | 542 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, NoLoginPromptForFavicon) { |
547 const char* kFaviconTestPage = "files/login/has_favicon.html"; | 543 const char* kFaviconTestPage = "files/login/has_favicon.html"; |
548 const char* kFaviconResource = "auth-basic/favicon.gif"; | 544 const char* kFaviconResource = "auth-basic/favicon.gif"; |
549 | 545 |
550 ASSERT_TRUE(test_server()->Start()); | 546 ASSERT_TRUE(test_server()->Start()); |
551 | 547 |
552 TabContentsWrapper* contents = | 548 TabContentsWrapper* contents = |
553 browser()->GetSelectedTabContentsWrapper(); | 549 browser()->GetSelectedTabContentsWrapper(); |
554 ASSERT_TRUE(contents); | 550 ASSERT_TRUE(contents); |
555 | 551 |
556 content::NavigationController* controller = | 552 NavigationController* controller = &contents->web_contents()->GetController(); |
557 &contents->web_contents()->GetController(); | |
558 LoginPromptBrowserTestObserver observer; | 553 LoginPromptBrowserTestObserver observer; |
559 | 554 |
560 observer.Register(content::Source<content::NavigationController>(controller)); | 555 observer.Register(content::Source<NavigationController>(controller)); |
561 | 556 |
562 // First load a page that has a favicon that requires | 557 // First load a page that has a favicon that requires |
563 // authentication. There should be no login prompt. | 558 // authentication. There should be no login prompt. |
564 { | 559 { |
565 GURL test_page = test_server()->GetURL(kFaviconTestPage); | 560 GURL test_page = test_server()->GetURL(kFaviconTestPage); |
566 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 561 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
567 browser()->OpenURL(OpenURLParams( | 562 browser()->OpenURL(OpenURLParams( |
568 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 563 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
569 false)); | 564 false)); |
570 load_stop_waiter.Wait(); | 565 load_stop_waiter.Wait(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, BlockCrossdomainPrompt) { | 599 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, BlockCrossdomainPrompt) { |
605 const char* kTestPage = "files/login/load_img_from_b.html"; | 600 const char* kTestPage = "files/login/load_img_from_b.html"; |
606 | 601 |
607 host_resolver()->AddRule("www.a.com", "127.0.0.1"); | 602 host_resolver()->AddRule("www.a.com", "127.0.0.1"); |
608 host_resolver()->AddRule("www.b.com", "127.0.0.1"); | 603 host_resolver()->AddRule("www.b.com", "127.0.0.1"); |
609 ASSERT_TRUE(test_server()->Start()); | 604 ASSERT_TRUE(test_server()->Start()); |
610 | 605 |
611 TabContentsWrapper* contents = browser()->GetSelectedTabContentsWrapper(); | 606 TabContentsWrapper* contents = browser()->GetSelectedTabContentsWrapper(); |
612 ASSERT_TRUE(contents); | 607 ASSERT_TRUE(contents); |
613 | 608 |
614 content::NavigationController* controller = | 609 NavigationController* controller = &contents->web_contents()->GetController(); |
615 &contents->web_contents()->GetController(); | |
616 LoginPromptBrowserTestObserver observer; | 610 LoginPromptBrowserTestObserver observer; |
617 observer.Register(content::Source<content::NavigationController>(controller)); | 611 observer.Register(content::Source<NavigationController>(controller)); |
618 | 612 |
619 // Load a page that has a cross-domain sub-resource authentication. | 613 // Load a page that has a cross-domain sub-resource authentication. |
620 // There should be no login prompt. | 614 // There should be no login prompt. |
621 { | 615 { |
622 GURL test_page = test_server()->GetURL(kTestPage); | 616 GURL test_page = test_server()->GetURL(kTestPage); |
623 ASSERT_EQ("127.0.0.1", test_page.host()); | 617 ASSERT_EQ("127.0.0.1", test_page.host()); |
624 | 618 |
625 // Change the host from 127.0.0.1 to www.a.com so that when the | 619 // Change the host from 127.0.0.1 to www.a.com so that when the |
626 // page tries to load from b, it will be cross-origin. | 620 // page tries to load from b, it will be cross-origin. |
627 std::string new_host("www.a.com"); | 621 std::string new_host("www.a.com"); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 EXPECT_TRUE(test_server()->Stop()); | 666 EXPECT_TRUE(test_server()->Stop()); |
673 } | 667 } |
674 | 668 |
675 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { | 669 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { |
676 ASSERT_TRUE(test_server()->Start()); | 670 ASSERT_TRUE(test_server()->Start()); |
677 | 671 |
678 // Get NavigationController for tab 1. | 672 // Get NavigationController for tab 1. |
679 TabContentsWrapper* contents_1 = | 673 TabContentsWrapper* contents_1 = |
680 browser()->GetSelectedTabContentsWrapper(); | 674 browser()->GetSelectedTabContentsWrapper(); |
681 ASSERT_TRUE(contents_1); | 675 ASSERT_TRUE(contents_1); |
682 content::NavigationController* controller_1 = | 676 NavigationController* controller_1 = |
683 &contents_1->web_contents()->GetController(); | 677 &contents_1->web_contents()->GetController(); |
684 | 678 |
685 // Open a new tab. | 679 // Open a new tab. |
686 ui_test_utils::NavigateToURLWithDisposition( | 680 ui_test_utils::NavigateToURLWithDisposition( |
687 browser(), | 681 browser(), |
688 GURL("about:blank"), | 682 GURL("about:blank"), |
689 NEW_FOREGROUND_TAB, | 683 NEW_FOREGROUND_TAB, |
690 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 684 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
691 | 685 |
692 // Get NavigationController for tab 2. | 686 // Get NavigationController for tab 2. |
693 TabContentsWrapper* contents_2 = | 687 TabContentsWrapper* contents_2 = |
694 browser()->GetSelectedTabContentsWrapper(); | 688 browser()->GetSelectedTabContentsWrapper(); |
695 ASSERT_TRUE(contents_2); | 689 ASSERT_TRUE(contents_2); |
696 ASSERT_NE(contents_1, contents_2); | 690 ASSERT_NE(contents_1, contents_2); |
697 content::NavigationController* controller_2 = | 691 NavigationController* controller_2 = |
698 &contents_2->web_contents()->GetController(); | 692 &contents_2->web_contents()->GetController(); |
699 | 693 |
700 LoginPromptBrowserTestObserver observer; | 694 LoginPromptBrowserTestObserver observer; |
701 observer.Register(content::Source<content::NavigationController>( | 695 observer.Register(content::Source<NavigationController>(controller_1)); |
702 controller_1)); | 696 observer.Register(content::Source<NavigationController>(controller_2)); |
703 observer.Register(content::Source<content::NavigationController>( | |
704 controller_2)); | |
705 | 697 |
706 { | 698 { |
707 // Open different auth urls in each tab. | 699 // Open different auth urls in each tab. |
708 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 700 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
709 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 701 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
710 contents_1->tab_contents()->OpenURL(OpenURLParams( | 702 contents_1->tab_contents()->OpenURL(OpenURLParams( |
711 test_server()->GetURL("auth-basic/1"), | 703 test_server()->GetURL("auth-basic/1"), |
712 content::Referrer(), | 704 content::Referrer(), |
713 CURRENT_TAB, | 705 CURRENT_TAB, |
714 content::PAGE_TRANSITION_TYPED, | 706 content::PAGE_TRANSITION_TYPED, |
(...skipping 27 matching lines...) Expand all Loading... |
742 EXPECT_TRUE(test_server()->Stop()); | 734 EXPECT_TRUE(test_server()->Stop()); |
743 } | 735 } |
744 | 736 |
745 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { | 737 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { |
746 ASSERT_TRUE(test_server()->Start()); | 738 ASSERT_TRUE(test_server()->Start()); |
747 | 739 |
748 // Get NavigationController for tab 1. | 740 // Get NavigationController for tab 1. |
749 TabContentsWrapper* contents_1 = | 741 TabContentsWrapper* contents_1 = |
750 browser()->GetSelectedTabContentsWrapper(); | 742 browser()->GetSelectedTabContentsWrapper(); |
751 ASSERT_TRUE(contents_1); | 743 ASSERT_TRUE(contents_1); |
752 content::NavigationController* controller_1 = | 744 NavigationController* controller_1 = |
753 &contents_1->web_contents()->GetController(); | 745 &contents_1->web_contents()->GetController(); |
754 | 746 |
755 // Open a new tab. | 747 // Open a new tab. |
756 ui_test_utils::NavigateToURLWithDisposition( | 748 ui_test_utils::NavigateToURLWithDisposition( |
757 browser(), | 749 browser(), |
758 GURL("about:blank"), | 750 GURL("about:blank"), |
759 NEW_FOREGROUND_TAB, | 751 NEW_FOREGROUND_TAB, |
760 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 752 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
761 | 753 |
762 // Get NavigationController for tab 2. | 754 // Get NavigationController for tab 2. |
763 TabContentsWrapper* contents_2 = | 755 TabContentsWrapper* contents_2 = |
764 browser()->GetSelectedTabContentsWrapper(); | 756 browser()->GetSelectedTabContentsWrapper(); |
765 ASSERT_TRUE(contents_2); | 757 ASSERT_TRUE(contents_2); |
766 ASSERT_NE(contents_1, contents_2); | 758 ASSERT_NE(contents_1, contents_2); |
767 content::NavigationController* controller_2 = | 759 NavigationController* controller_2 = |
768 &contents_2->web_contents()->GetController(); | 760 &contents_2->web_contents()->GetController(); |
769 | 761 |
770 LoginPromptBrowserTestObserver observer; | 762 LoginPromptBrowserTestObserver observer; |
771 observer.Register(content::Source<content::NavigationController>( | 763 observer.Register(content::Source<NavigationController>(controller_1)); |
772 controller_1)); | 764 observer.Register(content::Source<NavigationController>(controller_2)); |
773 observer.Register(content::Source<content::NavigationController>( | |
774 controller_2)); | |
775 | 765 |
776 { | 766 { |
777 // Open different auth urls in each tab. | 767 // Open different auth urls in each tab. |
778 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 768 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
779 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 769 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
780 contents_1->tab_contents()->OpenURL(OpenURLParams( | 770 contents_1->tab_contents()->OpenURL(OpenURLParams( |
781 test_server()->GetURL("auth-basic/1"), | 771 test_server()->GetURL("auth-basic/1"), |
782 content::Referrer(), | 772 content::Referrer(), |
783 CURRENT_TAB, | 773 CURRENT_TAB, |
784 content::PAGE_TRANSITION_TYPED, | 774 content::PAGE_TRANSITION_TYPED, |
(...skipping 28 matching lines...) Expand all Loading... |
813 } | 803 } |
814 | 804 |
815 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, | 805 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, |
816 SupplyRedundantAuthsMultiProfile) { | 806 SupplyRedundantAuthsMultiProfile) { |
817 ASSERT_TRUE(test_server()->Start()); | 807 ASSERT_TRUE(test_server()->Start()); |
818 | 808 |
819 // Get NavigationController for regular tab. | 809 // Get NavigationController for regular tab. |
820 TabContentsWrapper* contents = | 810 TabContentsWrapper* contents = |
821 browser()->GetSelectedTabContentsWrapper(); | 811 browser()->GetSelectedTabContentsWrapper(); |
822 ASSERT_TRUE(contents); | 812 ASSERT_TRUE(contents); |
823 content::NavigationController* controller = | 813 NavigationController* controller = &contents->web_contents()->GetController(); |
824 &contents->web_contents()->GetController(); | |
825 | 814 |
826 // Open an incognito window. | 815 // Open an incognito window. |
827 Browser* browser_incognito = CreateIncognitoBrowser(); | 816 Browser* browser_incognito = CreateIncognitoBrowser(); |
828 | 817 |
829 // Get NavigationController for incognito tab. | 818 // Get NavigationController for incognito tab. |
830 TabContentsWrapper* contents_incognito = | 819 TabContentsWrapper* contents_incognito = |
831 browser_incognito->GetSelectedTabContentsWrapper(); | 820 browser_incognito->GetSelectedTabContentsWrapper(); |
832 ASSERT_TRUE(contents_incognito); | 821 ASSERT_TRUE(contents_incognito); |
833 ASSERT_NE(contents, contents_incognito); | 822 ASSERT_NE(contents, contents_incognito); |
834 content::NavigationController* controller_incognito = | 823 NavigationController* controller_incognito = |
835 &contents_incognito->web_contents()->GetController(); | 824 &contents_incognito->web_contents()->GetController(); |
836 | 825 |
837 LoginPromptBrowserTestObserver observer; | 826 LoginPromptBrowserTestObserver observer; |
838 observer.Register(content::Source<content::NavigationController>(controller)); | 827 observer.Register(content::Source<NavigationController>(controller)); |
839 LoginPromptBrowserTestObserver observer_incognito; | 828 LoginPromptBrowserTestObserver observer_incognito; |
840 observer_incognito.Register( | 829 observer_incognito.Register( |
841 content::Source<content::NavigationController>(controller_incognito)); | 830 content::Source<NavigationController>(controller_incognito)); |
842 | 831 |
843 { | 832 { |
844 // Open an auth url in each window. | 833 // Open an auth url in each window. |
845 WindowedAuthNeededObserver auth_needed_waiter(controller); | 834 WindowedAuthNeededObserver auth_needed_waiter(controller); |
846 WindowedAuthNeededObserver auth_needed_waiter_incognito( | 835 WindowedAuthNeededObserver auth_needed_waiter_incognito( |
847 controller_incognito); | 836 controller_incognito); |
848 contents->tab_contents()->OpenURL(OpenURLParams( | 837 contents->tab_contents()->OpenURL(OpenURLParams( |
849 test_server()->GetURL("auth-basic/1"), | 838 test_server()->GetURL("auth-basic/1"), |
850 content::Referrer(), | 839 content::Referrer(), |
851 CURRENT_TAB, | 840 CURRENT_TAB, |
(...skipping 30 matching lines...) Expand all Loading... |
882 EXPECT_EQ(1, observer.auth_needed_count_); | 871 EXPECT_EQ(1, observer.auth_needed_count_); |
883 EXPECT_EQ(1, observer.auth_supplied_count_); | 872 EXPECT_EQ(1, observer.auth_supplied_count_); |
884 EXPECT_EQ(0, observer.auth_cancelled_count_); | 873 EXPECT_EQ(0, observer.auth_cancelled_count_); |
885 EXPECT_EQ(1, observer_incognito.auth_needed_count_); | 874 EXPECT_EQ(1, observer_incognito.auth_needed_count_); |
886 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); | 875 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); |
887 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); | 876 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); |
888 EXPECT_TRUE(test_server()->Stop()); | 877 EXPECT_TRUE(test_server()->Stop()); |
889 } | 878 } |
890 | 879 |
891 } // namespace | 880 } // namespace |
OLD | NEW |