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: ash/display/display_controller_unittest.cc

Issue 115113006: Rename Launcher to Shelf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more fixes Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « ash/dip_unittest.cc ('k') | ash/display/root_window_transformers_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/display/display_controller.h" 5 #include "ash/display/display_controller.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/display/display_info.h" 8 #include "ash/display/display_info.h"
9 #include "ash/display/display_layout_store.h" 9 #include "ash/display/display_layout_store.h"
10 #include "ash/display/display_manager.h" 10 #include "ash/display/display_manager.h"
11 #include "ash/launcher/launcher.h"
12 #include "ash/screen_ash.h" 11 #include "ash/screen_ash.h"
12 #include "ash/shelf/shelf.h"
13 #include "ash/shelf/shelf_widget.h" 13 #include "ash/shelf/shelf_widget.h"
14 #include "ash/shell.h" 14 #include "ash/shell.h"
15 #include "ash/test/ash_test_base.h" 15 #include "ash/test/ash_test_base.h"
16 #include "ash/test/cursor_manager_test_api.h" 16 #include "ash/test/cursor_manager_test_api.h"
17 #include "ash/test/display_manager_test_api.h" 17 #include "ash/test/display_manager_test_api.h"
18 #include "ash/wm/window_state.h" 18 #include "ash/wm/window_state.h"
19 #include "base/command_line.h" 19 #include "base/command_line.h"
20 #include "ui/aura/client/activation_change_observer.h" 20 #include "ui/aura/client/activation_change_observer.h"
21 #include "ui/aura/client/activation_client.h" 21 #include "ui/aura/client/activation_client.h"
22 #include "ui/aura/client/focus_change_observer.h" 22 #include "ui/aura/client/focus_change_observer.h"
23 #include "ui/aura/client/focus_client.h" 23 #include "ui/aura/client/focus_client.h"
24 #include "ui/aura/env.h" 24 #include "ui/aura/env.h"
25 #include "ui/aura/root_window.h" 25 #include "ui/aura/root_window.h"
26 #include "ui/aura/test/event_generator.h" 26 #include "ui/aura/test/event_generator.h"
27 #include "ui/aura/window_tracker.h" 27 #include "ui/aura/window_tracker.h"
28 #include "ui/events/event_handler.h" 28 #include "ui/events/event_handler.h"
29 #include "ui/gfx/display.h" 29 #include "ui/gfx/display.h"
30 #include "ui/gfx/screen.h" 30 #include "ui/gfx/screen.h"
31 #include "ui/views/widget/widget.h" 31 #include "ui/views/widget/widget.h"
32 32
33 #if defined(USE_X11) 33 #if defined(USE_X11)
34 #include <X11/Xlib.h>
34 #include "ui/gfx/x/x11_types.h" 35 #include "ui/gfx/x/x11_types.h"
35 #include <X11/Xlib.h>
36 #undef RootWindow 36 #undef RootWindow
37 #endif 37 #endif
38 38
39 namespace ash { 39 namespace ash {
40 namespace { 40 namespace {
41 41
42 const char kDesktopBackgroundView[] = "DesktopBackgroundView"; 42 const char kDesktopBackgroundView[] = "DesktopBackgroundView";
43 43
44 template<typename T> 44 template<typename T>
45 class Resetter { 45 class Resetter {
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 608
609 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); 609 DisplayLayout display_layout(DisplayLayout::RIGHT, 50);
610 display_manager->SetLayoutForCurrentDisplays(display_layout); 610 display_manager->SetLayoutForCurrentDisplays(display_layout);
611 611
612 EXPECT_NE(primary_display.id(), secondary_display.id()); 612 EXPECT_NE(primary_display.id(), secondary_display.id());
613 aura::Window* primary_root = 613 aura::Window* primary_root =
614 display_controller->GetRootWindowForDisplayId(primary_display.id()); 614 display_controller->GetRootWindowForDisplayId(primary_display.id());
615 aura::Window* secondary_root = 615 aura::Window* secondary_root =
616 display_controller->GetRootWindowForDisplayId(secondary_display.id()); 616 display_controller->GetRootWindowForDisplayId(secondary_display.id());
617 EXPECT_NE(primary_root, secondary_root); 617 EXPECT_NE(primary_root, secondary_root);
618 aura::Window* launcher_window = 618 aura::Window* shelf_window =
619 Launcher::ForPrimaryDisplay()->shelf_widget()->GetNativeView(); 619 Shelf::ForPrimaryDisplay()->shelf_widget()->GetNativeView();
620 EXPECT_TRUE(primary_root->Contains(launcher_window)); 620 EXPECT_TRUE(primary_root->Contains(shelf_window));
621 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 621 EXPECT_FALSE(secondary_root->Contains(shelf_window));
622 EXPECT_EQ(primary_display.id(), 622 EXPECT_EQ(primary_display.id(),
623 Shell::GetScreen()->GetDisplayNearestPoint( 623 Shell::GetScreen()->GetDisplayNearestPoint(
624 gfx::Point(-100, -100)).id()); 624 gfx::Point(-100, -100)).id());
625 EXPECT_EQ(primary_display.id(), 625 EXPECT_EQ(primary_display.id(),
626 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 626 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
627 627
628 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString()); 628 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString());
629 EXPECT_EQ("0,0 200x153", primary_display.work_area().ToString()); 629 EXPECT_EQ("0,0 200x153", primary_display.work_area().ToString());
630 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString()); 630 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString());
631 EXPECT_EQ("200,0 300x253", secondary_display.work_area().ToString()); 631 EXPECT_EQ("200,0 300x253", secondary_display.work_area().ToString());
(...skipping 14 matching lines...) Expand all
646 gfx::Point(-100, -100)).id()); 646 gfx::Point(-100, -100)).id());
647 EXPECT_EQ(secondary_display.id(), 647 EXPECT_EQ(secondary_display.id(),
648 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 648 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
649 649
650 EXPECT_EQ( 650 EXPECT_EQ(
651 primary_root, 651 primary_root,
652 display_controller->GetRootWindowForDisplayId(secondary_display.id())); 652 display_controller->GetRootWindowForDisplayId(secondary_display.id()));
653 EXPECT_EQ( 653 EXPECT_EQ(
654 secondary_root, 654 secondary_root,
655 display_controller->GetRootWindowForDisplayId(primary_display.id())); 655 display_controller->GetRootWindowForDisplayId(primary_display.id()));
656 EXPECT_TRUE(primary_root->Contains(launcher_window)); 656 EXPECT_TRUE(primary_root->Contains(shelf_window));
657 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 657 EXPECT_FALSE(secondary_root->Contains(shelf_window));
658 658
659 // Test if the bounds are correctly swapped. 659 // Test if the bounds are correctly swapped.
660 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay(); 660 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay();
661 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay(); 661 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay();
662 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString()); 662 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString());
663 EXPECT_EQ("0,0 300x253", swapped_primary.work_area().ToString()); 663 EXPECT_EQ("0,0 300x253", swapped_primary.work_area().ToString());
664 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString()); 664 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString());
665 665
666 EXPECT_EQ("-200,-50 200x153", swapped_secondary.work_area().ToString()); 666 EXPECT_EQ("-200,-50 200x153", swapped_secondary.work_area().ToString());
667 667
668 aura::WindowTracker tracker; 668 aura::WindowTracker tracker;
669 tracker.Add(primary_root); 669 tracker.Add(primary_root);
670 tracker.Add(secondary_root); 670 tracker.Add(secondary_root);
671 671
672 // Deleting 2nd display should move the primary to original primary display. 672 // Deleting 2nd display should move the primary to original primary display.
673 UpdateDisplay("200x200"); 673 UpdateDisplay("200x200");
674 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. 674 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task.
675 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays()); 675 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays());
676 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id()); 676 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id());
677 EXPECT_EQ(primary_display.id(), 677 EXPECT_EQ(primary_display.id(),
678 Shell::GetScreen()->GetDisplayNearestPoint( 678 Shell::GetScreen()->GetDisplayNearestPoint(
679 gfx::Point(-100, -100)).id()); 679 gfx::Point(-100, -100)).id());
680 EXPECT_EQ(primary_display.id(), 680 EXPECT_EQ(primary_display.id(),
681 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 681 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
682 EXPECT_TRUE(tracker.Contains(primary_root)); 682 EXPECT_TRUE(tracker.Contains(primary_root));
683 EXPECT_FALSE(tracker.Contains(secondary_root)); 683 EXPECT_FALSE(tracker.Contains(secondary_root));
684 EXPECT_TRUE(primary_root->Contains(launcher_window)); 684 EXPECT_TRUE(primary_root->Contains(shelf_window));
685 } 685 }
686 686
687 TEST_F(DisplayControllerTest, SwapPrimaryForLegacyShelfLayout) { 687 TEST_F(DisplayControllerTest, SwapPrimaryForLegacyShelfLayout) {
688 if (!SupportsMultipleDisplays()) 688 if (!SupportsMultipleDisplays())
689 return; 689 return;
690 690
691 CommandLine::ForCurrentProcess()->AppendSwitch( 691 CommandLine::ForCurrentProcess()->AppendSwitch(
692 ash::switches::kAshDisableAlternateShelfLayout); 692 ash::switches::kAshDisableAlternateShelfLayout);
693 693
694 DisplayController* display_controller = 694 DisplayController* display_controller =
695 Shell::GetInstance()->display_controller(); 695 Shell::GetInstance()->display_controller();
696 internal::DisplayManager* display_manager = 696 internal::DisplayManager* display_manager =
697 Shell::GetInstance()->display_manager(); 697 Shell::GetInstance()->display_manager();
698 698
699 UpdateDisplay("200x200,300x300"); 699 UpdateDisplay("200x200,300x300");
700 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); 700 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay();
701 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); 701 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay();
702 702
703 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); 703 DisplayLayout display_layout(DisplayLayout::RIGHT, 50);
704 display_manager->SetLayoutForCurrentDisplays(display_layout); 704 display_manager->SetLayoutForCurrentDisplays(display_layout);
705 705
706 EXPECT_NE(primary_display.id(), secondary_display.id()); 706 EXPECT_NE(primary_display.id(), secondary_display.id());
707 aura::Window* primary_root = 707 aura::Window* primary_root =
708 display_controller->GetRootWindowForDisplayId(primary_display.id()); 708 display_controller->GetRootWindowForDisplayId(primary_display.id());
709 aura::Window* secondary_root = 709 aura::Window* secondary_root =
710 display_controller->GetRootWindowForDisplayId(secondary_display.id()); 710 display_controller->GetRootWindowForDisplayId(secondary_display.id());
711 EXPECT_NE(primary_root, secondary_root); 711 EXPECT_NE(primary_root, secondary_root);
712 aura::Window* launcher_window = 712 aura::Window* shelf_window =
713 Launcher::ForPrimaryDisplay()->shelf_widget()->GetNativeView(); 713 Shelf::ForPrimaryDisplay()->shelf_widget()->GetNativeView();
714 EXPECT_TRUE(primary_root->Contains(launcher_window)); 714 EXPECT_TRUE(primary_root->Contains(shelf_window));
715 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 715 EXPECT_FALSE(secondary_root->Contains(shelf_window));
716 EXPECT_EQ(primary_display.id(), 716 EXPECT_EQ(primary_display.id(),
717 Shell::GetScreen()->GetDisplayNearestPoint( 717 Shell::GetScreen()->GetDisplayNearestPoint(
718 gfx::Point(-100, -100)).id()); 718 gfx::Point(-100, -100)).id());
719 EXPECT_EQ(primary_display.id(), 719 EXPECT_EQ(primary_display.id(),
720 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 720 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
721 721
722 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString()); 722 EXPECT_EQ("0,0 200x200", primary_display.bounds().ToString());
723 EXPECT_EQ("0,0 200x152", primary_display.work_area().ToString()); 723 EXPECT_EQ("0,0 200x152", primary_display.work_area().ToString());
724 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString()); 724 EXPECT_EQ("200,0 300x300", secondary_display.bounds().ToString());
725 EXPECT_EQ("200,0 300x252", secondary_display.work_area().ToString()); 725 EXPECT_EQ("200,0 300x252", secondary_display.work_area().ToString());
(...skipping 14 matching lines...) Expand all
740 gfx::Point(-100, -100)).id()); 740 gfx::Point(-100, -100)).id());
741 EXPECT_EQ(secondary_display.id(), 741 EXPECT_EQ(secondary_display.id(),
742 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 742 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
743 743
744 EXPECT_EQ( 744 EXPECT_EQ(
745 primary_root, 745 primary_root,
746 display_controller->GetRootWindowForDisplayId(secondary_display.id())); 746 display_controller->GetRootWindowForDisplayId(secondary_display.id()));
747 EXPECT_EQ( 747 EXPECT_EQ(
748 secondary_root, 748 secondary_root,
749 display_controller->GetRootWindowForDisplayId(primary_display.id())); 749 display_controller->GetRootWindowForDisplayId(primary_display.id()));
750 EXPECT_TRUE(primary_root->Contains(launcher_window)); 750 EXPECT_TRUE(primary_root->Contains(shelf_window));
751 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 751 EXPECT_FALSE(secondary_root->Contains(shelf_window));
752 752
753 // Test if the bounds are correctly swapped. 753 // Test if the bounds are correctly swapped.
754 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay(); 754 gfx::Display swapped_primary = Shell::GetScreen()->GetPrimaryDisplay();
755 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay(); 755 gfx::Display swapped_secondary = ScreenAsh::GetSecondaryDisplay();
756 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString()); 756 EXPECT_EQ("0,0 300x300", swapped_primary.bounds().ToString());
757 EXPECT_EQ("0,0 300x252", swapped_primary.work_area().ToString()); 757 EXPECT_EQ("0,0 300x252", swapped_primary.work_area().ToString());
758 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString()); 758 EXPECT_EQ("-200,-50 200x200", swapped_secondary.bounds().ToString());
759 759
760 EXPECT_EQ("-200,-50 200x152", swapped_secondary.work_area().ToString()); 760 EXPECT_EQ("-200,-50 200x152", swapped_secondary.work_area().ToString());
761 761
762 aura::WindowTracker tracker; 762 aura::WindowTracker tracker;
763 tracker.Add(primary_root); 763 tracker.Add(primary_root);
764 tracker.Add(secondary_root); 764 tracker.Add(secondary_root);
765 765
766 // Deleting 2nd display should move the primary to original primary display. 766 // Deleting 2nd display should move the primary to original primary display.
767 UpdateDisplay("200x200"); 767 UpdateDisplay("200x200");
768 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. 768 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task.
769 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays()); 769 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays());
770 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id()); 770 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id());
771 EXPECT_EQ(primary_display.id(), 771 EXPECT_EQ(primary_display.id(),
772 Shell::GetScreen()->GetDisplayNearestPoint( 772 Shell::GetScreen()->GetDisplayNearestPoint(
773 gfx::Point(-100, -100)).id()); 773 gfx::Point(-100, -100)).id());
774 EXPECT_EQ(primary_display.id(), 774 EXPECT_EQ(primary_display.id(),
775 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 775 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
776 EXPECT_TRUE(tracker.Contains(primary_root)); 776 EXPECT_TRUE(tracker.Contains(primary_root));
777 EXPECT_FALSE(tracker.Contains(secondary_root)); 777 EXPECT_FALSE(tracker.Contains(secondary_root));
778 EXPECT_TRUE(primary_root->Contains(launcher_window)); 778 EXPECT_TRUE(primary_root->Contains(shelf_window));
779 } 779 }
780 780
781 TEST_F(DisplayControllerTest, SwapPrimaryById) { 781 TEST_F(DisplayControllerTest, SwapPrimaryById) {
782 if (!SupportsMultipleDisplays()) 782 if (!SupportsMultipleDisplays())
783 return; 783 return;
784 784
785 DisplayController* display_controller = 785 DisplayController* display_controller =
786 Shell::GetInstance()->display_controller(); 786 Shell::GetInstance()->display_controller();
787 internal::DisplayManager* display_manager = 787 internal::DisplayManager* display_manager =
788 Shell::GetInstance()->display_manager(); 788 Shell::GetInstance()->display_manager();
789 789
790 UpdateDisplay("200x200,300x300"); 790 UpdateDisplay("200x200,300x300");
791 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay(); 791 gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay();
792 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay(); 792 gfx::Display secondary_display = ScreenAsh::GetSecondaryDisplay();
793 793
794 DisplayLayout display_layout(DisplayLayout::RIGHT, 50); 794 DisplayLayout display_layout(DisplayLayout::RIGHT, 50);
795 display_manager->SetLayoutForCurrentDisplays(display_layout); 795 display_manager->SetLayoutForCurrentDisplays(display_layout);
796 796
797 EXPECT_NE(primary_display.id(), secondary_display.id()); 797 EXPECT_NE(primary_display.id(), secondary_display.id());
798 aura::Window* primary_root = 798 aura::Window* primary_root =
799 display_controller->GetRootWindowForDisplayId(primary_display.id()); 799 display_controller->GetRootWindowForDisplayId(primary_display.id());
800 aura::Window* secondary_root = 800 aura::Window* secondary_root =
801 display_controller->GetRootWindowForDisplayId(secondary_display.id()); 801 display_controller->GetRootWindowForDisplayId(secondary_display.id());
802 aura::Window* launcher_window = 802 aura::Window* shelf_window =
803 Launcher::ForPrimaryDisplay()->shelf_widget()->GetNativeView(); 803 Shelf::ForPrimaryDisplay()->shelf_widget()->GetNativeView();
804 EXPECT_TRUE(primary_root->Contains(launcher_window)); 804 EXPECT_TRUE(primary_root->Contains(shelf_window));
805 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 805 EXPECT_FALSE(secondary_root->Contains(shelf_window));
806 EXPECT_NE(primary_root, secondary_root); 806 EXPECT_NE(primary_root, secondary_root);
807 EXPECT_EQ(primary_display.id(), 807 EXPECT_EQ(primary_display.id(),
808 Shell::GetScreen()->GetDisplayNearestPoint( 808 Shell::GetScreen()->GetDisplayNearestPoint(
809 gfx::Point(-100, -100)).id()); 809 gfx::Point(-100, -100)).id());
810 EXPECT_EQ(primary_display.id(), 810 EXPECT_EQ(primary_display.id(),
811 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 811 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
812 812
813 // Switch primary and secondary by display ID. 813 // Switch primary and secondary by display ID.
814 TestObserver observer; 814 TestObserver observer;
815 display_controller->SetPrimaryDisplayId(secondary_display.id()); 815 display_controller->SetPrimaryDisplayId(secondary_display.id());
816 EXPECT_EQ(secondary_display.id(), 816 EXPECT_EQ(secondary_display.id(),
817 Shell::GetScreen()->GetPrimaryDisplay().id()); 817 Shell::GetScreen()->GetPrimaryDisplay().id());
818 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); 818 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id());
819 EXPECT_LT(0, observer.CountAndReset()); 819 EXPECT_LT(0, observer.CountAndReset());
820 820
821 EXPECT_EQ( 821 EXPECT_EQ(
822 primary_root, 822 primary_root,
823 display_controller->GetRootWindowForDisplayId(secondary_display.id())); 823 display_controller->GetRootWindowForDisplayId(secondary_display.id()));
824 EXPECT_EQ( 824 EXPECT_EQ(
825 secondary_root, 825 secondary_root,
826 display_controller->GetRootWindowForDisplayId(primary_display.id())); 826 display_controller->GetRootWindowForDisplayId(primary_display.id()));
827 EXPECT_TRUE(primary_root->Contains(launcher_window)); 827 EXPECT_TRUE(primary_root->Contains(shelf_window));
828 EXPECT_FALSE(secondary_root->Contains(launcher_window)); 828 EXPECT_FALSE(secondary_root->Contains(shelf_window));
829 829
830 const DisplayLayout& inverted_layout = 830 const DisplayLayout& inverted_layout =
831 display_manager->GetCurrentDisplayLayout(); 831 display_manager->GetCurrentDisplayLayout();
832 832
833 EXPECT_EQ("left, -50", inverted_layout.ToString()); 833 EXPECT_EQ("left, -50", inverted_layout.ToString());
834 834
835 // Calling the same ID don't do anything. 835 // Calling the same ID don't do anything.
836 display_controller->SetPrimaryDisplayId(secondary_display.id()); 836 display_controller->SetPrimaryDisplayId(secondary_display.id());
837 EXPECT_EQ(0, observer.CountAndReset()); 837 EXPECT_EQ(0, observer.CountAndReset());
838 838
839 aura::WindowTracker tracker; 839 aura::WindowTracker tracker;
840 tracker.Add(primary_root); 840 tracker.Add(primary_root);
841 tracker.Add(secondary_root); 841 tracker.Add(secondary_root);
842 842
843 // Deleting 2nd display should move the primary to original primary display. 843 // Deleting 2nd display should move the primary to original primary display.
844 UpdateDisplay("200x200"); 844 UpdateDisplay("200x200");
845 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task. 845 RunAllPendingInMessageLoop(); // RootWindow is deleted in a posted task.
846 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays()); 846 EXPECT_EQ(1, Shell::GetScreen()->GetNumDisplays());
847 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id()); 847 EXPECT_EQ(primary_display.id(), Shell::GetScreen()->GetPrimaryDisplay().id());
848 EXPECT_EQ(primary_display.id(), 848 EXPECT_EQ(primary_display.id(),
849 Shell::GetScreen()->GetDisplayNearestPoint( 849 Shell::GetScreen()->GetDisplayNearestPoint(
850 gfx::Point(-100, -100)).id()); 850 gfx::Point(-100, -100)).id());
851 EXPECT_EQ(primary_display.id(), 851 EXPECT_EQ(primary_display.id(),
852 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id()); 852 Shell::GetScreen()->GetDisplayNearestWindow(NULL).id());
853 EXPECT_TRUE(tracker.Contains(primary_root)); 853 EXPECT_TRUE(tracker.Contains(primary_root));
854 EXPECT_FALSE(tracker.Contains(secondary_root)); 854 EXPECT_FALSE(tracker.Contains(secondary_root));
855 EXPECT_TRUE(primary_root->Contains(launcher_window)); 855 EXPECT_TRUE(primary_root->Contains(shelf_window));
856 856
857 // Adding 2nd display with the same ID. The 2nd display should become primary 857 // Adding 2nd display with the same ID. The 2nd display should become primary
858 // since secondary id is still stored as desirable_primary_id. 858 // since secondary id is still stored as desirable_primary_id.
859 std::vector<internal::DisplayInfo> display_info_list; 859 std::vector<internal::DisplayInfo> display_info_list;
860 display_info_list.push_back( 860 display_info_list.push_back(
861 display_manager->GetDisplayInfo(primary_display.id())); 861 display_manager->GetDisplayInfo(primary_display.id()));
862 display_info_list.push_back( 862 display_info_list.push_back(
863 display_manager->GetDisplayInfo(secondary_display.id())); 863 display_manager->GetDisplayInfo(secondary_display.id()));
864 display_manager->OnNativeDisplaysChanged(display_info_list); 864 display_manager->OnNativeDisplaysChanged(display_info_list);
865 865
866 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 866 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays());
867 EXPECT_EQ(secondary_display.id(), 867 EXPECT_EQ(secondary_display.id(),
868 Shell::GetScreen()->GetPrimaryDisplay().id()); 868 Shell::GetScreen()->GetPrimaryDisplay().id());
869 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id()); 869 EXPECT_EQ(primary_display.id(), ScreenAsh::GetSecondaryDisplay().id());
870 EXPECT_EQ( 870 EXPECT_EQ(
871 primary_root, 871 primary_root,
872 display_controller->GetRootWindowForDisplayId(secondary_display.id())); 872 display_controller->GetRootWindowForDisplayId(secondary_display.id()));
873 EXPECT_NE( 873 EXPECT_NE(
874 primary_root, 874 primary_root,
875 display_controller->GetRootWindowForDisplayId(primary_display.id())); 875 display_controller->GetRootWindowForDisplayId(primary_display.id()));
876 EXPECT_TRUE(primary_root->Contains(launcher_window)); 876 EXPECT_TRUE(primary_root->Contains(shelf_window));
877 877
878 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd 878 // Deleting 2nd display and adding 2nd display with a different ID. The 2nd
879 // display shouldn't become primary. 879 // display shouldn't become primary.
880 UpdateDisplay("200x200"); 880 UpdateDisplay("200x200");
881 internal::DisplayInfo third_display_info( 881 internal::DisplayInfo third_display_info(
882 secondary_display.id() + 1, std::string(), false); 882 secondary_display.id() + 1, std::string(), false);
883 third_display_info.SetBounds(secondary_display.bounds()); 883 third_display_info.SetBounds(secondary_display.bounds());
884 ASSERT_NE(primary_display.id(), third_display_info.id()); 884 ASSERT_NE(primary_display.id(), third_display_info.id());
885 885
886 const internal::DisplayInfo& primary_display_info = 886 const internal::DisplayInfo& primary_display_info =
887 display_manager->GetDisplayInfo(primary_display.id()); 887 display_manager->GetDisplayInfo(primary_display.id());
888 std::vector<internal::DisplayInfo> display_info_list2; 888 std::vector<internal::DisplayInfo> display_info_list2;
889 display_info_list2.push_back(primary_display_info); 889 display_info_list2.push_back(primary_display_info);
890 display_info_list2.push_back(third_display_info); 890 display_info_list2.push_back(third_display_info);
891 display_manager->OnNativeDisplaysChanged(display_info_list2); 891 display_manager->OnNativeDisplaysChanged(display_info_list2);
892 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays()); 892 EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays());
893 EXPECT_EQ(primary_display.id(), 893 EXPECT_EQ(primary_display.id(),
894 Shell::GetScreen()->GetPrimaryDisplay().id()); 894 Shell::GetScreen()->GetPrimaryDisplay().id());
895 EXPECT_EQ(third_display_info.id(), ScreenAsh::GetSecondaryDisplay().id()); 895 EXPECT_EQ(third_display_info.id(), ScreenAsh::GetSecondaryDisplay().id());
896 EXPECT_EQ( 896 EXPECT_EQ(
897 primary_root, 897 primary_root,
898 display_controller->GetRootWindowForDisplayId(primary_display.id())); 898 display_controller->GetRootWindowForDisplayId(primary_display.id()));
899 EXPECT_NE( 899 EXPECT_NE(
900 primary_root, 900 primary_root,
901 display_controller->GetRootWindowForDisplayId(third_display_info.id())); 901 display_controller->GetRootWindowForDisplayId(third_display_info.id()));
902 EXPECT_TRUE(primary_root->Contains(launcher_window)); 902 EXPECT_TRUE(primary_root->Contains(shelf_window));
903 } 903 }
904 904
905 TEST_F(DisplayControllerTest, CursorDeviceScaleFactorSwapPrimary) { 905 TEST_F(DisplayControllerTest, CursorDeviceScaleFactorSwapPrimary) {
906 if (!SupportsMultipleDisplays()) 906 if (!SupportsMultipleDisplays())
907 return; 907 return;
908 908
909 DisplayController* display_controller = 909 DisplayController* display_controller =
910 Shell::GetInstance()->display_controller(); 910 Shell::GetInstance()->display_controller();
911 911
912 UpdateDisplay("200x200,200x200*2"); 912 UpdateDisplay("200x200,200x200*2");
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1285 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetDispatcher())); 1285 EXPECT_EQ("aura_root_x", GetXWindowName(secondary->GetDispatcher()));
1286 1286
1287 // Switching back to single display. 1287 // Switching back to single display.
1288 UpdateDisplay("300x400"); 1288 UpdateDisplay("300x400");
1289 EXPECT_EQ("aura_root_0", GetXWindowName( 1289 EXPECT_EQ("aura_root_0", GetXWindowName(
1290 Shell::GetPrimaryRootWindow()->GetDispatcher())); 1290 Shell::GetPrimaryRootWindow()->GetDispatcher()));
1291 } 1291 }
1292 #endif 1292 #endif
1293 1293
1294 } // namespace ash 1294 } // namespace ash
OLDNEW
« no previous file with comments | « ash/dip_unittest.cc ('k') | ash/display/root_window_transformers_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698