Index: athena/wm/window_manager_unittest.cc |
diff --git a/athena/wm/window_manager_unittest.cc b/athena/wm/window_manager_unittest.cc |
index 705e730eae46e2547081aec86d96ba6cfee9d45b..41d949c628ecdf7b947b74f6df7cb7476420565a 100644 |
--- a/athena/wm/window_manager_unittest.cc |
+++ b/athena/wm/window_manager_unittest.cc |
@@ -282,4 +282,39 @@ TEST_F(WindowManagerTest, NewWindowBounds) { |
wm_api.split_view_controller()->left_window()->bounds().ToString()); |
} |
+TEST_F(WindowManagerTest, SplitModeActivationByShortcut) { |
+ WindowManagerImplTestApi wm_api; |
+ |
+ aura::test::TestWindowDelegate delegate; |
+ scoped_ptr<aura::Window> w1(CreateTestWindow(&delegate, gfx::Rect())); |
+ w1->Show(); |
+ |
+ ui::test::EventGenerator generator(root_window()); |
+ |
+ // Splitview mode needs at least two windows. |
+ generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ EXPECT_FALSE(wm_api.split_view_controller()->IsSplitViewModeActive()); |
+ |
+ scoped_ptr<aura::Window> w2(CreateTestWindow(&delegate, gfx::Rect())); |
+ w2->Show(); |
+ |
+ generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ EXPECT_TRUE(wm_api.split_view_controller()->IsSplitViewModeActive()); |
+ int width = |
+ gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().work_area().width(); |
+ |
+ EXPECT_EQ(width / 2, w1->bounds().width()); |
+ EXPECT_EQ(width / 2, w2->bounds().width()); |
+ |
+ // Toggle back to normal mode. |
+ generator.PressKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ generator.ReleaseKey(ui::VKEY_F6, ui::EF_CONTROL_DOWN); |
+ EXPECT_FALSE(wm_api.split_view_controller()->IsSplitViewModeActive()); |
+ |
+ EXPECT_EQ(width, w1->bounds().width()); |
+ EXPECT_EQ(width, w2->bounds().width()); |
+} |
+ |
} // namespace athena |