| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "athena/home/public/home_card.h" | 5 #include "athena/home/public/home_card.h" |
| 6 | 6 |
| 7 #include "athena/activity/public/activity_factory.h" | 7 #include "athena/activity/public/activity_factory.h" |
| 8 #include "athena/home/home_card_constants.h" | 8 #include "athena/home/home_card_constants.h" |
| 9 #include "athena/home/home_card_impl.h" | 9 #include "athena/home/home_card_impl.h" |
| 10 #include "athena/test/base/athena_test_base.h" | 10 #include "athena/test/base/athena_test_base.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 const int work_area_height = gfx::Screen::GetScreenFor(root_window())-> | 41 const int work_area_height = gfx::Screen::GetScreenFor(root_window())-> |
| 42 GetDisplayNearestWindow(root_window()).work_area().height(); | 42 GetDisplayNearestWindow(root_window()).work_area().height(); |
| 43 ASSERT_TRUE(home_card); | 43 ASSERT_TRUE(home_card); |
| 44 | 44 |
| 45 // In the minimized state, home card should be outside (below) the work area. | 45 // In the minimized state, home card should be outside (below) the work area. |
| 46 EXPECT_EQ(screen_height - kHomeCardMinimizedHeight, | 46 EXPECT_EQ(screen_height - kHomeCardMinimizedHeight, |
| 47 home_card->GetTargetBounds().y()); | 47 home_card->GetTargetBounds().y()); |
| 48 EXPECT_EQ(work_area_height, home_card->GetTargetBounds().y()); | 48 EXPECT_EQ(work_area_height, home_card->GetTargetBounds().y()); |
| 49 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_NONE, wm::GetShadowType(home_card)); | 49 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_NONE, wm::GetShadowType(home_card)); |
| 50 | 50 |
| 51 WindowManager::Get()->ToggleOverview(); | 51 WindowManager::Get()->ActivateOverview(true); |
| 52 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 52 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 53 EXPECT_EQ(screen_height - kHomeCardHeight, home_card->GetTargetBounds().y()); | 53 EXPECT_EQ(screen_height - kHomeCardHeight, home_card->GetTargetBounds().y()); |
| 54 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_RECTANGULAR, | 54 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_RECTANGULAR, |
| 55 wm::GetShadowType(home_card)); | 55 wm::GetShadowType(home_card)); |
| 56 | 56 |
| 57 WindowManager::Get()->ToggleOverview(); | 57 WindowManager::Get()->ActivateOverview(false); |
| 58 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 58 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 59 EXPECT_EQ(work_area_height, home_card->GetTargetBounds().y()); | 59 EXPECT_EQ(work_area_height, home_card->GetTargetBounds().y()); |
| 60 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_NONE, wm::GetShadowType(home_card)); | 60 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_NONE, wm::GetShadowType(home_card)); |
| 61 } | 61 } |
| 62 | 62 |
| 63 TEST_F(HomeCardTest, VirtualKeyboardTransition) { | 63 TEST_F(HomeCardTest, VirtualKeyboardTransition) { |
| 64 // Minimized -> Hidden for virtual keyboard. | 64 // Minimized -> Hidden for virtual keyboard. |
| 65 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 65 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 66 const gfx::Rect vk_bounds(0, 0, 100, 100); | 66 const gfx::Rect vk_bounds(0, 0, 100, 100); |
| 67 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); | 67 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); |
| 68 EXPECT_EQ(HomeCard::HIDDEN, HomeCard::Get()->GetState()); | 68 EXPECT_EQ(HomeCard::HIDDEN, HomeCard::Get()->GetState()); |
| 69 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect()); | 69 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect()); |
| 70 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 70 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 71 | 71 |
| 72 // bottom -> centered for virtual keyboard. | 72 // bottom -> centered for virtual keyboard. |
| 73 WindowManager::Get()->ToggleOverview(); | 73 WindowManager::Get()->ActivateOverview(true); |
| 74 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 74 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 75 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); | 75 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); |
| 76 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 76 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 77 | 77 |
| 78 aura::Window* home_card = GetHomeCardWindow(); | 78 aura::Window* home_card = GetHomeCardWindow(); |
| 79 EXPECT_EQ(0, home_card->GetTargetBounds().y()); | 79 EXPECT_EQ(0, home_card->GetTargetBounds().y()); |
| 80 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_RECTANGULAR, | 80 EXPECT_EQ(wm::ShadowType::SHADOW_TYPE_RECTANGULAR, |
| 81 wm::GetShadowType(home_card)); | 81 wm::GetShadowType(home_card)); |
| 82 | 82 |
| 83 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect()); | 83 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect()); |
| 84 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 84 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 85 } | 85 } |
| 86 | 86 |
| 87 TEST_F(HomeCardTest, ToggleOverviewWithVirtualKeyboard) { | 87 TEST_F(HomeCardTest, ToggleOverviewWithVirtualKeyboard) { |
| 88 // Minimized -> Hidden for virtual keyboard. | 88 // Minimized -> Hidden for virtual keyboard. |
| 89 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 89 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 90 const gfx::Rect vk_bounds(0, 0, 100, 100); | 90 const gfx::Rect vk_bounds(0, 0, 100, 100); |
| 91 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); | 91 HomeCard::Get()->UpdateVirtualKeyboardBounds(vk_bounds); |
| 92 EXPECT_EQ(HomeCard::HIDDEN, HomeCard::Get()->GetState()); | 92 EXPECT_EQ(HomeCard::HIDDEN, HomeCard::Get()->GetState()); |
| 93 | 93 |
| 94 // Toogle overview revives the bottom home card. Home card also gets | 94 // ActivateOverview() revives the bottom home card. Home card also gets |
| 95 /// activated which will close the virtual keyboard. | 95 /// activated which will close the virtual keyboard. |
| 96 WindowManager::Get()->ToggleOverview(); | 96 WindowManager::Get()->ActivateOverview(true); |
| 97 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 97 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 98 aura::Window* home_card = GetHomeCardWindow(); | 98 aura::Window* home_card = GetHomeCardWindow(); |
| 99 EXPECT_TRUE(wm::IsActiveWindow(home_card)); | 99 EXPECT_TRUE(wm::IsActiveWindow(home_card)); |
| 100 } | 100 } |
| 101 | 101 |
| 102 // Verify if the home card is correctly minimized after app launch. | 102 // Verify if the home card is correctly minimized after app launch. |
| 103 TEST_F(HomeCardTest, AppSelection) { | 103 TEST_F(HomeCardTest, AppSelection) { |
| 104 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 104 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 105 | 105 |
| 106 WindowManager::Get()->ToggleOverview(); | 106 WindowManager::Get()->ActivateOverview(true); |
| 107 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 107 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 108 | 108 |
| 109 athena::ActivityFactory::Get()->CreateWebActivity( | 109 athena::ActivityFactory::Get()->CreateWebActivity( |
| 110 NULL, base::string16(), GURL("http://www.google.com/")); | 110 NULL, base::string16(), GURL("http://www.google.com/")); |
| 111 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 111 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 112 } | 112 } |
| 113 | 113 |
| 114 TEST_F(HomeCardTest, Accelerators) { | 114 TEST_F(HomeCardTest, Accelerators) { |
| 115 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 115 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 116 | 116 |
| 117 ui::test::EventGenerator generator(root_window()); | 117 ui::test::EventGenerator generator(root_window()); |
| 118 |
| 119 // CTRL+L toggles centered home card, check that overview mode follows |
| 118 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); | 120 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); |
| 119 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 121 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 120 | 122 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 121 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); | 123 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); |
| 122 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 124 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 125 EXPECT_FALSE(WindowManager::Get()->IsOverviewModeActive()); |
| 123 | 126 |
| 124 // Do nothing for BOTTOM. | 127 // ESC key hides centered home card |
| 125 WindowManager::Get()->ToggleOverview(); | 128 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); |
| 129 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 130 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 131 generator.PressKey(ui::VKEY_ESCAPE, ui::EF_NONE); |
| 132 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 133 EXPECT_FALSE(WindowManager::Get()->IsOverviewModeActive()); |
| 134 |
| 135 // Do nothing with bottom home card with CTRL+L, hide with ESC key |
| 136 WindowManager::Get()->ActivateOverview(true); |
| 126 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 137 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 138 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 127 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); | 139 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); |
| 128 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 140 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 141 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 142 generator.PressKey(ui::VKEY_ESCAPE, ui::EF_NONE); |
| 143 EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 144 EXPECT_FALSE(WindowManager::Get()->IsOverviewModeActive()); |
| 129 | 145 |
| 130 // Do nothing if the centered state is a temporary state. | 146 // Do nothing if the centered state is a temporary state. |
| 147 WindowManager::Get()->ActivateOverview(true); |
| 148 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 149 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 131 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect(0, 0, 100, 100)); | 150 HomeCard::Get()->UpdateVirtualKeyboardBounds(gfx::Rect(0, 0, 100, 100)); |
| 132 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 151 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 152 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 133 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); | 153 generator.PressKey(ui::VKEY_L, ui::EF_CONTROL_DOWN); |
| 134 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 154 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 155 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 135 } | 156 } |
| 136 | 157 |
| 137 TEST_F(HomeCardTest, MouseClick) { | 158 TEST_F(HomeCardTest, MouseClick) { |
| 138 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 159 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 139 | 160 |
| 140 // Mouse click at the bottom of the screen should invokes overview mode and | 161 // Mouse click at the bottom of the screen should invokes overview mode and |
| 141 // changes the state to BOTTOM. | 162 // changes the state to BOTTOM. |
| 142 gfx::Rect screen_rect(root_window()->bounds()); | 163 gfx::Rect screen_rect(root_window()->bounds()); |
| 143 ui::test::EventGenerator generator( | 164 ui::test::EventGenerator generator( |
| 144 root_window(), gfx::Point( | 165 root_window(), gfx::Point( |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 10); | 267 10); |
| 247 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 268 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 248 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); | 269 EXPECT_TRUE(WindowManager::Get()->IsOverviewModeActive()); |
| 249 } | 270 } |
| 250 | 271 |
| 251 TEST_F(HomeCardTest, KeyboardFocus) { | 272 TEST_F(HomeCardTest, KeyboardFocus) { |
| 252 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); | 273 ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
| 253 aura::Window* home_card = GetHomeCardWindow(); | 274 aura::Window* home_card = GetHomeCardWindow(); |
| 254 ASSERT_FALSE(IsSearchBoxFocused(home_card)); | 275 ASSERT_FALSE(IsSearchBoxFocused(home_card)); |
| 255 | 276 |
| 256 WindowManager::Get()->ToggleOverview(); | 277 WindowManager::Get()->ActivateOverview(true); |
| 257 ASSERT_FALSE(IsSearchBoxFocused(home_card)); | 278 ASSERT_FALSE(IsSearchBoxFocused(home_card)); |
| 258 | 279 |
| 259 ui::test::EventGenerator generator(root_window()); | 280 ui::test::EventGenerator generator(root_window()); |
| 260 gfx::Rect screen_rect(root_window()->bounds()); | 281 gfx::Rect screen_rect(root_window()->bounds()); |
| 261 | 282 |
| 262 const int bottom = screen_rect.bottom(); | 283 const int bottom = screen_rect.bottom(); |
| 263 const int x = screen_rect.x() + 1; | 284 const int x = screen_rect.x() + 1; |
| 264 | 285 |
| 265 generator.GestureScrollSequence(gfx::Point(x, bottom - 40), | 286 generator.GestureScrollSequence(gfx::Point(x, bottom - 40), |
| 266 gfx::Point(x, 10), | 287 gfx::Point(x, 10), |
| 267 base::TimeDelta::FromSeconds(1), | 288 base::TimeDelta::FromSeconds(1), |
| 268 10); | 289 10); |
| 269 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); | 290 EXPECT_EQ(HomeCard::VISIBLE_CENTERED, HomeCard::Get()->GetState()); |
| 270 EXPECT_TRUE(IsSearchBoxFocused(home_card)); | 291 EXPECT_TRUE(IsSearchBoxFocused(home_card)); |
| 271 | 292 |
| 272 generator.GestureScrollSequence(gfx::Point(x, 10), | 293 generator.GestureScrollSequence(gfx::Point(x, 10), |
| 273 gfx::Point(x, bottom - 100), | 294 gfx::Point(x, bottom - 100), |
| 274 base::TimeDelta::FromSeconds(1), | 295 base::TimeDelta::FromSeconds(1), |
| 275 10); | 296 10); |
| 276 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); | 297 EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, HomeCard::Get()->GetState()); |
| 277 EXPECT_FALSE(IsSearchBoxFocused(home_card)); | 298 EXPECT_FALSE(IsSearchBoxFocused(home_card)); |
| 278 } | 299 } |
| 279 | 300 |
| 280 } // namespace athena | 301 } // namespace athena |
| OLD | NEW |