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/ui/browser_navigator_browsertest.h" | 5 #include "chrome/browser/ui/browser_navigator_browsertest.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 } | 109 } |
110 | 110 |
111 Browser* BrowserNavigatorTest::CreateEmptyBrowserForType(Browser::Type type, | 111 Browser* BrowserNavigatorTest::CreateEmptyBrowserForType(Browser::Type type, |
112 Profile* profile) { | 112 Profile* profile) { |
113 Browser* browser = new Browser( | 113 Browser* browser = new Browser( |
114 Browser::CreateParams(type, profile, chrome::GetActiveDesktop())); | 114 Browser::CreateParams(type, profile, chrome::GetActiveDesktop())); |
115 chrome::AddTabAt(browser, GURL(), -1, true); | 115 chrome::AddTabAt(browser, GURL(), -1, true); |
116 return browser; | 116 return browser; |
117 } | 117 } |
118 | 118 |
119 Browser* BrowserNavigatorTest::CreateEmptyBrowserForApp(Browser::Type type, | 119 Browser* BrowserNavigatorTest::CreateEmptyBrowserForApp(Profile* profile) { |
120 Profile* profile) { | |
121 Browser* browser = new Browser( | 120 Browser* browser = new Browser( |
122 Browser::CreateParams::CreateForApp( | 121 Browser::CreateParams::CreateForApp( |
123 Browser::TYPE_POPUP, "Test", gfx::Rect(), profile, | 122 Browser::TYPE_POPUP, "Test", gfx::Rect(), profile, |
124 chrome::GetActiveDesktop())); | 123 chrome::GetActiveDesktop())); |
125 chrome::AddTabAt(browser, GURL(), -1, true); | 124 chrome::AddTabAt(browser, GURL(), -1, true); |
126 return browser; | 125 return browser; |
127 } | 126 } |
128 | 127 |
129 WebContents* BrowserNavigatorTest::CreateWebContents() { | 128 WebContents* BrowserNavigatorTest::CreateWebContents() { |
130 content::WebContents::CreateParams create_params(browser()->profile()); | 129 content::WebContents::CreateParams create_params(browser()->profile()); |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 // Wait for new popup to to load and gain focus. | 445 // Wait for new popup to to load and gain focus. |
447 ui_test_utils::NavigateToURL(&p); | 446 ui_test_utils::NavigateToURL(&p); |
448 | 447 |
449 // Navigate() should have opened a new, focused popup window. | 448 // Navigate() should have opened a new, focused popup window. |
450 EXPECT_NE(browser(), p.browser); | 449 EXPECT_NE(browser(), p.browser); |
451 #if 0 | 450 #if 0 |
452 // TODO(stevenjb): Enable this test. See: crbug.com/79493 | 451 // TODO(stevenjb): Enable this test. See: crbug.com/79493 |
453 EXPECT_TRUE(p.browser->window()->IsActive()); | 452 EXPECT_TRUE(p.browser->window()->IsActive()); |
454 #endif | 453 #endif |
455 EXPECT_TRUE(p.browser->is_type_popup()); | 454 EXPECT_TRUE(p.browser->is_type_popup()); |
| 455 EXPECT_EQ(Browser::TYPE_POPUP, p.browser->type()); |
456 EXPECT_FALSE(p.browser->is_app()); | 456 EXPECT_FALSE(p.browser->is_app()); |
457 | 457 |
458 // We should have two windows, the browser() provided by the framework and the | 458 // We should have two windows, the browser() provided by the framework and the |
459 // new popup window. | 459 // new popup window. |
460 EXPECT_EQ(2u, chrome::GetTotalBrowserCount()); | 460 EXPECT_EQ(2u, chrome::GetTotalBrowserCount()); |
461 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 461 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
462 EXPECT_EQ(1, p.browser->tab_strip_model()->count()); | 462 EXPECT_EQ(1, p.browser->tab_strip_model()->count()); |
463 } | 463 } |
464 | 464 |
465 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP | 465 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 | 505 |
506 // We should have three windows, the browser() provided by the framework, | 506 // We should have three windows, the browser() provided by the framework, |
507 // the first popup window, and the second popup window. | 507 // the first popup window, and the second popup window. |
508 EXPECT_EQ(3u, chrome::GetTotalBrowserCount()); | 508 EXPECT_EQ(3u, chrome::GetTotalBrowserCount()); |
509 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 509 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
510 EXPECT_EQ(1, p1.browser->tab_strip_model()->count()); | 510 EXPECT_EQ(1, p1.browser->tab_strip_model()->count()); |
511 EXPECT_EQ(1, p2.browser->tab_strip_model()->count()); | 511 EXPECT_EQ(1, p2.browser->tab_strip_model()->count()); |
512 } | 512 } |
513 | 513 |
514 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP | 514 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP |
515 // from an app frame results in a new Browser with TYPE_APP_POPUP. | 515 // from an app frame results in a new Browser with TYPE_POPUP. |
516 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, | 516 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, |
517 Disposition_NewPopupFromAppWindow) { | 517 Disposition_NewPopupFromAppWindow) { |
518 Browser* app_browser = CreateEmptyBrowserForApp(Browser::TYPE_TABBED, | 518 Browser* app_browser = CreateEmptyBrowserForApp(browser()->profile()); |
519 browser()->profile()); | |
520 chrome::NavigateParams p(MakeNavigateParams(app_browser)); | 519 chrome::NavigateParams p(MakeNavigateParams(app_browser)); |
521 p.disposition = NEW_POPUP; | 520 p.disposition = NEW_POPUP; |
522 p.window_bounds = gfx::Rect(0, 0, 200, 200); | 521 p.window_bounds = gfx::Rect(0, 0, 200, 200); |
523 chrome::Navigate(&p); | 522 chrome::Navigate(&p); |
524 | 523 |
525 // Navigate() should have opened a new popup app window. | 524 // Navigate() should have opened a new popup app window. |
526 EXPECT_NE(app_browser, p.browser); | 525 EXPECT_NE(app_browser, p.browser); |
527 EXPECT_NE(browser(), p.browser); | 526 EXPECT_NE(browser(), p.browser); |
528 EXPECT_TRUE(p.browser->is_type_popup()); | 527 EXPECT_TRUE(p.browser->is_type_popup()); |
529 EXPECT_TRUE(p.browser->is_app()); | 528 EXPECT_TRUE(p.browser->is_app()); |
530 | 529 |
531 // We should now have three windows, the app window, the app popup it created, | 530 // We should now have three windows, the app window, the app popup it created, |
532 // and the original browser() provided by the framework. | 531 // and the original browser() provided by the framework. |
533 EXPECT_EQ(3u, chrome::GetTotalBrowserCount()); | 532 EXPECT_EQ(3u, chrome::GetTotalBrowserCount()); |
534 EXPECT_EQ(1, browser()->tab_strip_model()->count()); | 533 EXPECT_EQ(1, browser()->tab_strip_model()->count()); |
535 EXPECT_EQ(1, app_browser->tab_strip_model()->count()); | 534 EXPECT_EQ(1, app_browser->tab_strip_model()->count()); |
536 EXPECT_EQ(1, p.browser->tab_strip_model()->count()); | 535 EXPECT_EQ(1, p.browser->tab_strip_model()->count()); |
537 } | 536 } |
538 | 537 |
539 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP | 538 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP |
540 // from an app popup results in a new Browser also of TYPE_APP_POPUP. | 539 // from an app popup results in a new Browser also of TYPE_POPUP. |
541 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, | 540 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, |
542 Disposition_NewPopupFromAppPopup) { | 541 Disposition_NewPopupFromAppPopup) { |
543 Browser* app_browser = CreateEmptyBrowserForApp(Browser::TYPE_TABBED, | 542 Browser* app_browser = CreateEmptyBrowserForApp(browser()->profile()); |
544 browser()->profile()); | |
545 // Open an app popup. | 543 // Open an app popup. |
546 chrome::NavigateParams p1(MakeNavigateParams(app_browser)); | 544 chrome::NavigateParams p1(MakeNavigateParams(app_browser)); |
547 p1.disposition = NEW_POPUP; | 545 p1.disposition = NEW_POPUP; |
548 p1.window_bounds = gfx::Rect(0, 0, 200, 200); | 546 p1.window_bounds = gfx::Rect(0, 0, 200, 200); |
549 chrome::Navigate(&p1); | 547 chrome::Navigate(&p1); |
550 // Now open another app popup. | 548 // Now open another app popup. |
551 chrome::NavigateParams p2(MakeNavigateParams(p1.browser)); | 549 chrome::NavigateParams p2(MakeNavigateParams(p1.browser)); |
552 p2.disposition = NEW_POPUP; | 550 p2.disposition = NEW_POPUP; |
553 p2.window_bounds = gfx::Rect(0, 0, 200, 200); | 551 p2.window_bounds = gfx::Rect(0, 0, 200, 200); |
554 chrome::Navigate(&p2); | 552 chrome::Navigate(&p2); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 | 585 |
588 // Navigate() should have opened a new, unfocused, popup window. | 586 // Navigate() should have opened a new, unfocused, popup window. |
589 EXPECT_NE(browser(), p.browser); | 587 EXPECT_NE(browser(), p.browser); |
590 EXPECT_EQ(Browser::TYPE_POPUP, p.browser->type()); | 588 EXPECT_EQ(Browser::TYPE_POPUP, p.browser->type()); |
591 #if 0 | 589 #if 0 |
592 // TODO(stevenjb): Enable this test. See: crbug.com/79493 | 590 // TODO(stevenjb): Enable this test. See: crbug.com/79493 |
593 EXPECT_FALSE(p.browser->window()->IsActive()); | 591 EXPECT_FALSE(p.browser->window()->IsActive()); |
594 #endif | 592 #endif |
595 } | 593 } |
596 | 594 |
| 595 // This test verifies that navigating with WindowOpenDisposition = NEW_POPUP |
| 596 // and is_trusted = true results in a new Browser with TYPE_TRUSTED_POPUP. |
| 597 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewPopupTrusted) { |
| 598 chrome::NavigateParams p(MakeNavigateParams()); |
| 599 p.disposition = NEW_POPUP; |
| 600 p.is_trusted = true; |
| 601 p.window_bounds = gfx::Rect(0, 0, 200, 200); |
| 602 // Wait for new popup to to load and gain focus. |
| 603 ui_test_utils::NavigateToURL(&p); |
| 604 |
| 605 // Navigate() should have opened a new popup window of TYPE_TRUSTED_POPUP. |
| 606 EXPECT_NE(browser(), p.browser); |
| 607 EXPECT_TRUE(p.browser->is_type_popup()); |
| 608 EXPECT_EQ(Browser::TYPE_TRUSTED_POPUP, p.browser->type()); |
| 609 } |
| 610 |
| 611 |
597 // This test verifies that navigating with WindowOpenDisposition = NEW_WINDOW | 612 // This test verifies that navigating with WindowOpenDisposition = NEW_WINDOW |
598 // always opens a new window. | 613 // always opens a new window. |
599 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewWindow) { | 614 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, Disposition_NewWindow) { |
600 chrome::NavigateParams p(MakeNavigateParams()); | 615 chrome::NavigateParams p(MakeNavigateParams()); |
601 p.disposition = NEW_WINDOW; | 616 p.disposition = NEW_WINDOW; |
602 chrome::Navigate(&p); | 617 chrome::Navigate(&p); |
603 | 618 |
604 // Navigate() should have opened a new toplevel window. | 619 // Navigate() should have opened a new toplevel window. |
605 EXPECT_NE(browser(), p.browser); | 620 EXPECT_NE(browser(), p.browser); |
606 EXPECT_TRUE(p.browser->is_type_tabbed()); | 621 EXPECT_TRUE(p.browser->is_type_tabbed()); |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1349 // Open a renderer initiated POST request in new foreground tab. | 1364 // Open a renderer initiated POST request in new foreground tab. |
1350 base::string16 expected_title(base::ASCIIToUTF16(kExpectedTitle)); | 1365 base::string16 expected_title(base::ASCIIToUTF16(kExpectedTitle)); |
1351 std::string post_data = kExpectedTitle; | 1366 std::string post_data = kExpectedTitle; |
1352 base::string16 title; | 1367 base::string16 title; |
1353 ASSERT_TRUE(OpenPOSTURLInNewForegroundTabAndGetTitle( | 1368 ASSERT_TRUE(OpenPOSTURLInNewForegroundTabAndGetTitle( |
1354 test_server()->GetURL(kEchoTitleCommand), post_data, false, &title)); | 1369 test_server()->GetURL(kEchoTitleCommand), post_data, false, &title)); |
1355 EXPECT_NE(expected_title, title); | 1370 EXPECT_NE(expected_title, title); |
1356 } | 1371 } |
1357 | 1372 |
1358 } // namespace | 1373 } // namespace |
OLD | NEW |