Revert "[Tizen] Appendix log for ttrace + Print keycode and timestamp"
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-TouchEventCombiner.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include <dali-test-suite-utils.h>
19 #include <dali/integration-api/events/hover-event-integ.h>
20 #include <dali/integration-api/events/touch-event-combiner.h>
21 #include <dali/integration-api/events/touch-event-integ.h>
22 #include <dali/public-api/dali-core.h>
23 #include <stdlib.h>
24
25 #include <iostream>
26
27 using namespace Dali;
28 using namespace Dali::Integration;
29
30 namespace
31 {
32 Point GeneratePoint(int deviceId, PointState::Type state, float x, float y)
33 {
34   Point point;
35   point.SetDeviceId(deviceId);
36   point.SetState(state);
37   point.SetScreenPosition(Vector2(x, y));
38   return point;
39 }
40 } // namespace
41
42 void utc_dali_touch_event_combiner_startup(void)
43 {
44   test_return_value = TET_UNDEF;
45 }
46
47 void utc_dali_touch_event_combiner_cleanup(void)
48 {
49   test_return_value = TET_PASS;
50 }
51
52 int UtcDaliTouchEventCombinerConstructors(void)
53 {
54   TouchEventCombiner combiner1;
55   DALI_TEST_EQUALS(combiner1.GetMinimumMotionTimeThreshold(), static_cast<long unsigned>(1), TEST_LOCATION);
56   DALI_TEST_EQUALS(combiner1.GetMinimumMotionDistanceThreshold(), Vector2(1.0f, 1.0f), TEST_LOCATION);
57
58   TouchEventCombiner combiner2(10, 20.0f, 31.0f);
59   DALI_TEST_EQUALS(combiner2.GetMinimumMotionTimeThreshold(), static_cast<long unsigned>(10), TEST_LOCATION);
60   DALI_TEST_EQUALS(combiner2.GetMinimumMotionDistanceThreshold(), Vector2(20.0f, 31.0f), TEST_LOCATION);
61
62   TouchEventCombiner combiner3(10, Vector2(20.0f, 31.0f));
63   DALI_TEST_EQUALS(combiner3.GetMinimumMotionTimeThreshold(), static_cast<long unsigned>(10), TEST_LOCATION);
64   DALI_TEST_EQUALS(combiner3.GetMinimumMotionDistanceThreshold(), Vector2(20.0f, 31.0f), TEST_LOCATION);
65
66   // Boundary Checks
67
68   TouchEventCombiner combiner4(10, 0.0f, 0.0f);
69   DALI_TEST_EQUALS(combiner4.GetMinimumMotionDistanceThreshold(), Vector2(0.0f, 0.0f), TEST_LOCATION);
70
71   TouchEventCombiner combiner5(10, Vector2(0.0f, 0.0f));
72   DALI_TEST_EQUALS(combiner5.GetMinimumMotionDistanceThreshold(), Vector2(0.0f, 0.0f), TEST_LOCATION);
73   END_TEST;
74 }
75
76 int UtcDaliTouchEventCombinerConstructorsNegative(void)
77 {
78   try
79   {
80     TouchEventCombiner combiner(10, -20.0f, 31.0f);
81     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
82     tet_result(TET_FAIL);
83   }
84   catch(Dali::DaliException& e)
85   {
86     tet_result(TET_PASS);
87   }
88
89   try
90   {
91     TouchEventCombiner combiner(10, 20.0f, -31.0f);
92     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
93     tet_result(TET_FAIL);
94   }
95   catch(Dali::DaliException& e)
96   {
97     tet_result(TET_PASS);
98   }
99
100   try
101   {
102     TouchEventCombiner combiner(10, Vector2(-20.0f, 31.0f));
103     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
104     tet_result(TET_FAIL);
105   }
106   catch(Dali::DaliException& e)
107   {
108     tet_result(TET_PASS);
109   }
110
111   try
112   {
113     TouchEventCombiner combiner(10, Vector2(20.0f, -31.0f));
114     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
115     tet_result(TET_FAIL);
116   }
117   catch(Dali::DaliException& e)
118   {
119     tet_result(TET_PASS);
120   }
121   END_TEST;
122 }
123
124 int UtcDaliTouchEventCombinerSettersAndGetters(void)
125 {
126   TouchEventCombiner combiner;
127   unsigned long      time(10u);
128   Vector2            distance(40.0f, 30.0f);
129
130   DALI_TEST_CHECK(combiner.GetMinimumMotionTimeThreshold() != time);
131   DALI_TEST_CHECK(combiner.GetMinimumMotionDistanceThreshold() != distance);
132
133   combiner.SetMinimumMotionTimeThreshold(time);
134   DALI_TEST_EQUALS(combiner.GetMinimumMotionTimeThreshold(), time, TEST_LOCATION);
135
136   combiner.SetMinimumMotionDistanceThreshold(distance.x);
137   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), Vector2(distance.x, distance.x), TEST_LOCATION);
138
139   distance.x = 20.0f;
140   distance.y = 50.0f;
141   combiner.SetMinimumMotionDistanceThreshold(distance.x, distance.y);
142   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), distance, TEST_LOCATION);
143
144   distance.x = 100.0f;
145   distance.y = 20.0f;
146   combiner.SetMinimumMotionDistanceThreshold(distance);
147   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), distance, TEST_LOCATION);
148
149   // Boundary Checks
150
151   combiner.SetMinimumMotionDistanceThreshold(0.0f);
152   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), Vector2::ZERO, TEST_LOCATION);
153
154   combiner.SetMinimumMotionDistanceThreshold(0.0f, 0.0f);
155   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), Vector2::ZERO, TEST_LOCATION);
156
157   combiner.SetMinimumMotionDistanceThreshold(Vector2::ZERO);
158   DALI_TEST_EQUALS(combiner.GetMinimumMotionDistanceThreshold(), Vector2::ZERO, TEST_LOCATION);
159   END_TEST;
160 }
161
162 int UtcDaliTouchEventCombinerSettersNegative(void)
163 {
164   TouchEventCombiner combiner;
165
166   try
167   {
168     combiner.SetMinimumMotionDistanceThreshold(-100.0f);
169     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
170     tet_result(TET_FAIL);
171   }
172   catch(Dali::DaliException& e)
173   {
174     tet_result(TET_PASS);
175   }
176
177   try
178   {
179     combiner.SetMinimumMotionDistanceThreshold(-100.0f, 20.0f);
180     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
181     tet_result(TET_FAIL);
182   }
183   catch(Dali::DaliException& e)
184   {
185     tet_result(TET_PASS);
186   }
187
188   try
189   {
190     combiner.SetMinimumMotionDistanceThreshold(100.0f, -20.0f);
191     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
192     tet_result(TET_FAIL);
193   }
194   catch(Dali::DaliException& e)
195   {
196     tet_result(TET_PASS);
197   }
198
199   try
200   {
201     combiner.SetMinimumMotionDistanceThreshold(Vector2(-100.0f, 20.0f));
202     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
203     tet_result(TET_FAIL);
204   }
205   catch(Dali::DaliException& e)
206   {
207     tet_result(TET_PASS);
208   }
209
210   try
211   {
212     combiner.SetMinimumMotionDistanceThreshold(Vector2(100.0f, -20.0f));
213     tet_printf("%s: Should have asserted\n", TEST_LOCATION);
214     tet_result(TET_FAIL);
215   }
216   catch(Dali::DaliException& e)
217   {
218     tet_result(TET_PASS);
219   }
220   END_TEST;
221 }
222
223 int UtcDaliTouchEventCombinerSingleTouchNormal(void)
224 {
225   TouchEventCombiner combiner;
226   unsigned long      time(0u);
227
228   // Down event
229   {
230     Integration::TouchEvent touchEvent;
231     Integration::HoverEvent hoverEvent;
232     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
233
234     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
235     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
236     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
237     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
238     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
239   }
240
241   time++;
242
243   // Motion in X direction
244   {
245     Integration::TouchEvent touchEvent;
246     Integration::HoverEvent hoverEvent;
247     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 101.0f, 100.0f);
248
249     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
250     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
251     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
252     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
253     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
254   }
255
256   time++;
257
258   // Motion in Y direction
259   {
260     Integration::TouchEvent touchEvent;
261     Integration::HoverEvent hoverEvent;
262     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 101.0f, 101.0f);
263
264     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
265     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
266     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
267     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
268     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
269   }
270
271   // Motion event, but same time
272   {
273     Integration::TouchEvent touchEvent;
274     Integration::HoverEvent hoverEvent;
275     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
276
277     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
278   }
279
280   time++;
281
282   // Motion event, both X and Y movement
283   {
284     Integration::TouchEvent touchEvent;
285     Integration::HoverEvent hoverEvent;
286     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
287
288     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
289     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
290     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
291     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
292     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
293   }
294
295   time++;
296
297   // Motion event, no movement
298   {
299     Integration::TouchEvent touchEvent;
300     Integration::HoverEvent hoverEvent;
301     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
302
303     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
304   }
305
306   // Up event, no time diff, no movement
307   {
308     Integration::TouchEvent touchEvent;
309     Integration::HoverEvent hoverEvent;
310     Integration::Point      point = GeneratePoint(1, PointState::UP, 102.0f, 102.0f);
311
312     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
313     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
314     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
315     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
316     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
317   }
318   END_TEST;
319 }
320
321 int UtcDaliTouchEventCombinerSingleTouchMotionWithoutDown(void)
322 {
323   TouchEventCombiner combiner;
324   unsigned long      time(0u);
325
326   // Motion event
327   {
328     Integration::TouchEvent touchEvent;
329     Integration::HoverEvent hoverEvent;
330     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 100.0f, 100.0f);
331
332     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
333     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
334     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
335     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION);
336     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
337   }
338
339   time++;
340
341   // Motion event
342   {
343     Integration::TouchEvent touchEvent;
344     Integration::HoverEvent hoverEvent;
345     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
346
347     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
348     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
349     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
350     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
351     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
352   }
353   END_TEST;
354 }
355
356 int UtcDaliTouchEventCombinerSingleTouchMotionFollowedByDown(void)
357 {
358   TouchEventCombiner combiner;
359   unsigned long      time(0u);
360
361   // Motion event
362   {
363     Integration::TouchEvent touchEvent;
364     Integration::HoverEvent hoverEvent;
365     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 100.0f, 100.0f);
366
367     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
368     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
369     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
370     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION);
371     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
372   }
373
374   time++;
375
376   // Motion event
377   {
378     Integration::TouchEvent touchEvent;
379     Integration::HoverEvent hoverEvent;
380     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
381
382     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
383     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
384     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
385     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
386     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
387   }
388
389   time++;
390
391   // Motion event
392   {
393     Integration::TouchEvent touchEvent;
394     Integration::HoverEvent hoverEvent;
395     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 103.0f, 103.0f);
396
397     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
398     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
399     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
400     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
401     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
402   }
403
404   time++;
405
406   // Down event
407   {
408     Integration::TouchEvent touchEvent;
409     Integration::HoverEvent hoverEvent;
410     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 103.0f, 103.0f);
411
412     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
413     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
414     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
415     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
416     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
417     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
418     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
419     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), PointState::FINISHED, TEST_LOCATION);
420     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
421   }
422   END_TEST;
423 }
424
425 int UtcDaliTouchEventCombinerSingleTouchTwoDowns(void)
426 {
427   TouchEventCombiner combiner;
428   unsigned long      time(0u);
429
430   // Down event
431   {
432     Integration::TouchEvent touchEvent;
433     Integration::HoverEvent hoverEvent;
434     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
435
436     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
437     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
438     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
439     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
440     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
441   }
442
443   time++;
444
445   // Another down with the same ID
446   {
447     Integration::TouchEvent touchEvent;
448     Integration::HoverEvent hoverEvent;
449     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
450
451     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
452   }
453   END_TEST;
454 }
455
456 int UtcDaliTouchEventCombinerSingleTouchUpWithoutDown(void)
457 {
458   TouchEventCombiner combiner;
459   unsigned long      time(0u);
460
461   // Up event
462   {
463     Integration::TouchEvent touchEvent;
464     Integration::HoverEvent hoverEvent;
465     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
466
467     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
468   }
469
470   time++;
471
472   // Up event
473   {
474     Integration::TouchEvent touchEvent;
475     Integration::HoverEvent hoverEvent;
476     Integration::Point      point = GeneratePoint(1, PointState::UP, 102.0f, 102.0f);
477
478     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
479   }
480   END_TEST;
481 }
482
483 int UtcDaliTouchEventCombinerSingleTouchTwoUps(void)
484 {
485   TouchEventCombiner combiner;
486   unsigned long      time(0u);
487
488   // Down event
489   {
490     Integration::TouchEvent touchEvent;
491     Integration::HoverEvent hoverEvent;
492     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
493
494     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
495     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
496     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
497     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
498     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
499   }
500
501   time++;
502
503   // Up event
504   {
505     Integration::TouchEvent touchEvent;
506     Integration::HoverEvent hoverEvent;
507     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
508
509     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
510     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
511     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
512     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
513     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
514   }
515
516   time++;
517
518   // Another up event
519   {
520     Integration::TouchEvent touchEvent;
521     Integration::HoverEvent hoverEvent;
522     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
523
524     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
525   }
526   END_TEST;
527 }
528
529 int UtcDaliTouchEventCombinerSingleTouchUpWithDifferentId(void)
530 {
531   TouchEventCombiner combiner;
532   unsigned long      time(0u);
533
534   // Down event
535   {
536     Integration::TouchEvent touchEvent;
537     Integration::HoverEvent hoverEvent;
538     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
539
540     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
541     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
542     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
543     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
544     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
545   }
546
547   time++;
548
549   // Up event with different ID
550   {
551     Integration::TouchEvent touchEvent;
552     Integration::HoverEvent hoverEvent;
553     Integration::Point      point = GeneratePoint(2, PointState::UP, 100.0f, 100.0f);
554
555     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
556   }
557
558   time++;
559
560   // Up event
561   {
562     Integration::TouchEvent touchEvent;
563     Integration::HoverEvent hoverEvent;
564     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
565
566     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
567     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
568     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
569     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
570     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
571   }
572   END_TEST;
573 }
574
575 int UtcDaliTouchEventCombinerSingleTouchMotionWithDifferentId(void)
576 {
577   TouchEventCombiner combiner;
578   unsigned long      time(0u);
579
580   // Down event
581   {
582     Integration::TouchEvent touchEvent;
583     Integration::HoverEvent hoverEvent;
584     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
585
586     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
587     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
588     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
589     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
590     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
591   }
592
593   time++;
594
595   // Motion event with different ID
596   {
597     Integration::TouchEvent touchEvent;
598     Integration::HoverEvent hoverEvent;
599     Integration::Point      point = GeneratePoint(2, PointState::MOTION, 100.0f, 100.0f);
600
601     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_HOVER, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
602     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
603     DALI_TEST_EQUALS(hoverEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
604     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), PointState::STARTED, TEST_LOCATION);
605     DALI_TEST_EQUALS(hoverEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
606   }
607
608   time++;
609
610   // Motion event
611   {
612     Integration::TouchEvent touchEvent;
613     Integration::HoverEvent hoverEvent;
614     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 102.0f, 102.0f);
615
616     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
617     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
618     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
619     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
620     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
621   }
622   END_TEST;
623 }
624
625 int UtcDaliTouchEventCombinerMultiTouchNormal(void)
626 {
627   TouchEventCombiner combiner;
628   unsigned long      time(0u);
629
630   // 1st point down
631   {
632     Integration::TouchEvent touchEvent;
633     Integration::HoverEvent hoverEvent;
634     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
635
636     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
637     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
638     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
639     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
640     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
641   }
642
643   time++;
644
645   // 2nd point down
646   {
647     Integration::TouchEvent touchEvent;
648     Integration::HoverEvent hoverEvent;
649     Integration::Point      point = GeneratePoint(2, PointState::DOWN, 200.0f, 200.0f);
650
651     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
652     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 2u, TEST_LOCATION);
653     DALI_TEST_EQUALS(touchEvent.points[1].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
654     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), PointState::STATIONARY, TEST_LOCATION);
655     DALI_TEST_EQUALS(touchEvent.points[1].GetState(), point.GetState(), TEST_LOCATION);
656     DALI_TEST_EQUALS(touchEvent.points[1].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
657   }
658
659   time++;
660
661   // 1st point motion
662   {
663     Integration::TouchEvent touchEvent;
664     Integration::HoverEvent hoverEvent;
665     Integration::Point      point = GeneratePoint(1, PointState::MOTION, 101.0f, 100.0f);
666
667     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
668     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 2u, TEST_LOCATION);
669     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
670     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
671     DALI_TEST_EQUALS(touchEvent.points[1].GetState(), PointState::STATIONARY, TEST_LOCATION);
672     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
673   }
674
675   // 2nd point motion, no time diff
676   {
677     Integration::TouchEvent touchEvent;
678     Integration::HoverEvent hoverEvent;
679     Integration::Point      point = GeneratePoint(2, PointState::MOTION, 200.0f, 200.0f);
680
681     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
682   }
683
684   time++;
685
686   // 2nd point motion
687   {
688     Integration::TouchEvent touchEvent;
689     Integration::HoverEvent hoverEvent;
690     Integration::Point      point = GeneratePoint(2, PointState::MOTION, 201.0f, 201.0f);
691
692     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
693     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 2u, TEST_LOCATION);
694     DALI_TEST_EQUALS(touchEvent.points[1].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
695     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), PointState::STATIONARY, TEST_LOCATION);
696     DALI_TEST_EQUALS(touchEvent.points[1].GetState(), point.GetState(), TEST_LOCATION);
697     DALI_TEST_EQUALS(touchEvent.points[1].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
698   }
699
700   time++;
701
702   // 1st point up
703   {
704     Integration::TouchEvent touchEvent;
705     Integration::HoverEvent hoverEvent;
706     Integration::Point      point = GeneratePoint(1, PointState::UP, 101.0f, 100.0f);
707
708     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
709     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 2u, TEST_LOCATION);
710     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
711     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
712     DALI_TEST_EQUALS(touchEvent.points[1].GetState(), PointState::STATIONARY, TEST_LOCATION);
713     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
714   }
715
716   time++;
717
718   // 2nd point motion
719   {
720     Integration::TouchEvent touchEvent;
721     Integration::HoverEvent hoverEvent;
722     Integration::Point      point = GeneratePoint(2, PointState::MOTION, 202.0f, 202.0f);
723
724     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
725     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
726     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
727     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
728     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
729   }
730
731   time++;
732
733   // 2nd point up
734   {
735     Integration::TouchEvent touchEvent;
736     Integration::HoverEvent hoverEvent;
737     Integration::Point      point = GeneratePoint(2, PointState::UP, 202.0f, 202.0f);
738
739     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
740     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
741     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
742     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
743     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
744   }
745   END_TEST;
746 }
747
748 int UtcDaliTouchEventCombinerSeveralPoints(void)
749 {
750   TouchEventCombiner combiner;
751   unsigned long      time(0u);
752   unsigned int const maximum(200u);
753
754   // Several downs
755   for(unsigned int pointCount = 1u; pointCount < maximum; ++pointCount)
756   {
757     Integration::TouchEvent touchEvent;
758     Integration::HoverEvent hoverEvent;
759     Integration::Point      point = GeneratePoint(pointCount, PointState::DOWN, 100.0f, 100.0f);
760
761     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time++, touchEvent, hoverEvent), TEST_LOCATION);
762     DALI_TEST_EQUALS(touchEvent.GetPointCount(), pointCount, TEST_LOCATION);
763   }
764
765   // Several Ups
766   for(unsigned int pointCount = maximum - 1; pointCount > 0; --pointCount)
767   {
768     Integration::TouchEvent touchEvent;
769     Integration::HoverEvent hoverEvent;
770     Integration::Point      point = GeneratePoint(pointCount, PointState::UP, 100.0f, 100.0f);
771
772     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time++, touchEvent, hoverEvent), TEST_LOCATION);
773     DALI_TEST_EQUALS(touchEvent.GetPointCount(), pointCount, TEST_LOCATION);
774   }
775   END_TEST;
776 }
777
778 int UtcDaliTouchEventCombinerReset(void)
779 {
780   TouchEventCombiner combiner;
781   unsigned long      time(0u);
782
783   // Down event
784   {
785     Integration::TouchEvent touchEvent;
786     Integration::HoverEvent hoverEvent;
787     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
788
789     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
790     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
791     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
792     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
793     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
794   }
795
796   time++;
797
798   // Reset combiner, no more events should be sent to core.
799   combiner.Reset();
800
801   // Up event
802   {
803     Integration::TouchEvent touchEvent;
804     Integration::HoverEvent hoverEvent;
805     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
806
807     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
808   }
809   END_TEST;
810 }
811
812 int UtcDaliTouchEventCombinerSingleTouchInterrupted(void)
813 {
814   TouchEventCombiner combiner;
815   unsigned long      time(0u);
816
817   // Down event
818   {
819     Integration::TouchEvent touchEvent;
820     Integration::HoverEvent hoverEvent;
821     Integration::Point      point = GeneratePoint(1, PointState::DOWN, 100.0f, 100.0f);
822
823     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
824     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
825     DALI_TEST_EQUALS(touchEvent.points[0].GetDeviceId(), point.GetDeviceId(), TEST_LOCATION);
826     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
827     DALI_TEST_EQUALS(touchEvent.points[0].GetScreenPosition(), point.GetScreenPosition(), TEST_LOCATION);
828   }
829
830   time++;
831
832   // Interrupted event
833   {
834     Integration::TouchEvent touchEvent;
835     Integration::HoverEvent hoverEvent;
836     Integration::Point      point = GeneratePoint(1, PointState::INTERRUPTED, 100.0f, 100.0f);
837
838     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
839     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
840     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
841     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
842     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
843   }
844
845   // Send up, should not be able to send as combiner has been reset.
846   // Up event
847   {
848     Integration::TouchEvent touchEvent;
849     Integration::HoverEvent hoverEvent;
850     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
851
852     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
853   }
854   END_TEST;
855 }
856
857 int UtcDaliTouchEventCombinerMultiTouchInterrupted(void)
858 {
859   TouchEventCombiner combiner;
860   unsigned long      time(0u);
861   unsigned int const maximum(200u);
862
863   // Several downs
864   for(unsigned int pointCount = 1u; pointCount < maximum; ++pointCount)
865   {
866     Integration::TouchEvent touchEvent;
867     Integration::HoverEvent hoverEvent;
868     Integration::Point      point = GeneratePoint(pointCount, PointState::DOWN, 100.0f, 100.0f);
869
870     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_TOUCH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
871     DALI_TEST_EQUALS(touchEvent.GetPointCount(), pointCount, TEST_LOCATION);
872   }
873
874   // Interrupted event
875   {
876     Integration::TouchEvent touchEvent;
877     Integration::HoverEvent hoverEvent;
878     Integration::Point      point = GeneratePoint(1, PointState::INTERRUPTED, 100.0f, 100.0f);
879
880     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_BOTH, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
881     DALI_TEST_EQUALS(touchEvent.GetPointCount(), 1u, TEST_LOCATION);
882     DALI_TEST_EQUALS(touchEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
883     DALI_TEST_EQUALS(hoverEvent.GetPointCount(), 1u, TEST_LOCATION);
884     DALI_TEST_EQUALS(hoverEvent.points[0].GetState(), point.GetState(), TEST_LOCATION);
885   }
886
887   // Send up, should not be able to send as combiner has been reset.
888   // Up event
889   {
890     Integration::TouchEvent touchEvent;
891     Integration::HoverEvent hoverEvent;
892     Integration::Point      point = GeneratePoint(1, PointState::UP, 100.0f, 100.0f);
893
894     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
895   }
896   END_TEST;
897 }
898
899 int UtcDaliTouchEventCombinerInvalidState(void)
900 {
901   TouchEventCombiner combiner;
902   unsigned long      time(0u);
903
904   // Stationary event
905   {
906     Integration::TouchEvent touchEvent;
907     Integration::HoverEvent hoverEvent;
908     Integration::Point      point = GeneratePoint(1, PointState::STATIONARY, 100.0f, 100.0f);
909
910     DALI_TEST_EQUALS(Integration::TouchEventCombiner::DISPATCH_NONE, combiner.GetNextTouchEvent(point, time, touchEvent, hoverEvent), TEST_LOCATION);
911   }
912   END_TEST;
913 }