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

Side by Side Diff: chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc

Issue 1198313003: Fix the browser match rules. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address msw@'s comments. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "ash/scoped_target_root_window.h" 5 #include "ash/scoped_target_root_window.h"
6 #include "ash/screen_util.h" 6 #include "ash/screen_util.h"
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ash/test/test_shell_delegate.h" 9 #include "ash/test/test_shell_delegate.h"
10 #include "ash/wm/window_positioner.h" 10 #include "ash/wm/window_positioner.h"
(...skipping 11 matching lines...) Expand all
22 #include "ui/aura/env.h" 22 #include "ui/aura/env.h"
23 #include "ui/aura/test/test_windows.h" 23 #include "ui/aura/test/test_windows.h"
24 #include "ui/aura/window_event_dispatcher.h" 24 #include "ui/aura/window_event_dispatcher.h"
25 #include "ui/gfx/screen.h" 25 #include "ui/gfx/screen.h"
26 #include "ui/wm/public/activation_client.h" 26 #include "ui/wm/public/activation_client.h"
27 27
28 typedef ash::test::AshTestBase WindowSizerAshTest; 28 typedef ash::test::AshTestBase WindowSizerAshTest;
29 29
30 namespace { 30 namespace {
31 31
32 // A browser window proxy which is able to associate an aura native window with
33 // it.
34 class TestBrowserWindowAura : public TestBrowserWindow {
35 public:
36 // |native_window| will still be owned by the caller after the constructor
37 // was called.
38 explicit TestBrowserWindowAura(aura::Window* native_window)
39 : native_window_(native_window) {
40 }
41 ~TestBrowserWindowAura() override {}
42
43 // TestBrowserWindow overrides:
44 void Show() override {
45 native_window_->Show();
46 Activate();
47 }
48 void Hide() override { native_window_->Hide(); }
49 void Activate() override {
50 aura::client::GetActivationClient(
51 native_window_->GetRootWindow())->ActivateWindow(native_window_.get());
52 }
53 gfx::NativeWindow GetNativeWindow() const override {
54 return native_window_.get();
55 }
56 gfx::Rect GetBounds() const override { return native_window_->bounds(); }
57
58 Browser* browser() { return browser_.get(); }
59
60 void CreateBrowser(const Browser::CreateParams& params) {
61 Browser::CreateParams create_params = params;
62 create_params.window = this;
63 browser_.reset(new Browser(create_params));
64 if (browser_->is_type_tabbed() || browser_->is_app()) {
65 ash::wm::GetWindowState(native_window_.get())->
66 set_window_position_managed(true);
67 }
68 }
69
70 private:
71 scoped_ptr<Browser> browser_;
72 scoped_ptr<aura::Window> native_window_;
73
74 DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowAura);
75 };
76
77 scoped_ptr<TestBrowserWindowAura> CreateTestBrowserWindow( 32 scoped_ptr<TestBrowserWindowAura> CreateTestBrowserWindow(
78 aura::Window* window, 33 aura::Window* window,
79 const gfx::Rect& bounds, 34 const gfx::Rect& bounds,
80 const Browser::CreateParams& params) { 35 const Browser::CreateParams& params) {
81 if (!bounds.IsEmpty()) 36 if (!bounds.IsEmpty())
82 window->SetBounds(bounds); 37 window->SetBounds(bounds);
83 scoped_ptr<TestBrowserWindowAura> browser_window( 38 scoped_ptr<TestBrowserWindowAura> browser_window(
84 new TestBrowserWindowAura(window)); 39 new TestBrowserWindowAura(window));
85 browser_window->CreateBrowser(params); 40 browser_window->CreateBrowser(params);
41 if (browser_window->browser()->is_type_tabbed() ||
42 browser_window->browser()->is_app()) {
43 ash::wm::GetWindowState(browser_window->GetNativeWindow())
44 ->set_window_position_managed(true);
45 }
86 return browser_window.Pass(); 46 return browser_window.Pass();
87 } 47 }
88 48
89 } // namespace 49 } // namespace
90 50
91 // On desktop linux aura, we currently don't use the ash frame, breaking some 51 // On desktop linux aura, we currently don't use the ash frame, breaking some
92 // tests which expect ash sizes: http://crbug.com/303862 52 // tests which expect ash sizes: http://crbug.com/303862
93 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 53 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
94 #define MAYBE_DefaultSizeCase DISABLED_DefaultSizeCase 54 #define MAYBE_DefaultSizeCase DISABLED_DefaultSizeCase
95 #else 55 #else
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 scoped_ptr<TestingProfile> profile(new TestingProfile()); 429 scoped_ptr<TestingProfile> profile(new TestingProfile());
470 // Creating a popup handler here to make sure it does not interfere with the 430 // Creating a popup handler here to make sure it does not interfere with the
471 // existing windows. 431 // existing windows.
472 Browser::CreateParams native_params(profile.get(), 432 Browser::CreateParams native_params(profile.get(),
473 chrome::HOST_DESKTOP_TYPE_ASH); 433 chrome::HOST_DESKTOP_TYPE_ASH);
474 scoped_ptr<Browser> browser( 434 scoped_ptr<Browser> browser(
475 chrome::CreateBrowserWithTestWindowForParams(&native_params)); 435 chrome::CreateBrowserWithTestWindowForParams(&native_params));
476 436
477 // Creating a popup handler here to make sure it does not interfere with the 437 // Creating a popup handler here to make sure it does not interfere with the
478 // existing windows. 438 // existing windows.
479 scoped_ptr<BrowserWindow> browser_window(CreateTestBrowserWindow( 439 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
480 CreateTestWindowInShellWithId(0), 440 CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
481 gfx::Rect(16, 32, 640, 320),
482 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH))); 441 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
483 442
484 // Creating a popup to make sure it does not interfere with the positioning. 443 // Creating a popup to make sure it does not interfere with the positioning.
485 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow( 444 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
486 CreateTestWindowInShellWithId(1), 445 CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 128, 256),
487 gfx::Rect(16, 32, 128, 256),
488 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(), 446 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
489 chrome::HOST_DESKTOP_TYPE_ASH))); 447 chrome::HOST_DESKTOP_TYPE_ASH)));
490 448
491 // Creating a panel to make sure it does not interfere with the positioning. 449 // Creating a panel to make sure it does not interfere with the positioning.
492 scoped_ptr<BrowserWindow> browser_panel(CreateTestBrowserWindow( 450 scoped_ptr<TestBrowserWindowAura> browser_panel(CreateTestBrowserWindow(
493 CreateTestWindowInShellWithId(2), 451 CreateTestWindowInShellWithId(2), gfx::Rect(32, 48, 256, 512),
494 gfx::Rect(32, 48, 256, 512),
495 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(), 452 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
496 chrome::HOST_DESKTOP_TYPE_ASH))); 453 chrome::HOST_DESKTOP_TYPE_ASH)));
497 browser_window->Show(); 454 browser_window->Show();
498 { // Make sure that popups do not get changed. 455 { // Make sure that popups do not get changed.
499 gfx::Rect window_bounds; 456 gfx::Rect window_bounds;
500 GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(), 457 GetWindowBounds(p1600x1200, p1600x1200, gfx::Rect(),
501 gfx::Rect(50, 100, 300, 150), bottom_s1600x1200, 458 gfx::Rect(50, 100, 300, 150), bottom_s1600x1200,
502 PERSISTED, browser_popup->browser(), 459 PERSISTED, browser_popup->browser(),
503 gfx::Rect(), &window_bounds); 460 gfx::Rect(), &window_bounds);
504 EXPECT_EQ("50,100 300x150", window_bounds.ToString()); 461 EXPECT_EQ("50,100 300x150", window_bounds.ToString());
(...skipping 18 matching lines...) Expand all
523 EXPECT_EQ( 480 EXPECT_EQ(
524 gfx::Rect( 481 gfx::Rect(
525 std::max(ash::WindowPositioner::kDesktopBorderSize, 482 std::max(ash::WindowPositioner::kDesktopBorderSize,
526 (1600 - ash::WindowPositioner::kMaximumWindowWidth) / 2), 483 (1600 - ash::WindowPositioner::kMaximumWindowWidth) / 2),
527 ash::WindowPositioner::kDesktopBorderSize, 484 ash::WindowPositioner::kDesktopBorderSize,
528 std::min(ash::WindowPositioner::kMaximumWindowWidth, 485 std::min(ash::WindowPositioner::kMaximumWindowWidth,
529 1600 - 2 * ash::WindowPositioner::kDesktopBorderSize), 486 1600 - 2 * ash::WindowPositioner::kDesktopBorderSize),
530 1200 - ash::WindowPositioner::kDesktopBorderSize).ToString(), 487 1200 - ash::WindowPositioner::kDesktopBorderSize).ToString(),
531 window_bounds.ToString()); 488 window_bounds.ToString());
532 } 489 }
490
491 // Explicitly delete browsers since they're not owned by
msw 2015/07/08 01:14:00 Hmm, should TestBrowserWindowAura own its browsers
xdai1 2015/07/08 21:34:21 This is a little tricky here. Since we modified Cr
492 // TestBrowserWindowAura.
493 delete browser_window->browser();
494 delete browser_popup->browser();
495 delete browser_panel->browser();
533 } 496 }
534 497
535 // On desktop linux aura, we currently don't use the ash frame, breaking some 498 // On desktop linux aura, we currently don't use the ash frame, breaking some
536 // tests which expect ash sizes: http://crbug.com/303862 499 // tests which expect ash sizes: http://crbug.com/303862
537 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 500 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
538 #define MAYBE_PlaceNewBrowserWindowOnEmptyDesktop DISABLED_PlaceNewBrowserWindow OnEmptyDesktop 501 #define MAYBE_PlaceNewBrowserWindowOnEmptyDesktop DISABLED_PlaceNewBrowserWindow OnEmptyDesktop
539 #else 502 #else
540 #define MAYBE_PlaceNewBrowserWindowOnEmptyDesktop PlaceNewBrowserWindowOnEmptyDe sktop 503 #define MAYBE_PlaceNewBrowserWindowOnEmptyDesktop PlaceNewBrowserWindowOnEmptyDe sktop
541 #endif 504 #endif
542 505
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 gfx::Rect primary_bounds = ash::Shell::GetInstance()->GetScreen()-> 590 gfx::Rect primary_bounds = ash::Shell::GetInstance()->GetScreen()->
628 GetPrimaryDisplay().bounds(); 591 GetPrimaryDisplay().bounds();
629 gfx::Rect secondary_bounds = ash::ScreenUtil::GetSecondaryDisplay().bounds(); 592 gfx::Rect secondary_bounds = ash::ScreenUtil::GetSecondaryDisplay().bounds();
630 593
631 ash::Shell::GetInstance()->set_target_root_window( 594 ash::Shell::GetInstance()->set_target_root_window(
632 ash::Shell::GetPrimaryRootWindow()); 595 ash::Shell::GetPrimaryRootWindow());
633 596
634 scoped_ptr<TestingProfile> profile(new TestingProfile()); 597 scoped_ptr<TestingProfile> profile(new TestingProfile());
635 598
636 // Create browser windows that are used as reference. 599 // Create browser windows that are used as reference.
637 scoped_ptr<BrowserWindow> browser_window(CreateTestBrowserWindow( 600 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
638 CreateTestWindowInShellWithId(0), 601 CreateTestWindowInShellWithId(0), gfx::Rect(10, 10, 200, 200),
639 gfx::Rect(10, 10, 200, 200),
640 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH))); 602 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
603 gfx::NativeWindow native_window = browser_window->GetNativeWindow();
641 browser_window->Show(); 604 browser_window->Show();
642 EXPECT_EQ(browser_window->GetNativeWindow()->GetRootWindow(), 605 EXPECT_EQ(native_window->GetRootWindow(), ash::Shell::GetTargetRootWindow());
643 ash::Shell::GetTargetRootWindow());
644 606
645 scoped_ptr<BrowserWindow> another_browser_window(CreateTestBrowserWindow( 607 scoped_ptr<TestBrowserWindowAura> another_browser_window(
646 CreateTestWindowInShellWithId(1), 608 CreateTestBrowserWindow(
647 gfx::Rect(400, 10, 300, 300), 609 CreateTestWindowInShellWithId(1), gfx::Rect(400, 10, 300, 300),
648 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH))); 610 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
611 gfx::NativeWindow another_native_window =
612 another_browser_window->GetNativeWindow();
649 another_browser_window->Show(); 613 another_browser_window->Show();
650 614
651 // Creating a new window to verify the new placement. 615 // Creating a new window to verify the new placement.
652 scoped_ptr<TestBrowserWindowAura> new_browser_window(CreateTestBrowserWindow( 616 scoped_ptr<TestBrowserWindowAura> new_browser_window(CreateTestBrowserWindow(
653 CreateTestWindowInShellWithId(0), 617 CreateTestWindowInShellWithId(0), gfx::Rect(),
654 gfx::Rect(), 618 Browser::CreateParams(profile.get(), chrome::HOST_DESKTOP_TYPE_ASH)));
655 Browser::CreateParams(profile.get(),
656 chrome::HOST_DESKTOP_TYPE_ASH)));
657 619
658 // Make sure the primary root is active. 620 // Make sure the primary root is active.
659 ASSERT_EQ(ash::Shell::GetPrimaryRootWindow(), 621 ASSERT_EQ(ash::Shell::GetPrimaryRootWindow(),
660 ash::Shell::GetTargetRootWindow()); 622 ash::Shell::GetTargetRootWindow());
661 623
662 // First new window should be in the primary. 624 // First new window should be in the primary.
663 { 625 {
664 gfx::Rect window_bounds; 626 gfx::Rect window_bounds;
665 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds, 627 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds,
666 gfx::Rect(), secondary_bounds, 628 gfx::Rect(), secondary_bounds,
667 PERSISTED, new_browser_window->browser(), 629 PERSISTED, new_browser_window->browser(),
668 gfx::Rect(), &window_bounds); 630 gfx::Rect(), &window_bounds);
669 // TODO(oshima): Use exact bounds when the window_sizer_ash is 631 // TODO(oshima): Use exact bounds when the window_sizer_ash is
670 // moved to ash and changed to include the result from 632 // moved to ash and changed to include the result from
671 // RearrangeVisibleWindowOnShow. 633 // RearrangeVisibleWindowOnShow.
672 EXPECT_TRUE(primary_bounds.Contains(window_bounds)); 634 EXPECT_TRUE(primary_bounds.Contains(window_bounds));
673 } 635 }
674 636
675 // Move the window to the right side of the secondary display and create a new 637 // Move the window to the right side of the secondary display and create a new
676 // window. It should be opened then on the secondary display. 638 // window. It should be opened then on the secondary display.
677 { 639 {
678 gfx::Display second_display = ash::Shell::GetScreen()-> 640 gfx::Display second_display = ash::Shell::GetScreen()->
679 GetDisplayNearestPoint(gfx::Point(1600 + 100,10)); 641 GetDisplayNearestPoint(gfx::Point(1600 + 100,10));
680 browser_window->GetNativeWindow()->SetBoundsInScreen( 642 browser_window->GetNativeWindow()->SetBoundsInScreen(
681 gfx::Rect(secondary_bounds.CenterPoint().x() - 100, 10, 200, 200), 643 gfx::Rect(secondary_bounds.CenterPoint().x() - 100, 10, 200, 200),
682 second_display); 644 second_display);
683 browser_window->Activate(); 645 aura::client::GetActivationClient(native_window->GetRootWindow())
646 ->ActivateWindow(native_window);
684 EXPECT_NE(ash::Shell::GetPrimaryRootWindow(), 647 EXPECT_NE(ash::Shell::GetPrimaryRootWindow(),
685 ash::Shell::GetTargetRootWindow()); 648 ash::Shell::GetTargetRootWindow());
686 gfx::Rect window_bounds; 649 gfx::Rect window_bounds;
687 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds, 650 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds,
688 gfx::Rect(), secondary_bounds, 651 gfx::Rect(), secondary_bounds,
689 PERSISTED, new_browser_window->browser(), 652 PERSISTED, new_browser_window->browser(),
690 gfx::Rect(), &window_bounds); 653 gfx::Rect(), &window_bounds);
691 // TODO(oshima): Use exact bounds when the window_sizer_ash is 654 // TODO(oshima): Use exact bounds when the window_sizer_ash is
692 // moved to ash and changed to include the result from 655 // moved to ash and changed to include the result from
693 // RearrangeVisibleWindowOnShow. 656 // RearrangeVisibleWindowOnShow.
694 EXPECT_TRUE(secondary_bounds.Contains(window_bounds)); 657 EXPECT_TRUE(secondary_bounds.Contains(window_bounds));
695 } 658 }
696 659
697 // Activate another window in the primary display and create a new window. 660 // Activate another window in the primary display and create a new window.
698 // It should be created in the primary display. 661 // It should be created in the primary display.
699 { 662 {
700 another_browser_window->Activate(); 663 aura::client::GetActivationClient(another_native_window->GetRootWindow())
664 ->ActivateWindow(another_native_window);
701 EXPECT_EQ(ash::Shell::GetPrimaryRootWindow(), 665 EXPECT_EQ(ash::Shell::GetPrimaryRootWindow(),
702 ash::Shell::GetTargetRootWindow()); 666 ash::Shell::GetTargetRootWindow());
703 667
704 gfx::Rect window_bounds; 668 gfx::Rect window_bounds;
705 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds, 669 GetWindowBounds(p1600x1200, p1600x1200, secondary_bounds,
706 gfx::Rect(), secondary_bounds, 670 gfx::Rect(), secondary_bounds,
707 PERSISTED, new_browser_window->browser(), 671 PERSISTED, new_browser_window->browser(),
708 gfx::Rect(), &window_bounds); 672 gfx::Rect(), &window_bounds);
709 // TODO(oshima): Use exact bounds when the window_sizer_ash is 673 // TODO(oshima): Use exact bounds when the window_sizer_ash is
710 // moved to ash and changed to include the result from 674 // moved to ash and changed to include the result from
711 // RearrangeVisibleWindowOnShow. 675 // RearrangeVisibleWindowOnShow.
712 EXPECT_TRUE(primary_bounds.Contains(window_bounds)); 676 EXPECT_TRUE(primary_bounds.Contains(window_bounds));
713 } 677 }
678
679 // Explicitly delete browsers.
680 delete browser_window->browser();
681 delete another_browser_window->browser();
682 delete new_browser_window->browser();
714 } 683 }
715 684
716 // On desktop linux aura, we currently don't use the ash frame, breaking some 685 // On desktop linux aura, we currently don't use the ash frame, breaking some
717 // tests which expect ash sizes: http://crbug.com/303862 686 // tests which expect ash sizes: http://crbug.com/303862
718 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 687 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
719 #define MAYBE_TestShowState DISABLED_TestShowState 688 #define MAYBE_TestShowState DISABLED_TestShowState
720 #else 689 #else
721 #define MAYBE_TestShowState TestShowState 690 #define MAYBE_TestShowState TestShowState
722 #endif 691 #endif
723 692
724 // Test that the show state is properly returned for non default cases. 693 // Test that the show state is properly returned for non default cases.
725 TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { 694 TEST_F(WindowSizerAshTest, MAYBE_TestShowState) {
726 scoped_ptr<TestingProfile> profile(new TestingProfile()); 695 scoped_ptr<TestingProfile> profile(new TestingProfile());
727 696
728 // Creating a browser & window to play with. 697 // Creating a browser & window to play with.
729 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow( 698 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
730 CreateTestWindowInShellWithId(0), 699 CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
731 gfx::Rect(16, 32, 640, 320),
732 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(), 700 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
733 chrome::HOST_DESKTOP_TYPE_ASH))); 701 chrome::HOST_DESKTOP_TYPE_ASH)));
734 702
735 // Create also a popup browser since that behaves different. 703 // Create also a popup browser since that behaves different.
736 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow( 704 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
737 CreateTestWindowInShellWithId(1), 705 CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 640, 320),
738 gfx::Rect(16, 32, 640, 320),
739 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(), 706 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
740 chrome::HOST_DESKTOP_TYPE_ASH))); 707 chrome::HOST_DESKTOP_TYPE_ASH)));
741 708
742 // Tabbed windows should retrieve the saved window state - since there is a 709 // Tabbed windows should retrieve the saved window state - since there is a
743 // top window. 710 // top window.
744 EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, 711 EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED,
745 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED, 712 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED,
746 ui::SHOW_STATE_NORMAL, 713 ui::SHOW_STATE_NORMAL,
747 BOTH, 714 BOTH,
748 browser_window->browser(), 715 browser_window->browser(),
(...skipping 29 matching lines...) Expand all
778 ui::SHOW_STATE_NORMAL, 745 ui::SHOW_STATE_NORMAL,
779 BOTH, 746 BOTH,
780 browser_popup->browser(), 747 browser_popup->browser(),
781 p1600x1200, 748 p1600x1200,
782 p1600x1200)); 749 p1600x1200));
783 750
784 // Now create a top level window and check again for both. Only the tabbed 751 // Now create a top level window and check again for both. Only the tabbed
785 // window should follow the top level window's state. 752 // window should follow the top level window's state.
786 // Creating a browser & window to play with. 753 // Creating a browser & window to play with.
787 scoped_ptr<TestBrowserWindowAura> browser_window2(CreateTestBrowserWindow( 754 scoped_ptr<TestBrowserWindowAura> browser_window2(CreateTestBrowserWindow(
788 CreateTestWindowInShellWithId(3), 755 CreateTestWindowInShellWithId(3), gfx::Rect(16, 32, 640, 320),
789 gfx::Rect(16, 32, 640, 320),
790 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(), 756 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
791 chrome::HOST_DESKTOP_TYPE_ASH))); 757 chrome::HOST_DESKTOP_TYPE_ASH)));
792 758
793 // A tabbed window should now take the top level window state. 759 // A tabbed window should now take the top level window state.
794 EXPECT_EQ(ui::SHOW_STATE_DEFAULT, 760 EXPECT_EQ(ui::SHOW_STATE_DEFAULT,
795 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED, 761 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED,
796 ui::SHOW_STATE_DEFAULT, 762 ui::SHOW_STATE_DEFAULT,
797 BOTH, 763 BOTH,
798 browser_window->browser(), 764 browser_window->browser(),
799 p1600x1200, 765 p1600x1200,
(...skipping 22 matching lines...) Expand all
822 browser_window->Hide(); 788 browser_window->Hide();
823 EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, 789 EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED,
824 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED, 790 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED,
825 ui::SHOW_STATE_DEFAULT, 791 ui::SHOW_STATE_DEFAULT,
826 BOTH, 792 BOTH,
827 browser_window2->browser(), 793 browser_window2->browser(),
828 tiny_screen, 794 tiny_screen,
829 tiny_screen)); 795 tiny_screen));
830 796
831 } 797 }
798
799 // Explictly delete browsers.
800 delete browser_window->browser();
801 delete browser_popup->browser();
802 delete browser_window2->browser();
832 } 803 }
833 804
834 // Test that the default show state override behavior is properly handled. 805 // Test that the default show state override behavior is properly handled.
835 TEST_F(WindowSizerAshTest, TestShowStateDefaults) { 806 TEST_F(WindowSizerAshTest, TestShowStateDefaults) {
836 // Creating a browser & window to play with. 807 // Creating a browser & window to play with.
837 scoped_ptr<TestingProfile> profile(new TestingProfile()); 808 scoped_ptr<TestingProfile> profile(new TestingProfile());
838 809
839 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow( 810 scoped_ptr<TestBrowserWindowAura> browser_window(CreateTestBrowserWindow(
840 CreateTestWindowInShellWithId(0), 811 CreateTestWindowInShellWithId(0), gfx::Rect(16, 32, 640, 320),
841 gfx::Rect(16, 32, 640, 320),
842 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(), 812 Browser::CreateParams(Browser::TYPE_TABBED, profile.get(),
843 chrome::HOST_DESKTOP_TYPE_ASH))); 813 chrome::HOST_DESKTOP_TYPE_ASH)));
844 814
845 // Create also a popup browser since that behaves slightly different for 815 // Create also a popup browser since that behaves slightly different for
846 // defaults. 816 // defaults.
847 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow( 817 scoped_ptr<TestBrowserWindowAura> browser_popup(CreateTestBrowserWindow(
848 CreateTestWindowInShellWithId(1), 818 CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 128, 256),
849 gfx::Rect(16, 32, 128, 256),
850 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(), 819 Browser::CreateParams(Browser::TYPE_POPUP, profile.get(),
851 chrome::HOST_DESKTOP_TYPE_ASH))); 820 chrome::HOST_DESKTOP_TYPE_ASH)));
852 821
853 // Check that a browser creation state always get used if not given as 822 // Check that a browser creation state always get used if not given as
854 // SHOW_STATE_DEFAULT. On Windows ASH it should be SHOW_STATE_MAXIMIZED. 823 // SHOW_STATE_DEFAULT. On Windows ASH it should be SHOW_STATE_MAXIMIZED.
855 ui::WindowShowState window_show_state = 824 ui::WindowShowState window_show_state =
856 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED, 825 GetWindowShowState(ui::SHOW_STATE_MAXIMIZED,
857 ui::SHOW_STATE_MAXIMIZED, 826 ui::SHOW_STATE_MAXIMIZED,
858 DEFAULT, 827 DEFAULT,
859 browser_window->browser(), 828 browser_window->browser(),
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 p1600x1200, 869 p1600x1200,
901 p1600x1200), ui::SHOW_STATE_MAXIMIZED); 870 p1600x1200), ui::SHOW_STATE_MAXIMIZED);
902 871
903 // The popup should favor the initial show state over the command line. 872 // The popup should favor the initial show state over the command line.
904 EXPECT_EQ(GetWindowShowState(ui::SHOW_STATE_NORMAL, 873 EXPECT_EQ(GetWindowShowState(ui::SHOW_STATE_NORMAL,
905 ui::SHOW_STATE_NORMAL, 874 ui::SHOW_STATE_NORMAL,
906 BOTH, 875 BOTH,
907 browser_popup->browser(), 876 browser_popup->browser(),
908 p1600x1200, 877 p1600x1200,
909 p1600x1200), ui::SHOW_STATE_NORMAL); 878 p1600x1200), ui::SHOW_STATE_NORMAL);
879
880 // Explicitly delete browsers.
881 delete browser_window->browser();
882 delete browser_popup->browser();
910 } 883 }
911 884
912 TEST_F(WindowSizerAshTest, DefaultStateBecomesMaximized) { 885 TEST_F(WindowSizerAshTest, DefaultStateBecomesMaximized) {
913 // Create a browser to pass into the GetWindowBounds function. 886 // Create a browser to pass into the GetWindowBounds function.
914 scoped_ptr<TestingProfile> profile(new TestingProfile()); 887 scoped_ptr<TestingProfile> profile(new TestingProfile());
915 Browser::CreateParams native_params(profile.get(), 888 Browser::CreateParams native_params(profile.get(),
916 chrome::HOST_DESKTOP_TYPE_ASH); 889 chrome::HOST_DESKTOP_TYPE_ASH);
917 scoped_ptr<Browser> browser( 890 scoped_ptr<Browser> browser(
918 chrome::CreateBrowserWithTestWindowForParams(&native_params)); 891 chrome::CreateBrowserWithTestWindowForParams(&native_params));
919 892
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 } 953 }
981 } 954 }
982 955
983 TEST_F(WindowSizerAshTest, TrustedPopupBehavior) { 956 TEST_F(WindowSizerAshTest, TrustedPopupBehavior) {
984 scoped_ptr<TestingProfile> profile(new TestingProfile()); 957 scoped_ptr<TestingProfile> profile(new TestingProfile());
985 Browser::CreateParams trusted_popup_create_params( 958 Browser::CreateParams trusted_popup_create_params(
986 Browser::TYPE_POPUP, profile.get(), chrome::HOST_DESKTOP_TYPE_ASH); 959 Browser::TYPE_POPUP, profile.get(), chrome::HOST_DESKTOP_TYPE_ASH);
987 trusted_popup_create_params.trusted_source = true; 960 trusted_popup_create_params.trusted_source = true;
988 961
989 scoped_ptr<TestBrowserWindowAura> trusted_popup(CreateTestBrowserWindow( 962 scoped_ptr<TestBrowserWindowAura> trusted_popup(CreateTestBrowserWindow(
990 CreateTestWindowInShellWithId(1), 963 CreateTestWindowInShellWithId(1), gfx::Rect(16, 32, 640, 320),
991 gfx::Rect(16, 32, 640, 320),
992 trusted_popup_create_params)); 964 trusted_popup_create_params));
993 // Trusted popup windows should follow the saved show state and ignore the 965 // Trusted popup windows should follow the saved show state and ignore the
994 // last show state. 966 // last show state.
995 EXPECT_EQ(ui::SHOW_STATE_DEFAULT, 967 EXPECT_EQ(ui::SHOW_STATE_DEFAULT,
996 GetWindowShowState(ui::SHOW_STATE_DEFAULT, 968 GetWindowShowState(ui::SHOW_STATE_DEFAULT,
997 ui::SHOW_STATE_NORMAL, 969 ui::SHOW_STATE_NORMAL,
998 BOTH, 970 BOTH,
999 trusted_popup->browser(), 971 trusted_popup->browser(),
1000 p1280x1024, 972 p1280x1024,
1001 p1600x1200)); 973 p1600x1200));
1002 // A popup that is sized to occupy the whole work area has default state. 974 // A popup that is sized to occupy the whole work area has default state.
1003 EXPECT_EQ(ui::SHOW_STATE_DEFAULT, 975 EXPECT_EQ(ui::SHOW_STATE_DEFAULT,
1004 GetWindowShowState(ui::SHOW_STATE_DEFAULT, 976 GetWindowShowState(ui::SHOW_STATE_DEFAULT,
1005 ui::SHOW_STATE_NORMAL, 977 ui::SHOW_STATE_NORMAL,
1006 BOTH, 978 BOTH,
1007 trusted_popup->browser(), 979 trusted_popup->browser(),
1008 p1600x1200, 980 p1600x1200,
1009 p1600x1200)); 981 p1600x1200));
982
983 // Explicitly delete browser.
984 delete trusted_popup->browser();
1010 } 985 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698