Index: content/browser/web_contents/aura/overscroll_window_delegate_unittest.cc |
diff --git a/content/browser/web_contents/aura/overscroll_window_delegate_unittest.cc b/content/browser/web_contents/aura/overscroll_window_delegate_unittest.cc |
deleted file mode 100644 |
index 75579d780e4dc3e846079f49edadc3486d36411f..0000000000000000000000000000000000000000 |
--- a/content/browser/web_contents/aura/overscroll_window_delegate_unittest.cc |
+++ /dev/null |
@@ -1,242 +0,0 @@ |
-// Copyright 2015 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 "content/browser/web_contents/aura/overscroll_window_delegate.h" |
- |
-#include "content/browser/renderer_host/overscroll_controller_delegate.h" |
-#include "content/public/browser/overscroll_configuration.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "ui/aura/test/aura_test_base.h" |
-#include "ui/aura/window.h" |
-#include "ui/events/gesture_detection/gesture_configuration.h" |
-#include "ui/events/test/event_generator.h" |
- |
-namespace content { |
- |
-namespace { |
-const int kTestWindowWidth = 600; |
-} |
- |
-class OverscrollWindowDelegateTest : public aura::test::AuraTestBase, |
- public OverscrollControllerDelegate { |
- public: |
- OverscrollWindowDelegateTest() |
- : window_(nullptr), |
- overscroll_complete_(false), |
- overscroll_started_(false), |
- current_mode_(OVERSCROLL_NONE), |
- touch_start_threshold_(content::GetOverscrollConfig( |
- content::OVERSCROLL_CONFIG_HORIZ_THRESHOLD_START_TOUCHSCREEN)), |
- touch_complete_threshold_(content::GetOverscrollConfig( |
- content::OVERSCROLL_CONFIG_HORIZ_THRESHOLD_COMPLETE)) { |
- } |
- |
- ~OverscrollWindowDelegateTest() override {} |
- |
- void Reset() { |
- overscroll_complete_ = false; |
- overscroll_started_ = false; |
- current_mode_ = OVERSCROLL_NONE; |
- window_.reset(CreateNormalWindow( |
- 0, root_window(), new OverscrollWindowDelegate(this, gfx::Image()))); |
- window_->SetBounds(gfx::Rect(0, 0, kTestWindowWidth, kTestWindowWidth)); |
- } |
- |
- // Accessors. |
- aura::Window* window() { return window_.get(); } |
- |
- bool overscroll_complete() { return overscroll_complete_; } |
- bool overscroll_started() { return overscroll_started_; } |
- |
- OverscrollMode current_mode() { return current_mode_; } |
- |
- const float touch_start_threshold() { |
- return touch_start_threshold_; |
- } |
- |
- const float touch_complete_threshold() { |
- return kTestWindowWidth * touch_complete_threshold_; |
- } |
- |
- protected: |
- // aura::test::AuraTestBase: |
- void SetUp() override { |
- aura::test::AuraTestBase::SetUp(); |
- Reset(); |
- ui::GestureConfiguration::GetInstance() |
- ->set_max_touch_move_in_pixels_for_click(0); |
- } |
- |
- void TearDown() override { |
- window_.reset(); |
- aura::test::AuraTestBase::TearDown(); |
- } |
- |
- private: |
- // OverscrollControllerDelegate: |
- gfx::Rect GetVisibleBounds() const override { |
- return gfx::Rect(kTestWindowWidth, kTestWindowWidth); |
- } |
- |
- bool OnOverscrollUpdate(float delta_x, float delta_y) override { |
- return true; |
- } |
- |
- void OnOverscrollComplete(OverscrollMode overscroll_mode) override { |
- overscroll_complete_ = true; |
- } |
- |
- void OnOverscrollModeChange(OverscrollMode old_mode, |
- OverscrollMode new_mode) override { |
- current_mode_ = new_mode; |
- if (current_mode_ != OVERSCROLL_NONE) |
- overscroll_started_ = true; |
- } |
- |
- // Window in which the overscroll window delegate is installed. |
- scoped_ptr<aura::Window> window_; |
- |
- // State flags. |
- bool overscroll_complete_; |
- bool overscroll_started_; |
- |
- OverscrollMode current_mode_; |
- |
- // Config defined constants. |
- const float touch_start_threshold_; |
- const float touch_complete_threshold_; |
- |
- DISALLOW_COPY_AND_ASSIGN(OverscrollWindowDelegateTest); |
-}; |
- |
-// Tests that the basic overscroll gesture works and sends updates to the |
-// delegate. |
-TEST_F(OverscrollWindowDelegateTest, BasicOverscroll) { |
- ui::test::EventGenerator generator(root_window()); |
- |
- // Start an OVERSCROLL_EAST gesture. |
- generator.GestureScrollSequence( |
- gfx::Point(0, 0), gfx::Point(touch_complete_threshold() + 1, 10), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_TRUE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_EAST); |
- EXPECT_TRUE(overscroll_complete()); |
- |
- Reset(); |
- // Start an OVERSCROLL_WEST gesture. |
- generator.GestureScrollSequence(gfx::Point(touch_complete_threshold() + 1, 0), |
- gfx::Point(0, 0), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_TRUE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_WEST); |
- EXPECT_TRUE(overscroll_complete()); |
-} |
- |
-// Verifies that the OverscrollWindowDelegate direction is set correctly during |
-// an overscroll. |
-TEST_F(OverscrollWindowDelegateTest, BasicOverscrollModes) { |
- ui::test::EventGenerator generator(root_window()); |
- OverscrollWindowDelegate* delegate = |
- static_cast<OverscrollWindowDelegate*>(window()->delegate()); |
- |
- // Start pressing a touch, but do not start the gesture yet. |
- generator.MoveTouch(gfx::Point(0, 0)); |
- generator.PressTouch(); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_NONE); |
- |
- // Slide the touch to the right. |
- generator.MoveTouch(gfx::Point(touch_complete_threshold() + 1, 0)); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_EAST); |
- |
- // Complete the gesture. |
- generator.ReleaseTouch(); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_NONE); |
- EXPECT_TRUE(overscroll_complete()); |
- |
- // Start another overscroll. |
- generator.MoveTouch(gfx::Point(touch_complete_threshold() + 1, 0)); |
- generator.PressTouch(); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_NONE); |
- |
- // Slide the touch to the left. |
- generator.MoveTouch(gfx::Point(0, 0)); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_WEST); |
- |
- // Complete the gesture. |
- generator.ReleaseTouch(); |
- EXPECT_EQ(delegate->overscroll_mode_, OVERSCROLL_NONE); |
- EXPECT_TRUE(overscroll_complete()); |
-} |
- |
-// Tests that the overscroll does not start until the gesture gets past a |
-// particular threshold. |
-TEST_F(OverscrollWindowDelegateTest, OverscrollThreshold) { |
- ui::test::EventGenerator generator(root_window()); |
- |
- // Start an OVERSCROLL_EAST gesture. |
- generator.GestureScrollSequence(gfx::Point(0, 0), |
- gfx::Point(touch_start_threshold(), 0), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_FALSE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_NONE); |
- EXPECT_FALSE(overscroll_complete()); |
- |
- Reset(); |
- // Start an OVERSCROLL_WEST gesture. |
- generator.GestureScrollSequence(gfx::Point(touch_start_threshold(), 0), |
- gfx::Point(0, 0), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_FALSE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_NONE); |
- EXPECT_FALSE(overscroll_complete()); |
-} |
- |
-// Tests that the overscroll is aborted if the gesture does not get past the |
-// completion threshold. |
-TEST_F(OverscrollWindowDelegateTest, AbortOverscrollThreshold) { |
- ui::test::EventGenerator generator(root_window()); |
- |
- // Start an OVERSCROLL_EAST gesture. |
- generator.GestureScrollSequence(gfx::Point(0, 0), |
- gfx::Point(touch_start_threshold() + 1, 0), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_TRUE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_NONE); |
- EXPECT_FALSE(overscroll_complete()); |
- |
- Reset(); |
- // Start an OVERSCROLL_WEST gesture. |
- generator.GestureScrollSequence(gfx::Point(touch_start_threshold() + 1, 0), |
- gfx::Point(0, 0), |
- base::TimeDelta::FromMilliseconds(10), 10); |
- EXPECT_TRUE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_NONE); |
- EXPECT_FALSE(overscroll_complete()); |
-} |
- |
-// Tests that the overscroll is aborted if the delegate receives some other |
-// event. |
-TEST_F(OverscrollWindowDelegateTest, EventAbortsOverscroll) { |
- ui::test::EventGenerator generator(root_window()); |
- // Start an OVERSCROLL_EAST gesture, without releasing touch. |
- generator.set_current_location(gfx::Point(0, 0)); |
- generator.PressTouch(); |
- int touch_x = touch_start_threshold() + 1; |
- generator.MoveTouch(gfx::Point(touch_x, 0)); |
- EXPECT_TRUE(overscroll_started()); |
- EXPECT_EQ(current_mode(), OVERSCROLL_EAST); |
- EXPECT_FALSE(overscroll_complete()); |
- |
- // Dispatch a mouse event, the overscroll should be cancelled. |
- generator.PressLeftButton(); |
- EXPECT_EQ(current_mode(), OVERSCROLL_NONE); |
- EXPECT_FALSE(overscroll_complete()); |
- |
- // We should be able to restart the overscroll without lifting the finger. |
- generator.MoveTouch(gfx::Point(touch_x + touch_start_threshold() + 1, 0)); |
- EXPECT_EQ(current_mode(), OVERSCROLL_EAST); |
- EXPECT_FALSE(overscroll_complete()); |
-} |
- |
-} // namespace content |