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

Side by Side Diff: athena/home/home_card_unittest.cc

Issue 601333002: ESC accelerator and consistent overview mode for Athena homecard (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove ToggleOverview() Created 6 years, 2 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 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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698