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

Side by Side Diff: content/browser/renderer_host/input/touch_event_queue_unittest.cc

Issue 1218663006: Use new WebTouchPoint field names. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/location.h" 6 #include "base/location.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 float y1) { 177 float y1) {
178 touch_event_.MovePoint(index0, x0, y0); 178 touch_event_.MovePoint(index0, x0, y0);
179 touch_event_.MovePoint(index1, x1, y1); 179 touch_event_.MovePoint(index1, x1, y1);
180 SendTouchEvent(); 180 SendTouchEvent();
181 } 181 }
182 182
183 void ChangeTouchPointRadius(int index, float radius_x, float radius_y) { 183 void ChangeTouchPointRadius(int index, float radius_x, float radius_y) {
184 CHECK_GE(index, 0); 184 CHECK_GE(index, 0);
185 CHECK_LT(index, touch_event_.touchesLengthCap); 185 CHECK_LT(index, touch_event_.touchesLengthCap);
186 WebTouchPoint& point = touch_event_.touches[index]; 186 WebTouchPoint& point = touch_event_.touches[index];
187 point.radiusX = radius_x; 187 point.width = radius_x;
188 point.radiusY = radius_y; 188 point.height = radius_y;
189 touch_event_.touches[index].state = WebTouchPoint::StateMoved; 189 touch_event_.touches[index].state = WebTouchPoint::StateMoved;
190 touch_event_.causesScrollingIfUncanceled = true; 190 touch_event_.causesScrollingIfUncanceled = true;
191 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, 191 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove,
192 touch_event_.timeStampSeconds, 192 touch_event_.timeStampSeconds,
193 &touch_event_); 193 &touch_event_);
194 SendTouchEvent(); 194 SendTouchEvent();
195 } 195 }
196 196
197 void ChangeTouchPointRotationAngle(int index, float rotation_angle) { 197 void ChangeTouchPointRotationAngle(int index, float rotation_angle) {
198 CHECK_GE(index, 0); 198 CHECK_GE(index, 0);
199 CHECK_LT(index, touch_event_.touchesLengthCap); 199 CHECK_LT(index, touch_event_.touchesLengthCap);
200 WebTouchPoint& point = touch_event_.touches[index]; 200 WebTouchPoint& point = touch_event_.touches[index];
201 point.rotationAngle = rotation_angle; 201 point.rotationAngle = rotation_angle;
202 touch_event_.touches[index].state = WebTouchPoint::StateMoved; 202 touch_event_.touches[index].state = WebTouchPoint::StateMoved;
203 touch_event_.causesScrollingIfUncanceled = true; 203 touch_event_.causesScrollingIfUncanceled = true;
204 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, 204 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove,
205 touch_event_.timeStampSeconds, 205 touch_event_.timeStampSeconds,
206 &touch_event_); 206 &touch_event_);
207 SendTouchEvent(); 207 SendTouchEvent();
208 } 208 }
209 209
210 void ChangeTouchPointForce(int index, float force) { 210 void ChangeTouchPointForce(int index, float force) {
211 CHECK_GE(index, 0); 211 CHECK_GE(index, 0);
212 CHECK_LT(index, touch_event_.touchesLengthCap); 212 CHECK_LT(index, touch_event_.touchesLengthCap);
213 WebTouchPoint& point = touch_event_.touches[index]; 213 WebTouchPoint& point = touch_event_.touches[index];
214 point.force = force; 214 point.pressure = force;
215 touch_event_.touches[index].state = WebTouchPoint::StateMoved; 215 touch_event_.touches[index].state = WebTouchPoint::StateMoved;
216 touch_event_.causesScrollingIfUncanceled = true; 216 touch_event_.causesScrollingIfUncanceled = true;
217 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove, 217 WebTouchEventTraits::ResetType(WebInputEvent::TouchMove,
218 touch_event_.timeStampSeconds, 218 touch_event_.timeStampSeconds,
219 &touch_event_); 219 &touch_event_);
220 SendTouchEvent(); 220 SendTouchEvent();
221 } 221 }
222 222
223 void ReleaseTouchPoint(int index) { 223 void ReleaseTouchPoint(int index) {
224 touch_event_.ReleasePoint(index); 224 touch_event_.ReleasePoint(index);
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 PressTouchPoint(1, 1); 827 PressTouchPoint(1, 1);
828 EXPECT_EQ(1U, queued_event_count()); 828 EXPECT_EQ(1U, queued_event_count());
829 EXPECT_EQ(1U, GetAndResetSentEventCount()); 829 EXPECT_EQ(1U, GetAndResetSentEventCount());
830 EXPECT_EQ(0U, GetAndResetAckedEventCount()); 830 EXPECT_EQ(0U, GetAndResetAckedEventCount());
831 831
832 // Create a touch event that will be queued synchronously by a touch ack. 832 // Create a touch event that will be queued synchronously by a touch ack.
833 // Note, this will be triggered by all subsequent touch acks. 833 // Note, this will be triggered by all subsequent touch acks.
834 WebTouchEvent followup_event; 834 WebTouchEvent followup_event;
835 followup_event.type = WebInputEvent::TouchMove; 835 followup_event.type = WebInputEvent::TouchMove;
836 followup_event.touchesLength = 1; 836 followup_event.touchesLength = 1;
837 followup_event.touches[0].id = 0; 837 followup_event.touches[0].pointerId = 0;
838 followup_event.touches[0].state = WebTouchPoint::StateMoved; 838 followup_event.touches[0].state = WebTouchPoint::StateMoved;
839 SetFollowupEvent(followup_event); 839 SetFollowupEvent(followup_event);
840 840
841 // Receive an ACK for the press. This should cause the followup touch-move to 841 // Receive an ACK for the press. This should cause the followup touch-move to
842 // be sent to the renderer. 842 // be sent to the renderer.
843 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 843 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
844 EXPECT_EQ(1U, queued_event_count()); 844 EXPECT_EQ(1U, queued_event_count());
845 EXPECT_EQ(1U, GetAndResetSentEventCount()); 845 EXPECT_EQ(1U, GetAndResetSentEventCount());
846 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 846 EXPECT_EQ(1U, GetAndResetAckedEventCount());
847 EXPECT_EQ(INPUT_EVENT_ACK_STATE_CONSUMED, acked_event_state()); 847 EXPECT_EQ(INPUT_EVENT_ACK_STATE_CONSUMED, acked_event_state());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 896 EXPECT_EQ(1U, GetAndResetAckedEventCount());
897 } 897 }
898 898
899 // Tests that followup events triggered by an immediate ack from 899 // Tests that followup events triggered by an immediate ack from
900 // TouchEventQueue::QueueEvent() are properly handled. 900 // TouchEventQueue::QueueEvent() are properly handled.
901 TEST_F(TouchEventQueueTest, ImmediateAckWithFollowupEvents) { 901 TEST_F(TouchEventQueueTest, ImmediateAckWithFollowupEvents) {
902 // Create a touch event that will be queued synchronously by a touch ack. 902 // Create a touch event that will be queued synchronously by a touch ack.
903 WebTouchEvent followup_event; 903 WebTouchEvent followup_event;
904 followup_event.type = WebInputEvent::TouchStart; 904 followup_event.type = WebInputEvent::TouchStart;
905 followup_event.touchesLength = 1; 905 followup_event.touchesLength = 1;
906 followup_event.touches[0].id = 1; 906 followup_event.touches[0].pointerId = 1;
907 followup_event.touches[0].state = WebTouchPoint::StatePressed; 907 followup_event.touches[0].state = WebTouchPoint::StatePressed;
908 SetFollowupEvent(followup_event); 908 SetFollowupEvent(followup_event);
909 909
910 // Now, enqueue a stationary touch that will not be forwarded. This should be 910 // Now, enqueue a stationary touch that will not be forwarded. This should be
911 // immediately ack'ed with "NO_CONSUMER_EXISTS". The followup event should 911 // immediately ack'ed with "NO_CONSUMER_EXISTS". The followup event should
912 // then be enqueued and immediately sent to the renderer. 912 // then be enqueued and immediately sent to the renderer.
913 WebTouchEvent stationary_event; 913 WebTouchEvent stationary_event;
914 stationary_event.touchesLength = 1; 914 stationary_event.touchesLength = 1;
915 stationary_event.type = WebInputEvent::TouchMove; 915 stationary_event.type = WebInputEvent::TouchMove;
916 stationary_event.touches[0].id = 1; 916 stationary_event.touches[0].pointerId = 1;
917 stationary_event.touches[0].state = WebTouchPoint::StateStationary; 917 stationary_event.touches[0].state = WebTouchPoint::StateStationary;
918 SendTouchEvent(stationary_event); 918 SendTouchEvent(stationary_event);
919 919
920 EXPECT_EQ(1U, queued_event_count()); 920 EXPECT_EQ(1U, queued_event_count());
921 EXPECT_EQ(1U, GetAndResetSentEventCount()); 921 EXPECT_EQ(1U, GetAndResetSentEventCount());
922 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 922 EXPECT_EQ(1U, GetAndResetAckedEventCount());
923 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state()); 923 EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, acked_event_state());
924 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type); 924 EXPECT_EQ(WebInputEvent::TouchMove, acked_event().type);
925 } 925 }
926 926
(...skipping 1498 matching lines...) Expand 10 before | Expand all | Expand 10 after
2425 2425
2426 TEST_F(TouchEventQueueTest, UnseenTouchPointerIdsNotForwarded) { 2426 TEST_F(TouchEventQueueTest, UnseenTouchPointerIdsNotForwarded) {
2427 SyntheticWebTouchEvent event; 2427 SyntheticWebTouchEvent event;
2428 event.PressPoint(0, 0); 2428 event.PressPoint(0, 0);
2429 SendTouchEvent(event); 2429 SendTouchEvent(event);
2430 EXPECT_EQ(1U, GetAndResetSentEventCount()); 2430 EXPECT_EQ(1U, GetAndResetSentEventCount());
2431 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 2431 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
2432 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2432 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2433 2433
2434 // Give the touchmove a previously unseen pointer id; it should not be sent. 2434 // Give the touchmove a previously unseen pointer id; it should not be sent.
2435 int press_id = event.touches[0].id; 2435 int press_id = event.touches[0].pointerId;
2436 event.MovePoint(0, 1, 1); 2436 event.MovePoint(0, 1, 1);
2437 event.touches[0].id = 7; 2437 event.touches[0].pointerId = 7;
2438 SendTouchEvent(event); 2438 SendTouchEvent(event);
2439 EXPECT_EQ(0U, GetAndResetSentEventCount()); 2439 EXPECT_EQ(0U, GetAndResetSentEventCount());
2440 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2440 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2441 2441
2442 // Give the touchmove a valid id; it should be sent. 2442 // Give the touchmove a valid id; it should be sent.
2443 event.touches[0].id = press_id; 2443 event.touches[0].pointerId = press_id;
2444 SendTouchEvent(event); 2444 SendTouchEvent(event);
2445 EXPECT_EQ(1U, GetAndResetSentEventCount()); 2445 EXPECT_EQ(1U, GetAndResetSentEventCount());
2446 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 2446 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
2447 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2447 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2448 2448
2449 // Do the same for release. 2449 // Do the same for release.
2450 event.ReleasePoint(0); 2450 event.ReleasePoint(0);
2451 event.touches[0].id = 11; 2451 event.touches[0].pointerId = 11;
2452 SendTouchEvent(event); 2452 SendTouchEvent(event);
2453 EXPECT_EQ(0U, GetAndResetSentEventCount()); 2453 EXPECT_EQ(0U, GetAndResetSentEventCount());
2454 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2454 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2455 2455
2456 // Give the touchmove a valid id; it should be sent. 2456 // Give the touchmove a valid id; it should be sent.
2457 event.touches[0].id = press_id; 2457 event.touches[0].pointerId = press_id;
2458 SendTouchEvent(event); 2458 SendTouchEvent(event);
2459 EXPECT_EQ(1U, GetAndResetSentEventCount()); 2459 EXPECT_EQ(1U, GetAndResetSentEventCount());
2460 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); 2460 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED);
2461 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2461 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2462 } 2462 }
2463 2463
2464 // Tests that touch points states are correct in TouchMove events. 2464 // Tests that touch points states are correct in TouchMove events.
2465 TEST_F(TouchEventQueueTest, PointerStatesInTouchMove) { 2465 TEST_F(TouchEventQueueTest, PointerStatesInTouchMove) {
2466 PressTouchPoint(1, 1); 2466 PressTouchPoint(1, 1);
2467 PressTouchPoint(2, 2); 2467 PressTouchPoint(2, 2);
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
2606 // TouchMove should be allowed and test for touches state. 2606 // TouchMove should be allowed and test for touches state.
2607 const WebTouchEvent& event2 = sent_event(); 2607 const WebTouchEvent& event2 = sent_event();
2608 EXPECT_EQ(WebInputEvent::TouchMove, event2.type); 2608 EXPECT_EQ(WebInputEvent::TouchMove, event2.type);
2609 EXPECT_EQ(WebTouchPoint::StateStationary, event2.touches[0].state); 2609 EXPECT_EQ(WebTouchPoint::StateStationary, event2.touches[0].state);
2610 EXPECT_EQ(WebTouchPoint::StateMoved, event2.touches[1].state); 2610 EXPECT_EQ(WebTouchPoint::StateMoved, event2.touches[1].state);
2611 EXPECT_EQ(1U, GetAndResetSentEventCount()); 2611 EXPECT_EQ(1U, GetAndResetSentEventCount());
2612 EXPECT_EQ(1U, GetAndResetAckedEventCount()); 2612 EXPECT_EQ(1U, GetAndResetAckedEventCount());
2613 } 2613 }
2614 2614
2615 } // namespace content 2615 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698