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

Side by Side Diff: ash/root_window_controller_unittest.cc

Issue 2718763003: chromeos: makes more tests run in both mash and ash (Closed)
Patch Set: disable more ShelfViewTests Created 3 years, 9 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
« no previous file with comments | « ash/metrics/user_metrics_recorder_unittest.cc ('k') | ash/screen_util_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/root_window_controller.h" 5 #include "ash/root_window_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "ash/common/session/session_controller.h" 9 #include "ash/common/session/session_controller.h"
10 #include "ash/common/session/session_state_delegate.h" 10 #include "ash/common/session/session_state_delegate.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 return widget; 128 return widget;
129 } 129 }
130 130
131 aura::Window* GetModalContainer(aura::Window* root_window) { 131 aura::Window* GetModalContainer(aura::Window* root_window) {
132 return Shell::GetContainer(root_window, 132 return Shell::GetContainer(root_window,
133 kShellWindowId_SystemModalContainer); 133 kShellWindowId_SystemModalContainer);
134 } 134 }
135 }; 135 };
136 136
137 TEST_F(RootWindowControllerTest, MoveWindows_Basic) { 137 TEST_F(RootWindowControllerTest, MoveWindows_Basic) {
138 // TODO: triggers shutdown crash in mash. http://crbug.com/695632.
139 if (WmShell::Get()->IsRunningInMash())
140 return;
141
138 // Windows origin should be doubled when moved to the 1st display. 142 // Windows origin should be doubled when moved to the 1st display.
139 UpdateDisplay("600x600,300x300"); 143 UpdateDisplay("600x600,300x300");
140 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 144 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
141 145
142 views::Widget* normal = CreateTestWidget(gfx::Rect(650, 10, 100, 100)); 146 views::Widget* normal = CreateTestWidget(gfx::Rect(650, 10, 100, 100));
143 EXPECT_EQ(root_windows[1], normal->GetNativeView()->GetRootWindow()); 147 EXPECT_EQ(root_windows[1], normal->GetNativeView()->GetRootWindow());
144 EXPECT_EQ("650,10 100x100", normal->GetWindowBoundsInScreen().ToString()); 148 EXPECT_EQ("650,10 100x100", normal->GetWindowBoundsInScreen().ToString());
145 EXPECT_EQ("50,10 100x100", 149 EXPECT_EQ("50,10 100x100",
146 normal->GetNativeView()->GetBoundsInRootWindow().ToString()); 150 normal->GetNativeView()->GetBoundsInRootWindow().ToString());
147 151
148 views::Widget* maximized = CreateTestWidget(gfx::Rect(700, 10, 100, 100)); 152 views::Widget* maximized = CreateTestWidget(gfx::Rect(700, 10, 100, 100));
149 maximized->Maximize(); 153 maximized->Maximize();
150 EXPECT_EQ(root_windows[1], maximized->GetNativeView()->GetRootWindow()); 154 EXPECT_EQ(root_windows[1], maximized->GetNativeView()->GetRootWindow());
151 EXPECT_EQ(gfx::Rect(600, 0, 300, 252).ToString(), 155 EXPECT_EQ(gfx::Rect(600, 0, 300, 252).ToString(),
152 maximized->GetWindowBoundsInScreen().ToString()); 156 maximized->GetWindowBoundsInScreen().ToString());
153 EXPECT_EQ(gfx::Rect(0, 0, 300, 252).ToString(), 157 EXPECT_EQ(gfx::Rect(0, 0, 300, 252).ToString(),
154 maximized->GetNativeView()->GetBoundsInRootWindow().ToString()); 158 maximized->GetNativeView()->GetBoundsInRootWindow().ToString());
155 159
156 views::Widget* minimized = CreateTestWidget(gfx::Rect(550, 10, 200, 200)); 160 views::Widget* minimized = CreateTestWidget(gfx::Rect(550, 10, 200, 200));
157 minimized->Minimize(); 161 minimized->Minimize();
158 EXPECT_EQ(root_windows[1], minimized->GetNativeView()->GetRootWindow()); 162 EXPECT_EQ(root_windows[1], minimized->GetNativeView()->GetRootWindow());
159 EXPECT_EQ("550,10 200x200", minimized->GetWindowBoundsInScreen().ToString()); 163 EXPECT_EQ("550,10 200x200", minimized->GetWindowBoundsInScreen().ToString());
160 164
161 views::Widget* fullscreen = CreateTestWidget(gfx::Rect(850, 10, 200, 200)); 165 views::Widget* fullscreen = CreateTestWidget(gfx::Rect(850, 10, 200, 200));
162 display::Display secondary_display = 166 display::Display secondary_display = GetSecondaryDisplay();
163 Shell::GetInstance()->display_manager()->GetSecondaryDisplay();
164 gfx::Rect orig_bounds = fullscreen->GetWindowBoundsInScreen(); 167 gfx::Rect orig_bounds = fullscreen->GetWindowBoundsInScreen();
165 EXPECT_TRUE(secondary_display.work_area().Intersects(orig_bounds)); 168 EXPECT_TRUE(secondary_display.work_area().Intersects(orig_bounds));
166 EXPECT_FALSE(secondary_display.work_area().Contains(orig_bounds)); 169 EXPECT_FALSE(secondary_display.work_area().Contains(orig_bounds));
167 170
168 fullscreen->SetFullscreen(true); 171 fullscreen->SetFullscreen(true);
169 EXPECT_EQ(root_windows[1], fullscreen->GetNativeView()->GetRootWindow()); 172 EXPECT_EQ(root_windows[1], fullscreen->GetNativeView()->GetRootWindow());
170 173
171 EXPECT_EQ("600,0 300x300", fullscreen->GetWindowBoundsInScreen().ToString()); 174 EXPECT_EQ("600,0 300x300", fullscreen->GetWindowBoundsInScreen().ToString());
172 EXPECT_EQ("0,0 300x300", 175 EXPECT_EQ("0,0 300x300",
173 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString()); 176 fullscreen->GetNativeView()->GetBoundsInRootWindow().ToString());
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 287
285 UpdateDisplay("500x500"); 288 UpdateDisplay("500x500");
286 EXPECT_EQ(root_windows[0], modal->GetNativeView()->GetRootWindow()); 289 EXPECT_EQ(root_windows[0], modal->GetNativeView()->GetRootWindow());
287 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView())); 290 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView()));
288 generator_1st.ClickLeftButton(); 291 generator_1st.ClickLeftButton();
289 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView())); 292 EXPECT_TRUE(wm::IsActiveWindow(modal->GetNativeView()));
290 } 293 }
291 294
292 // Make sure lock related windows moves. 295 // Make sure lock related windows moves.
293 TEST_F(RootWindowControllerTest, MoveWindows_LockWindowsInUnified) { 296 TEST_F(RootWindowControllerTest, MoveWindows_LockWindowsInUnified) {
297 // TODO: requires unified desktop mode. http://crbug.com/581462.
298 if (WmShell::Get()->IsRunningInMash())
299 return;
300
294 display_manager()->SetUnifiedDesktopEnabled(true); 301 display_manager()->SetUnifiedDesktopEnabled(true);
295 302
296 UpdateDisplay("500x500"); 303 UpdateDisplay("500x500");
297 const int kLockScreenWindowId = 1000; 304 const int kLockScreenWindowId = 1000;
298 const int kLockWallpaperWindowId = 1001; 305 const int kLockWallpaperWindowId = 1001;
299 306
300 RootWindowController* controller = Shell::GetPrimaryRootWindowController(); 307 RootWindowController* controller = Shell::GetPrimaryRootWindowController();
301 308
302 aura::Window* lock_container = 309 aura::Window* lock_container =
303 controller->GetContainer(kShellWindowId_LockScreenContainer); 310 controller->GetContainer(kShellWindowId_LockScreenContainer);
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 ASSERT_TRUE(Shell::GetContainer(primary_root_window, 749 ASSERT_TRUE(Shell::GetContainer(primary_root_window,
743 kShellWindowId_VirtualKeyboardContainer)); 750 kShellWindowId_VirtualKeyboardContainer));
744 ASSERT_FALSE(Shell::GetContainer(secondary_root_window, 751 ASSERT_FALSE(Shell::GetContainer(secondary_root_window,
745 kShellWindowId_VirtualKeyboardContainer)); 752 kShellWindowId_VirtualKeyboardContainer));
746 } 753 }
747 754
748 // Test for http://crbug.com/303429. Virtual keyboard container should show on 755 // Test for http://crbug.com/303429. Virtual keyboard container should show on
749 // a display which has touch capability. 756 // a display which has touch capability.
750 TEST_F(VirtualKeyboardRootWindowControllerTest, 757 TEST_F(VirtualKeyboardRootWindowControllerTest,
751 VirtualKeyboardOnTouchableDisplayOnly) { 758 VirtualKeyboardOnTouchableDisplayOnly) {
759 // TODO: investigate failure in mash. http://crbug.com/695640.
760 if (WmShell::Get()->IsRunningInMash())
761 return;
762
752 UpdateDisplay("500x500,500x500"); 763 UpdateDisplay("500x500,500x500");
753 display::Display secondary_display = 764 display::Display secondary_display =
754 Shell::GetInstance()->display_manager()->GetSecondaryDisplay(); 765 Shell::GetInstance()->display_manager()->GetSecondaryDisplay();
755 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()) 766 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager())
756 .SetTouchSupport(secondary_display.id(), 767 .SetTouchSupport(secondary_display.id(),
757 display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE); 768 display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE);
758 769
759 // The primary display doesn't have touch capability and the secondary display 770 // The primary display doesn't have touch capability and the secondary display
760 // does. 771 // does.
761 ASSERT_NE(display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE, 772 ASSERT_NE(display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE,
(...skipping 30 matching lines...) Expand all
792 keyboard::KeyboardController::GetInstance()->ShowKeyboard(false); 803 keyboard::KeyboardController::GetInstance()->ShowKeyboard(false);
793 EXPECT_FALSE(Shell::GetContainer(primary_root_window, 804 EXPECT_FALSE(Shell::GetContainer(primary_root_window,
794 kShellWindowId_VirtualKeyboardContainer)); 805 kShellWindowId_VirtualKeyboardContainer));
795 EXPECT_TRUE(Shell::GetContainer(secondary_root_window, 806 EXPECT_TRUE(Shell::GetContainer(secondary_root_window,
796 kShellWindowId_VirtualKeyboardContainer)); 807 kShellWindowId_VirtualKeyboardContainer));
797 } 808 }
798 809
799 // Test for http://crbug.com/303429. If both of displays have touch capability, 810 // Test for http://crbug.com/303429. If both of displays have touch capability,
800 // virtual keyboard follows the input focus. 811 // virtual keyboard follows the input focus.
801 TEST_F(VirtualKeyboardRootWindowControllerTest, FollowInputFocus) { 812 TEST_F(VirtualKeyboardRootWindowControllerTest, FollowInputFocus) {
813 // TODO: investigate failure in mash. http://crbug.com/695640.
814 if (WmShell::Get()->IsRunningInMash())
815 return;
816
802 UpdateDisplay("500x500,500x500"); 817 UpdateDisplay("500x500,500x500");
803 const int64_t primary_display_id = 818 const int64_t primary_display_id =
804 display::Screen::GetScreen()->GetPrimaryDisplay().id(); 819 display::Screen::GetScreen()->GetPrimaryDisplay().id();
805 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()) 820 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager())
806 .SetTouchSupport(primary_display_id, 821 .SetTouchSupport(primary_display_id,
807 display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE); 822 display::Display::TouchSupport::TOUCH_SUPPORT_AVAILABLE);
808 const int64_t secondary_display_id = 823 const int64_t secondary_display_id =
809 Shell::GetInstance()->display_manager()->GetSecondaryDisplay().id(); 824 Shell::GetInstance()->display_manager()->GetSecondaryDisplay().id();
810 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager()) 825 display::test::DisplayManagerTestApi(Shell::GetInstance()->display_manager())
811 .SetTouchSupport(secondary_display_id, 826 .SetTouchSupport(secondary_display_id,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 EXPECT_TRUE(Shell::GetContainer(primary_root_window, 875 EXPECT_TRUE(Shell::GetContainer(primary_root_window,
861 kShellWindowId_VirtualKeyboardContainer)); 876 kShellWindowId_VirtualKeyboardContainer));
862 EXPECT_FALSE(Shell::GetContainer(secondary_root_window, 877 EXPECT_FALSE(Shell::GetContainer(secondary_root_window,
863 kShellWindowId_VirtualKeyboardContainer)); 878 kShellWindowId_VirtualKeyboardContainer));
864 } 879 }
865 880
866 // Test for http://crbug.com/303429. Even if both of display don't have touch 881 // Test for http://crbug.com/303429. Even if both of display don't have touch
867 // capability, the virtual keyboard shows up on the specified display. 882 // capability, the virtual keyboard shows up on the specified display.
868 TEST_F(VirtualKeyboardRootWindowControllerTest, 883 TEST_F(VirtualKeyboardRootWindowControllerTest,
869 VirtualKeyboardShowOnSpecifiedDisplay) { 884 VirtualKeyboardShowOnSpecifiedDisplay) {
885 // TODO: fails in mash. http://crbug.com/695640.
886 if (WmShell::Get()->IsRunningInMash())
887 return;
888
870 UpdateDisplay("500x500,500x500"); 889 UpdateDisplay("500x500,500x500");
871 display::Display secondary_display = 890 display::Display secondary_display = GetSecondaryDisplay();
872 Shell::GetInstance()->display_manager()->GetSecondaryDisplay();
873 891
874 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 892 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
875 aura::Window* primary_root_window = Shell::GetPrimaryRootWindow(); 893 aura::Window* primary_root_window = Shell::GetPrimaryRootWindow();
876 aura::Window* secondary_root_window = root_windows[0] == primary_root_window 894 aura::Window* secondary_root_window = root_windows[0] == primary_root_window
877 ? root_windows[1] 895 ? root_windows[1]
878 : root_windows[0]; 896 : root_windows[0];
879 897
880 ASSERT_TRUE(Shell::GetContainer(primary_root_window, 898 ASSERT_TRUE(Shell::GetContainer(primary_root_window,
881 kShellWindowId_VirtualKeyboardContainer)); 899 kShellWindowId_VirtualKeyboardContainer));
882 ASSERT_FALSE(Shell::GetContainer(secondary_root_window, 900 ASSERT_FALSE(Shell::GetContainer(secondary_root_window,
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 ui->EnsureCaretInWorkArea(); 1069 ui->EnsureCaretInWorkArea();
1052 ASSERT_EQ(root_window->bounds().width(), 1070 ASSERT_EQ(root_window->bounds().width(),
1053 text_input_client.caret_exclude_rect().width()); 1071 text_input_client.caret_exclude_rect().width());
1054 ASSERT_EQ(keyboard_height, text_input_client.caret_exclude_rect().height()); 1072 ASSERT_EQ(keyboard_height, text_input_client.caret_exclude_rect().height());
1055 1073
1056 input_method->SetFocusedTextInputClient(NULL); 1074 input_method->SetFocusedTextInputClient(NULL);
1057 } 1075 }
1058 1076
1059 TEST_F(VirtualKeyboardRootWindowControllerTest, 1077 TEST_F(VirtualKeyboardRootWindowControllerTest,
1060 EnsureCaretInWorkAreaWithMultipleDisplays) { 1078 EnsureCaretInWorkAreaWithMultipleDisplays) {
1079 // TODO: fails in mash. http://crbug.com/695640.
1080 if (WmShell::Get()->IsRunningInMash())
1081 return;
1082
1061 UpdateDisplay("500x500,600x600"); 1083 UpdateDisplay("500x500,600x600");
1062 const int64_t primary_display_id = 1084 const int64_t primary_display_id =
1063 display::Screen::GetScreen()->GetPrimaryDisplay().id(); 1085 display::Screen::GetScreen()->GetPrimaryDisplay().id();
1064 const int64_t secondary_display_id = 1086 const int64_t secondary_display_id = GetSecondaryDisplay().id();
1065 Shell::GetInstance()->display_manager()->GetSecondaryDisplay().id();
1066 ASSERT_NE(primary_display_id, secondary_display_id); 1087 ASSERT_NE(primary_display_id, secondary_display_id);
1067 1088
1068 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 1089 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
1069 ASSERT_EQ(static_cast<size_t>(2), root_windows.size()); 1090 ASSERT_EQ(static_cast<size_t>(2), root_windows.size());
1070 aura::Window* primary_root_window = root_windows[0]; 1091 aura::Window* primary_root_window = root_windows[0];
1071 aura::Window* secondary_root_window = root_windows[1]; 1092 aura::Window* secondary_root_window = root_windows[1];
1072 1093
1073 keyboard::KeyboardController* keyboard_controller = 1094 keyboard::KeyboardController* keyboard_controller =
1074 keyboard::KeyboardController::GetInstance(); 1095 keyboard::KeyboardController::GetInstance();
1075 keyboard::KeyboardUI* ui = keyboard_controller->ui(); 1096 keyboard::KeyboardUI* ui = keyboard_controller->ui();
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 keyboard_controller->ui()->GetKeyboardWindow()->SetBounds( 1231 keyboard_controller->ui()->GetKeyboardWindow()->SetBounds(
1211 gfx::Rect(0, 400, 800, 200)); 1232 gfx::Rect(0, 400, 800, 200));
1212 EXPECT_EQ("0,400 800x200", keyboard_container->bounds().ToString()); 1233 EXPECT_EQ("0,400 800x200", keyboard_container->bounds().ToString());
1213 1234
1214 UpdateDisplay("600x800"); 1235 UpdateDisplay("600x800");
1215 EXPECT_EQ("0,600 600x200", keyboard_container->bounds().ToString()); 1236 EXPECT_EQ("0,600 600x200", keyboard_container->bounds().ToString());
1216 } 1237 }
1217 1238
1218 } // namespace test 1239 } // namespace test
1219 } // namespace ash 1240 } // namespace ash
OLDNEW
« no previous file with comments | « ash/metrics/user_metrics_recorder_unittest.cc ('k') | ash/screen_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698