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

Side by Side Diff: ui/aura/gestures/gesture_recognizer_unittest.cc

Issue 133273013: Consuming any touch move before SCROLL_START prevents the scroll from occuring in Aura (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/scoped_vector.h" 6 #include "base/memory/scoped_vector.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/timer/timer.h" 9 #include "base/timer/timer.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 3723 matching lines...) Expand 10 before | Expand all | Expand 10 after
3734 3734
3735 delegate->Reset(); 3735 delegate->Reset();
3736 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201), 3736 ui::TouchEvent release1(ui::ET_TOUCH_RELEASED, gfx::Point(101, 201),
3737 kTouchId, tes.LeapForward(50)); 3737 kTouchId, tes.LeapForward(50));
3738 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release1); 3738 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release1);
3739 EXPECT_TRUE(delegate->show_press()); 3739 EXPECT_TRUE(delegate->show_press());
3740 EXPECT_FALSE(delegate->tap_cancel()); 3740 EXPECT_FALSE(delegate->tap_cancel());
3741 EXPECT_TRUE(delegate->tap()); 3741 EXPECT_TRUE(delegate->tap());
3742 } 3742 }
3743 3743
3744 // Test that consuming the first move touch event prevents a scroll.
3745 TEST_F(GestureRecognizerTest, GestureEventConsumedTouchMoveScrollTest) {
3746 scoped_ptr<QueueTouchEventDelegate> delegate(
3747 new QueueTouchEventDelegate(dispatcher()));
3748 TimedEvents tes;
3749 const int kTouchId = 7;
3750 gfx::Rect bounds(0, 0, 1000, 1000);
3751 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
3752 delegate.get(), -1234, bounds, root_window()));
3753
3754 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0),
3755 kTouchId, tes.Now());
3756 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press);
3757 delegate->ReceivedAck();
3758
3759 ui::TouchEvent move1(ui::ET_TOUCH_MOVED, gfx::Point(2, 2),
3760 kTouchId, tes.Now());
3761 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move1);
3762 delegate->ReceivedAckPreventDefaulted();
3763
3764 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(20, 20),
3765 kTouchId, tes.Now());
3766 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move2);
3767 delegate->ReceivedAck();
3768
3769 EXPECT_FALSE(delegate->scroll_update());
sadrul 2014/01/17 17:11:35 EXPECT_FALSE(scroll_begin()) too?
tdresser 2014/01/17 19:48:42 Done.
3770 }
sadrul 2014/01/17 17:11:35 Add a test as above, with the addition of a second
tdresser 2014/01/17 19:48:42 Done.
3771
3772 // Test that consuming the first move touch doesn't prevent a tap.
3773 TEST_F(GestureRecognizerTest, GestureEventConsumedTouchMoveTapTest) {
3774 scoped_ptr<QueueTouchEventDelegate> delegate(
3775 new QueueTouchEventDelegate(dispatcher()));
3776 TimedEvents tes;
3777 const int kTouchId = 7;
3778 gfx::Rect bounds(0, 0, 1000, 1000);
3779 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
3780 delegate.get(), -1234, bounds, root_window()));
3781
3782 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(0, 0),
3783 kTouchId, tes.Now());
3784 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press);
3785 delegate->ReceivedAck();
3786
3787 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(2, 2),
3788 kTouchId, tes.Now());
3789 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move);
3790 delegate->ReceivedAckPreventDefaulted();
3791
3792 ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(2, 2),
3793 kTouchId, tes.LeapForward(50));
3794 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release);
3795 delegate->ReceivedAck();
3796
3797 EXPECT_TRUE(delegate->tap());
3798 }
3799
3800 // Test that consuming the first move touch doesn't prevent a long press.
3801 TEST_F(GestureRecognizerTest, GestureEventConsumedTouchMoveLongPressTest) {
3802 scoped_ptr<QueueTouchEventDelegate> delegate(
3803 new QueueTouchEventDelegate(dispatcher()));
3804 TimedEvents tes;
3805 const int kWindowWidth = 123;
3806 const int kWindowHeight = 45;
3807 const int kTouchId = 2;
3808 gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
3809 scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
3810 delegate.get(), -1234, bounds, root_window()));
3811
3812 delegate->Reset();
3813
3814 TimerTestGestureRecognizer* gesture_recognizer =
3815 new TimerTestGestureRecognizer();
3816
3817 ScopedGestureRecognizerSetter gr_setter(gesture_recognizer);
3818
3819 ui::TouchEvent press1(ui::ET_TOUCH_PRESSED, gfx::Point(101, 201),
3820 kTouchId, tes.Now());
3821 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press1);
3822 delegate->ReceivedAck();
3823
3824 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(103, 203),
3825 kTouchId, tes.Now());
3826 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move);
3827 delegate->ReceivedAckPreventDefaulted();
3828
3829 // Wait until the timer runs out
3830 delegate->WaitUntilReceivedGesture(ui::ET_GESTURE_LONG_PRESS);
3831 EXPECT_TRUE(delegate->long_press());
3832 }
3833
3744 } // namespace test 3834 } // namespace test
3745 } // namespace aura 3835 } // namespace aura
OLDNEW
« no previous file with comments | « no previous file | ui/events/gestures/gesture_sequence.h » ('j') | ui/events/gestures/gesture_sequence.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698