OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "content/browser/renderer_host/input/passthrough_touch_event_queue.h" | 5 #include "content/browser/renderer_host/input/passthrough_touch_event_queue.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1243 SetUpForTouchMoveSlopTesting(kSlopLengthDips); | 1243 SetUpForTouchMoveSlopTesting(kSlopLengthDips); |
1244 | 1244 |
1245 // Queue a TouchStart. | 1245 // Queue a TouchStart. |
1246 PressTouchPoint(0, 0); | 1246 PressTouchPoint(0, 0); |
1247 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1247 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1248 ASSERT_EQ(1U, GetAndResetSentEventCount()); | 1248 ASSERT_EQ(1U, GetAndResetSentEventCount()); |
1249 ASSERT_EQ(1U, GetAndResetAckedEventCount()); | 1249 ASSERT_EQ(1U, GetAndResetAckedEventCount()); |
1250 | 1250 |
1251 // TouchMove's movedBeyondSlopRegion within the slop region is set to false. | 1251 // TouchMove's movedBeyondSlopRegion within the slop region is set to false. |
1252 MoveTouchPoint(0, 0, kHalfSlopLengthDips); | 1252 MoveTouchPoint(0, 0, kHalfSlopLengthDips); |
1253 EXPECT_EQ(1U, queued_event_count()); | 1253 EXPECT_EQ(0U, queued_event_count()); |
1254 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1254 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1255 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1256 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1255 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1257 EXPECT_FALSE(acked_event().moved_beyond_slop_region); | 1256 EXPECT_FALSE(acked_event().moved_beyond_slop_region); |
1258 | 1257 |
1259 MoveTouchPoint(0, kHalfSlopLengthDips, 0); | 1258 MoveTouchPoint(0, kHalfSlopLengthDips, 0); |
1260 EXPECT_EQ(1U, queued_event_count()); | 1259 EXPECT_EQ(0U, queued_event_count()); |
1261 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1260 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1262 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1263 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1261 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1264 EXPECT_FALSE(acked_event().moved_beyond_slop_region); | 1262 EXPECT_FALSE(acked_event().moved_beyond_slop_region); |
1265 | 1263 |
1266 MoveTouchPoint(0, -kHalfSlopLengthDips, 0); | 1264 MoveTouchPoint(0, -kHalfSlopLengthDips, 0); |
1267 EXPECT_EQ(1U, queued_event_count()); | 1265 EXPECT_EQ(0U, queued_event_count()); |
1268 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1266 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1269 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1270 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1267 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1271 EXPECT_FALSE(acked_event().moved_beyond_slop_region); | 1268 EXPECT_FALSE(acked_event().moved_beyond_slop_region); |
1272 | 1269 |
1273 MoveTouchPoint(0, -kSlopLengthDips, 0); | 1270 MoveTouchPoint(0, -kSlopLengthDips, 0); |
1274 EXPECT_EQ(1U, queued_event_count()); | 1271 EXPECT_EQ(0U, queued_event_count()); |
1275 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1272 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1276 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1277 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1273 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1278 EXPECT_FALSE(acked_event().moved_beyond_slop_region); | 1274 EXPECT_FALSE(acked_event().moved_beyond_slop_region); |
1279 | 1275 |
1280 MoveTouchPoint(0, 0, kSlopLengthDips); | 1276 MoveTouchPoint(0, 0, kSlopLengthDips); |
1281 EXPECT_EQ(1U, queued_event_count()); | 1277 EXPECT_EQ(0U, queued_event_count()); |
1282 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1278 EXPECT_EQ(0U, GetAndResetSentEventCount()); |
1283 EXPECT_EQ(1U, GetAndResetSentEventCount()); | |
1284 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1279 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1285 EXPECT_FALSE(acked_event().moved_beyond_slop_region); | 1280 EXPECT_FALSE(acked_event().moved_beyond_slop_region); |
1286 | 1281 |
1287 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's | 1282 // When a TouchMove exceeds the (Euclidean) distance, the TouchMove's |
1288 // movedBeyondSlopRegion is set to true. | 1283 // movedBeyondSlopRegion is set to true. |
1289 const float kFortyFiveDegreeSlopLengthXY = | 1284 const float kFortyFiveDegreeSlopLengthXY = |
1290 kSlopLengthDips * std::sqrt(2.f) / 2; | 1285 kSlopLengthDips * std::sqrt(2.f) / 2; |
1291 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f, | 1286 MoveTouchPoint(0, kFortyFiveDegreeSlopLengthXY + .2f, |
1292 kFortyFiveDegreeSlopLengthXY + .2f); | 1287 kFortyFiveDegreeSlopLengthXY + .2f); |
1293 EXPECT_EQ(1U, queued_event_count()); | 1288 EXPECT_EQ(1U, queued_event_count()); |
1294 EXPECT_EQ(1U, GetAndResetSentEventCount()); | 1289 EXPECT_EQ(1U, GetAndResetSentEventCount()); |
1295 EXPECT_EQ(0U, GetAndResetAckedEventCount()); | 1290 EXPECT_EQ(0U, GetAndResetAckedEventCount()); |
1296 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1291 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1297 EXPECT_EQ(1U, GetAndResetAckedEventCount()); | 1292 EXPECT_EQ(1U, GetAndResetAckedEventCount()); |
1298 EXPECT_TRUE(acked_event().moved_beyond_slop_region); | |
1299 } | 1293 } |
1300 | 1294 |
1301 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true | 1295 // Tests that even very small TouchMove's movedBeyondSlopRegion is set to true |
1302 // when the slop region's dimension is 0. | 1296 // when the slop region's dimension is 0. |
1303 TEST_F(PassthroughTouchEventQueueTest, | 1297 TEST_F(PassthroughTouchEventQueueTest, |
1304 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) { | 1298 MovedBeyondSlopRegionAlwaysTrueIfDimensionZero) { |
1305 // Queue a TouchStart. | 1299 // Queue a TouchStart. |
1306 PressTouchPoint(0, 0); | 1300 PressTouchPoint(0, 0); |
1307 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 1301 SendTouchEventAck(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
1308 ASSERT_EQ(1U, GetAndResetSentEventCount()); | 1302 ASSERT_EQ(1U, GetAndResetSentEventCount()); |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1725 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType()); | 1719 EXPECT_EQ(WebInputEvent::kTouchMove, sent_event().GetType()); |
1726 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); | 1720 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); |
1727 | 1721 |
1728 ReleaseTouchPoint(0); | 1722 ReleaseTouchPoint(0); |
1729 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); | 1723 SendTouchEventAck(INPUT_EVENT_ACK_STATE_CONSUMED); |
1730 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType()); | 1724 EXPECT_EQ(WebInputEvent::kTouchEnd, sent_event().GetType()); |
1731 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); | 1725 EXPECT_FALSE(sent_event().touch_start_or_first_touch_move); |
1732 } | 1726 } |
1733 | 1727 |
1734 } // namespace content | 1728 } // namespace content |
OLD | NEW |