Index: athena/home/home_card_gesture_manager_unittest.cc |
diff --git a/athena/home/home_card_gesture_manager_unittest.cc b/athena/home/home_card_gesture_manager_unittest.cc |
index 409a24957aa719374df6f4886d3b954eab552e2f..aea59b813cf4a7f8cc848829ef4d78d87fb13cf0 100644 |
--- a/athena/home/home_card_gesture_manager_unittest.cc |
+++ b/athena/home/home_card_gesture_manager_unittest.cc |
@@ -48,11 +48,18 @@ class HomeCardGestureManagerTest : public test::AthenaTestBase, |
bool ProcessGestureEvent(ui::EventType type, int y) { |
ui::GestureEvent event(0, y, ui::EF_NONE, base::TimeDelta(), |
ui::GestureEventDetails(type, 0, (y - last_y_))); |
- // Assumes the initial location is based on minimized height. |
if (type == ui::ET_GESTURE_SCROLL_BEGIN) { |
+ // Compute the position that the home card would have wrt to the top of |
+ // the screen if the screen had screen_bounds(). |
+ HomeCard::State state = HomeCard::Get()->GetState(); |
+ int home_card_top = 0; |
+ if (state == HomeCard::VISIBLE_BOTTOM) |
+ home_card_top = screen_bounds().height() - kHomeCardHeight; |
+ else if (state == HomeCard::VISIBLE_MINIMIZED) |
+ home_card_top = screen_bounds().height() - kHomeCardMinimizedHeight; |
+ |
gfx::Point location = event.location(); |
- location.set_y( |
- location.y() - (screen_bounds().bottom() - kHomeCardMinimizedHeight)); |
+ location.set_y(location.y() - home_card_top); |
event.set_location(location); |
} |
gesture_manager_->ProcessGestureEvent(&event); |
@@ -100,6 +107,8 @@ class HomeCardGestureManagerTest : public test::AthenaTestBase, |
}; |
TEST_F(HomeCardGestureManagerTest, Basic) { |
+ ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
+ |
EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); |
EXPECT_EQ(0, GetEndCountAndReset()); |
EXPECT_EQ(0, GetProgressCountAndReset()); |
@@ -110,6 +119,13 @@ TEST_F(HomeCardGestureManagerTest, Basic) { |
EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); |
EXPECT_GT(1.0f, last_progress_); |
+ ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1020); |
+ ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1022); |
+ EXPECT_EQ(2, GetProgressCountAndReset()); |
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
+ EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_to_state_); |
+ EXPECT_EQ(1.0f, last_progress_); |
+ |
ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); |
float progress_1010 = last_progress_; |
ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1008); |
@@ -134,16 +150,44 @@ TEST_F(HomeCardGestureManagerTest, Basic) { |
EXPECT_LT(progress_800, last_progress_); |
ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 810); |
- EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_from_state_); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); |
- EXPECT_GT(progress_800, (1.0f - last_progress_)); |
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); |
+ EXPECT_GT(progress_800, last_progress_); |
EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 810)); |
EXPECT_EQ(1, GetEndCountAndReset()); |
EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
} |
+// Test gesture progress when the gesture is initiated when the home card is in |
+// the centered state. |
+TEST_F(HomeCardGestureManagerTest, StartCentered) { |
+ HomeCard::Get()->SetState(HomeCard::VISIBLE_CENTERED); |
+ |
+ EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 20)); |
+ |
+ ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 10); |
+ EXPECT_EQ(1, GetProgressCountAndReset()); |
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); |
+ EXPECT_EQ(1.0f, last_progress_); |
+ |
+ ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 900); |
+ ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 910); |
+ EXPECT_EQ(2, GetProgressCountAndReset()); |
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
+ EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); |
+ EXPECT_GT(1.0f, last_progress_); |
+ EXPECT_LT(0.0f, last_progress_); |
+ |
+ EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 1000)); |
+ EXPECT_EQ(1, GetEndCountAndReset()); |
+ EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
+} |
+ |
TEST_F(HomeCardGestureManagerTest, FlingUpAtEnd) { |
+ ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
+ |
EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); |
EXPECT_EQ(0, GetEndCountAndReset()); |
EXPECT_EQ(0, GetProgressCountAndReset()); |
@@ -156,6 +200,8 @@ TEST_F(HomeCardGestureManagerTest, FlingUpAtEnd) { |
} |
TEST_F(HomeCardGestureManagerTest, FlingDownAtEnd) { |
+ ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
+ |
EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); |
EXPECT_EQ(0, GetEndCountAndReset()); |
EXPECT_EQ(0, GetProgressCountAndReset()); |
@@ -169,6 +215,8 @@ TEST_F(HomeCardGestureManagerTest, FlingDownAtEnd) { |
} |
TEST_F(HomeCardGestureManagerTest, WeakFling) { |
+ ASSERT_EQ(HomeCard::VISIBLE_MINIMIZED, HomeCard::Get()->GetState()); |
+ |
EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 1020)); |
EXPECT_EQ(0, GetEndCountAndReset()); |
EXPECT_EQ(0, GetProgressCountAndReset()); |