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 |
deleted file mode 100644 |
index 91d70305fc7e7fd1e25f1ad30ba5a16bc330e397..0000000000000000000000000000000000000000 |
--- a/athena/home/home_card_gesture_manager_unittest.cc |
+++ /dev/null |
@@ -1,300 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "athena/home/home_card_gesture_manager.h" |
- |
-#include "athena/home/home_card_constants.h" |
-#include "athena/home/public/home_card.h" |
-#include "athena/test/base/athena_test_base.h" |
-#include "base/time/time.h" |
-#include "ui/events/event.h" |
-#include "ui/events/event_constants.h" |
- |
-namespace athena { |
- |
-class HomeCardGestureManagerTest : public test::AthenaTestBase, |
- public HomeCardGestureManager::Delegate { |
- public: |
- HomeCardGestureManagerTest() |
- : final_state_(HomeCard::HIDDEN), |
- last_from_state_(HomeCard::HIDDEN), |
- last_to_state_(HomeCard::HIDDEN), |
- last_progress_(0.0f), |
- was_fling_(false), |
- last_y_(0), |
- progress_count_(0), |
- end_count_(0) {} |
- ~HomeCardGestureManagerTest() override {} |
- |
- // testing::Test: |
- void SetUp() override { |
- test::AthenaTestBase::SetUp(); |
- gesture_manager_.reset(new HomeCardGestureManager(this, screen_bounds())); |
- } |
- |
- protected: |
- int GetEndCountAndReset() { |
- int result = end_count_; |
- end_count_ = 0; |
- return result; |
- } |
- int GetProgressCountAndReset() { |
- int result = progress_count_; |
- progress_count_ = 0; |
- return result; |
- } |
- |
- // Process a gesture event for our use case. |
- bool ProcessGestureEvent(ui::EventType type, int y) { |
- ui::GestureEventDetails details; |
- if (type == ui::ET_GESTURE_SCROLL_BEGIN || |
- type == ui::ET_GESTURE_SCROLL_UPDATE) |
- details = ui::GestureEventDetails(type, 0, (y - last_y_)); |
- else |
- details = ui::GestureEventDetails(type); |
- ui::GestureEvent event(0, y, ui::EF_NONE, base::TimeDelta(), details); |
- 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() - home_card_top); |
- event.set_location(location); |
- } |
- gesture_manager_->ProcessGestureEvent(&event); |
- last_y_ = y; |
- return event.handled(); |
- } |
- |
- void ProcessFlingGesture(float velocity) { |
- ui::GestureEvent event(0, last_y_, ui::EF_NONE, base::TimeDelta(), |
- ui::GestureEventDetails( |
- ui::ET_SCROLL_FLING_START, 0, velocity)); |
- gesture_manager_->ProcessGestureEvent(&event); |
- } |
- |
- int screen_height() const { |
- return screen_bounds().height(); |
- } |
- |
- HomeCard::State final_state_; |
- HomeCard::State last_from_state_; |
- HomeCard::State last_to_state_; |
- float last_progress_; |
- bool was_fling_; |
- |
- private: |
- gfx::Rect screen_bounds() const { |
- return gfx::Rect(0, 0, 1280, 1024); |
- } |
- |
- // HomeCardGestureManager::Delegate: |
- void OnGestureEnded(HomeCard::State final_state, bool is_fling) override { |
- final_state_ = final_state; |
- was_fling_ = is_fling; |
- ++end_count_; |
- } |
- |
- void OnGestureProgressed(HomeCard::State from_state, |
- HomeCard::State to_state, |
- float progress) override { |
- last_from_state_ = from_state; |
- last_to_state_ = to_state; |
- last_progress_ = progress; |
- ++progress_count_; |
- } |
- |
- int last_y_; |
- int progress_count_; |
- int end_count_; |
- scoped_ptr<HomeCardGestureManager> gesture_manager_; |
- |
- DISALLOW_COPY_AND_ASSIGN(HomeCardGestureManagerTest); |
-}; |
- |
-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()); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1019); |
- EXPECT_EQ(1, GetProgressCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_); |
- 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); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1000); |
- EXPECT_EQ(3, GetProgressCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, last_from_state_); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_to_state_); |
- EXPECT_LT(progress_1010, last_progress_); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 900); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 800); |
- EXPECT_EQ(2, GetProgressCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
- EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); |
- float progress_800 = last_progress_; |
- EXPECT_GT(1.0f, last_progress_); |
- EXPECT_LT(0.0f, last_progress_); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 790); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, last_from_state_); |
- EXPECT_EQ(HomeCard::VISIBLE_CENTERED, last_to_state_); |
- EXPECT_LT(progress_800, last_progress_); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 810); |
- 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_); |
- EXPECT_FALSE(was_fling_); |
-} |
- |
-// 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, 700); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 710); |
- 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_); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 960); |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 960)); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, final_state_); |
-} |
- |
-// Test gesture progress when the gesture is initiated when the home card is in |
-// the centered state. |
-TEST_F(HomeCardGestureManagerTest, StartBottom) { |
- HomeCard::Get()->SetState(HomeCard::VISIBLE_BOTTOM); |
- |
- // No changes for slight moves. |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 950)); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 960); |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 960)); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
- |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 950)); |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 800)); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
- |
- // State change for the bigger moves. |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 850)); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1000); |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 1000)); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, final_state_); |
- |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 850)); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 300); |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_END, 300)); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_CENTERED, final_state_); |
- EXPECT_FALSE(was_fling_); |
-} |
- |
-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()); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); |
- ProcessFlingGesture(-150.0f); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
- EXPECT_TRUE(was_fling_); |
-} |
- |
-TEST_F(HomeCardGestureManagerTest, FlingDownAtEnd) { |
- HomeCard::Get()->SetState(HomeCard::VISIBLE_CENTERED); |
- |
- EXPECT_TRUE(ProcessGestureEvent(ui::ET_GESTURE_SCROLL_BEGIN, 20)); |
- EXPECT_EQ(0, GetEndCountAndReset()); |
- EXPECT_EQ(0, GetProgressCountAndReset()); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 30); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 100); |
- ProcessFlingGesture(150.0f); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
- EXPECT_TRUE(was_fling_); |
-} |
- |
-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()); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); |
- ProcessFlingGesture(-30.0f); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_MINIMIZED, final_state_); |
- EXPECT_FALSE(was_fling_); |
-} |
- |
-// Test the situation where the user intends a single fling but the finger |
-// touches the screen long enough, so that the home card becomes bigger than the |
-// height of VISIBLE_BOTTOM state due to the scroll events. |
-// In this case the fling event should not change the final state from |
-// VISIBLE_BOTTOM to VISIBLE_CENTERED because the user's intention was a single |
-// fling. See http://crbug.com/415211 |
-TEST_F(HomeCardGestureManagerTest, FastFling) { |
- 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()); |
- |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, 1010); |
- ProcessGestureEvent(ui::ET_GESTURE_SCROLL_UPDATE, |
- screen_height() - kHomeCardHeight); |
- ProcessFlingGesture(-150.0f); |
- EXPECT_EQ(1, GetEndCountAndReset()); |
- EXPECT_EQ(HomeCard::VISIBLE_BOTTOM, final_state_); |
- EXPECT_TRUE(was_fling_); |
-} |
- |
-} // namespace athena |