| Index: content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
|
| diff --git a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc b/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
|
| index d436f45a4a5fe4cbc8047f4155d946d5d8b4818f..29e4b54f0226b32ebde5e8b9d2dccc5d4308b6d1 100644
|
| --- a/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
|
| +++ b/content/browser/renderer_host/input/tap_suppression_controller_unittest.cc
|
| @@ -15,6 +15,7 @@ namespace content {
|
| class MockTapSuppressionController : public TapSuppressionController,
|
| public TapSuppressionControllerClient {
|
| public:
|
| + using TapSuppressionController::DISABLED;
|
| using TapSuppressionController::NOTHING;
|
| using TapSuppressionController::GFC_IN_PROGRESS;
|
| using TapSuppressionController::TAP_DOWN_STASHED;
|
| @@ -32,10 +33,8 @@ class MockTapSuppressionController : public TapSuppressionController,
|
| STASHED_TAP_DOWN_FORWARDED = 1 << 7,
|
| };
|
|
|
| - MockTapSuppressionController()
|
| - : TapSuppressionController(this),
|
| - max_cancel_to_down_time_in_ms_(1),
|
| - max_tap_gap_time_in_ms_(1),
|
| + MockTapSuppressionController(const TapSuppressionController::Config& config)
|
| + : TapSuppressionController(this, config),
|
| last_actions_(NONE),
|
| time_(),
|
| timer_started_(false) {
|
| @@ -86,14 +85,6 @@ class MockTapSuppressionController : public TapSuppressionController,
|
| }
|
| }
|
|
|
| - void set_max_cancel_to_down_time_in_ms(int val) {
|
| - max_cancel_to_down_time_in_ms_ = val;
|
| - }
|
| -
|
| - void set_max_tap_gap_time_in_ms(int val) {
|
| - max_tap_gap_time_in_ms_ = val;
|
| - }
|
| -
|
| State state() { return state_; }
|
|
|
| int last_actions() { return last_actions_; }
|
| @@ -114,14 +105,6 @@ class MockTapSuppressionController : public TapSuppressionController,
|
|
|
| private:
|
| // TapSuppressionControllerClient implementation
|
| - virtual int MaxCancelToDownTimeInMs() OVERRIDE {
|
| - return max_cancel_to_down_time_in_ms_;
|
| - }
|
| -
|
| - virtual int MaxTapGapTimeInMs() OVERRIDE {
|
| - return max_tap_gap_time_in_ms_;
|
| - }
|
| -
|
| virtual void DropStashedTapDown() OVERRIDE {
|
| last_actions_ |= TAP_DOWN_DROPPED;
|
| }
|
| @@ -136,9 +119,6 @@ class MockTapSuppressionController : public TapSuppressionController,
|
| using TapSuppressionController::ShouldDeferTapDown;
|
| using TapSuppressionController::ShouldSuppressTapEnd;
|
|
|
| - int max_cancel_to_down_time_in_ms_;
|
| - int max_tap_gap_time_in_ms_;
|
| -
|
| int last_actions_;
|
|
|
| base::TimeTicks time_;
|
| @@ -158,22 +138,28 @@ class TapSuppressionControllerTest : public testing::Test {
|
| protected:
|
| // testing::Test
|
| virtual void SetUp() {
|
| - tap_suppression_controller_.reset(new MockTapSuppressionController());
|
| + tap_suppression_controller_.reset(
|
| + new MockTapSuppressionController(GetConfig()));
|
| }
|
|
|
| virtual void TearDown() {
|
| tap_suppression_controller_.reset();
|
| }
|
|
|
| + static TapSuppressionController::Config GetConfig() {
|
| + TapSuppressionController::Config config;
|
| + config.enabled = true;
|
| + config.max_cancel_to_down_time = base::TimeDelta::FromMilliseconds(10);
|
| + config.max_tap_gap_time = base::TimeDelta::FromMilliseconds(10);
|
| + return config;
|
| + }
|
| +
|
| scoped_ptr<MockTapSuppressionController> tap_suppression_controller_;
|
| };
|
|
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes before
|
| // TapDown and everything happens without any delays.
|
| TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapFast) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -207,9 +193,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapFast) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes before
|
| // TapDown, but there is a small delay between TapDown and TapUp.
|
| TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapUp) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -251,9 +234,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapUp) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes before
|
| // TapDown, but there is a long delay between TapDown and TapUp.
|
| TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapUp) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -294,9 +274,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapUp) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes before
|
| // TapDown, but there is a small delay between the Ack and TapDown.
|
| TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapDown) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -338,9 +315,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapInsufficientlyLateTapDown) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes before
|
| // TapDown, but there is a long delay between the Ack and TapDown.
|
| TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapDown) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -381,9 +355,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckBeforeTapSufficientlyLateTapDown) {
|
| // Test TapSuppressionController for when unprocessed GestureFlingCancel Ack
|
| // comes after TapDown and everything happens without any delay.
|
| TEST_F(TapSuppressionControllerTest, GFCAckUnprocessedAfterTapFast) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -417,9 +388,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckUnprocessedAfterTapFast) {
|
| // Test TapSuppressionController for when processed GestureFlingCancel Ack comes
|
| // after TapDown and everything happens without any delay.
|
| TEST_F(TapSuppressionControllerTest, GFCAckProcessedAfterTapFast) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -453,9 +421,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckProcessedAfterTapFast) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes after
|
| // TapDown and there is a small delay between the Ack and TapUp.
|
| TEST_F(TapSuppressionControllerTest, GFCAckAfterTapInsufficientlyLateTapUp) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -497,9 +462,6 @@ TEST_F(TapSuppressionControllerTest, GFCAckAfterTapInsufficientlyLateTapUp) {
|
| // Test TapSuppressionController for when GestureFlingCancel Ack comes after
|
| // TapDown and there is a long delay between the Ack and TapUp.
|
| TEST_F(TapSuppressionControllerTest, GFCAckAfterTapSufficientlyLateTapUp) {
|
| - tap_suppression_controller_->set_max_cancel_to_down_time_in_ms(10);
|
| - tap_suppression_controller_->set_max_tap_gap_time_in_ms(10);
|
| -
|
| // Send GestureFlingCancel.
|
| tap_suppression_controller_->SendGestureFlingCancel();
|
| EXPECT_EQ(MockTapSuppressionController::NONE,
|
| @@ -537,4 +499,41 @@ TEST_F(TapSuppressionControllerTest, GFCAckAfterTapSufficientlyLateTapUp) {
|
| tap_suppression_controller_->state());
|
| }
|
|
|
| +// Test that no suppression occurs if the TapSuppressionController is disabled.
|
| +TEST_F(TapSuppressionControllerTest, NoSuppressionIfDisabled) {
|
| + TapSuppressionController::Config disabled_config;
|
| + disabled_config.enabled = false;
|
| + tap_suppression_controller_.reset(
|
| + new MockTapSuppressionController(disabled_config));
|
| +
|
| + // Send GestureFlingCancel.
|
| + tap_suppression_controller_->SendGestureFlingCancel();
|
| + EXPECT_EQ(MockTapSuppressionController::NONE,
|
| + tap_suppression_controller_->last_actions());
|
| + EXPECT_EQ(MockTapSuppressionController::DISABLED,
|
| + tap_suppression_controller_->state());
|
| +
|
| + // Send GestureFlingCancel Ack.
|
| + tap_suppression_controller_->SendGestureFlingCancelAck(true);
|
| + EXPECT_EQ(MockTapSuppressionController::NONE,
|
| + tap_suppression_controller_->last_actions());
|
| + EXPECT_EQ(MockTapSuppressionController::DISABLED,
|
| + tap_suppression_controller_->state());
|
| +
|
| + // Send TapDown. This TapDown should not be suppressed.
|
| + tap_suppression_controller_->SendTapDown();
|
| + EXPECT_EQ(MockTapSuppressionController::TAP_DOWN_FORWARDED,
|
| + tap_suppression_controller_->last_actions());
|
| + EXPECT_EQ(MockTapSuppressionController::DISABLED,
|
| + tap_suppression_controller_->state());
|
| +
|
| + // Send TapUp. This TapUp should not be suppressed.
|
| + tap_suppression_controller_->SendTapUp();
|
| + EXPECT_EQ(MockTapSuppressionController::TAP_UP_FORWARDED,
|
| + tap_suppression_controller_->last_actions());
|
| + EXPECT_EQ(MockTapSuppressionController::DISABLED,
|
| + tap_suppression_controller_->state());
|
| +}
|
| +
|
| +
|
| } // namespace content
|
|
|