2 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <dali/integration-api/scene.h>
22 #include <dali/integration-api/events/key-event-integ.h>
23 #include <dali/public-api/events/key-event.h>
24 #include <dali/integration-api/events/touch-event-integ.h>
25 #include <dali/integration-api/events/wheel-event-integ.h>
27 #include <dali-test-suite-utils.h>
29 // Internal headers are allowed here
34 const std::string DEFAULT_DEVICE_NAME("hwKeyboard");
36 // Functor for EventProcessingFinished signal
37 struct EventProcessingFinishedFunctor
40 * @param[in] eventProcessingFinished reference to a boolean variable used to check if signal has been called.
42 EventProcessingFinishedFunctor( bool& eventProcessingFinished )
43 : mEventProcessingFinished( eventProcessingFinished )
48 mEventProcessingFinished = true;
51 bool& mEventProcessingFinished;
54 // Stores data that is populated in the key-event callback and will be read by the TET cases
55 struct KeyEventSignalData
58 : functorCalled(false)
63 functorCalled = false;
65 receivedKeyEvent.keyModifier = 0;
66 receivedKeyEvent.keyPressedName.clear();
67 receivedKeyEvent.keyPressed.clear();
71 KeyEvent receivedKeyEvent;
74 // Functor that sets the data when called
75 struct KeyEventReceivedFunctor
77 KeyEventReceivedFunctor( KeyEventSignalData& data ) : signalData( data ) { }
79 bool operator()( const KeyEvent& keyEvent )
81 signalData.functorCalled = true;
82 signalData.receivedKeyEvent = keyEvent;
87 KeyEventSignalData& signalData;
90 // Stores data that is populated in the touched signal callback and will be read by the TET cases
91 struct TouchedSignalData
94 : functorCalled(false),
95 createNewScene(false),
96 newSceneCreated(false)
101 functorCalled = false;
102 createNewScene = false;
103 newSceneCreated = false;
105 receivedTouchEvent.points.clear();
106 receivedTouchEvent.time = 0;
108 receivedTouchData.Reset();
113 bool newSceneCreated;
114 TouchEvent receivedTouchEvent;
115 TouchData receivedTouchData;
118 // Functor that sets the data when touched signal is received
119 struct TouchedFunctor
121 TouchedFunctor( TouchedSignalData& data ) : signalData( data ) { }
123 void operator()( const TouchEvent& touch )
125 signalData.functorCalled = true;
126 signalData.receivedTouchEvent = touch;
129 TouchedSignalData& signalData;
132 // Functor that sets the data when touched signal is received
135 TouchFunctor( TouchedSignalData& data ) : signalData( data ) { }
137 void operator()( const TouchData& touch )
139 signalData.functorCalled = true;
140 signalData.receivedTouchData = touch;
142 if ( signalData.createNewScene )
144 Dali::Integration::Scene scene = Dali::Integration::Scene::New( Vector2( 480.0f, 800.0f ) );
145 DALI_TEST_CHECK( scene );
147 signalData.newSceneCreated = true;
153 signalData.functorCalled = true;
156 TouchedSignalData& signalData;
159 // Stores data that is populated in the wheel-event callback and will be read by the TET cases
160 struct WheelEventSignalData
162 WheelEventSignalData()
163 : functorCalled(false)
168 functorCalled = false;
172 WheelEvent receivedWheelEvent;
175 // Functor that sets the data when wheel-event signal is received
176 struct WheelEventReceivedFunctor
178 WheelEventReceivedFunctor( WheelEventSignalData& data ) : signalData( data ) { }
180 bool operator()( const WheelEvent& wheelEvent )
182 signalData.functorCalled = true;
183 signalData.receivedWheelEvent = wheelEvent;
188 WheelEventSignalData& signalData;
191 void GenerateTouch( TestApplication& application, PointState::Type state, const Vector2& screenPosition )
193 Integration::TouchEvent touchEvent;
194 Integration::Point point;
195 point.SetState( state );
196 point.SetScreenPosition( screenPosition );
197 touchEvent.points.push_back( point );
198 application.ProcessEvent( touchEvent );
201 bool DummyTouchCallback( Actor actor, const TouchEvent& touch )
206 } // unnamed namespace
208 int UtcDaliSceneAdd(void)
210 TestApplication application;
211 tet_infoline("Testing Dali::Integration::Scene::Add");
213 Dali::Integration::Scene scene = application.GetScene();
215 Actor actor = Actor::New();
216 DALI_TEST_CHECK( !actor.OnStage() );
219 DALI_TEST_CHECK( actor.OnStage() );
224 int UtcDaliSceneRemove(void)
226 TestApplication application;
227 tet_infoline("Testing Dali::Integration::Scene::Remove");
229 Dali::Integration::Scene scene = application.GetScene();
231 Actor actor = Actor::New();
232 DALI_TEST_CHECK( !actor.OnStage() );
235 DALI_TEST_CHECK( actor.OnStage() );
238 DALI_TEST_CHECK( !actor.OnStage() );
243 int UtcDaliSceneGetSize(void)
245 TestApplication application;
246 tet_infoline("Testing Dali::Integration::Scene::GetSize");
248 Dali::Integration::Scene scene = application.GetScene();
249 Size size = scene.GetSize();
250 DALI_TEST_EQUALS( TestApplication::DEFAULT_SURFACE_WIDTH, size.width, TEST_LOCATION );
251 DALI_TEST_EQUALS( TestApplication::DEFAULT_SURFACE_HEIGHT, size.height, TEST_LOCATION );
256 int UtcDaliSceneGetDpi(void)
258 TestApplication application; // Initializes core DPI to default values
260 // Test that setting core DPI explicitly also sets up the scene's DPI.
261 Dali::Integration::Scene scene = application.GetScene();
262 scene.SetDpi( Vector2(200.0f, 180.0f) );
263 Vector2 dpi = scene.GetDpi();
264 DALI_TEST_EQUALS( dpi.x, 200.0f, TEST_LOCATION );
265 DALI_TEST_EQUALS( dpi.y, 180.0f, TEST_LOCATION );
269 int UtcDaliSceneGetRenderTaskList(void)
271 TestApplication application;
272 tet_infoline("Testing Dali::Integration::Scene::GetRenderTaskList");
274 Dali::Integration::Scene scene = application.GetScene();
276 // Check we get a valid instance.
277 const RenderTaskList& tasks = scene.GetRenderTaskList();
279 // There should be 1 task by default.
280 DALI_TEST_EQUALS( tasks.GetTaskCount(), 1u, TEST_LOCATION );
282 // RenderTaskList has it's own UTC tests.
283 // But we can confirm that GetRenderTaskList in Stage retrieves the same RenderTaskList each time.
284 RenderTask newTask = scene.GetRenderTaskList().CreateTask();
286 DALI_TEST_EQUALS( scene.GetRenderTaskList().GetTask( 1 ), newTask, TEST_LOCATION );
291 int UtcDaliSceneGetRootLayer(void)
293 TestApplication application;
294 tet_infoline("Testing Dali::Integration::Scene::GetRootLayer");
296 Dali::Integration::Scene scene = application.GetScene();
297 Layer layer = scene.GetLayer( 0 );
298 DALI_TEST_CHECK( layer );
300 // Check that GetRootLayer() correctly retreived layer 0.
301 DALI_TEST_CHECK( scene.GetRootLayer() == layer );
306 int UtcDaliSceneGetLayerCount(void)
308 TestApplication application;
309 tet_infoline("Testing Dali::Integration::Scene::GetLayerCount");
311 Dali::Integration::Scene scene = application.GetScene();
312 // Initially we have a default layer
313 DALI_TEST_EQUALS( scene.GetLayerCount(), 1u, TEST_LOCATION );
315 Layer layer = Layer::New();
318 DALI_TEST_EQUALS( scene.GetLayerCount(), 2u, TEST_LOCATION );
322 int UtcDaliSceneGetLayer(void)
324 TestApplication application;
325 tet_infoline("Testing Dali::Integration::Scene::GetLayer");
327 Dali::Integration::Scene scene = application.GetScene();
329 Layer rootLayer = scene.GetLayer( 0 );
330 DALI_TEST_CHECK( rootLayer );
332 Layer layer = Layer::New();
335 Layer sameLayer = scene.GetLayer( 1 );
336 DALI_TEST_CHECK( layer == sameLayer );
341 int UtcDaliSceneGet(void)
343 TestApplication application;
344 tet_infoline("Testing Dali::Integration::Scene::Get");
346 Dali::Integration::Scene scene = application.GetScene();
348 Actor actor = Actor::New();
349 DALI_TEST_CHECK( Dali::Integration::Scene() == Dali::Integration::Scene::Get( actor ) );
353 DALI_TEST_CHECK( scene == Dali::Integration::Scene::Get( actor ) );
358 int UtcDaliSceneDiscard(void)
360 TestApplication application;
361 tet_infoline("Testing Dali::Scene::Discard");
363 // Create a new Scene
364 Dali::Integration::Scene scene = Dali::Integration::Scene::New( Vector2( 480.0f, 800.0f ) );
365 DALI_TEST_CHECK( scene );
367 // One reference of scene kept here and the other one kept in the Core
368 DALI_TEST_CHECK( scene.GetBaseObject().ReferenceCount() == 2 );
370 // Render and notify.
371 application.SendNotification();
372 application.Render(0);
374 // Keep the reference of the root layer handle so it will still be alive after the scene is deleted
375 Layer rootLayer = scene.GetRootLayer();
376 DALI_TEST_CHECK( rootLayer );
377 DALI_TEST_CHECK( rootLayer.GetBaseObject().ReferenceCount() == 2 );
379 // Request to discard the scene from the Core
381 DALI_TEST_CHECK( scene.GetBaseObject().ReferenceCount() == 1 );
383 // Reset the scene handle
386 // Render and notify.
387 application.SendNotification();
388 application.Render(0);
390 // At this point, the scene should have been automatically deleted
391 // To prove this, the ref count of the root layer handle should be decremented to 1
392 DALI_TEST_CHECK( rootLayer.GetBaseObject().ReferenceCount() == 1 );
394 // Delete the root layer handle
397 // Render and notify.
398 application.SendNotification();
399 application.Render(0);
404 int UtcDaliSceneCreateNewSceneDuringCoreEventProcessing(void)
406 TestApplication application;
408 Dali::Integration::Scene scene = application.GetScene();
410 TouchedSignalData data;
411 data.createNewScene = true;
412 TouchFunctor functor( data );
413 scene.TouchSignal().Connect( &application, functor );
415 // Render and notify.
416 application.SendNotification();
417 application.Render();
419 GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) );
421 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
422 DALI_TEST_EQUALS( true, data.createNewScene, TEST_LOCATION );
423 DALI_TEST_EQUALS( true, data.newSceneCreated, TEST_LOCATION );
429 int UtcDaliSceneEventProcessingFinishedP(void)
431 TestApplication application;
432 Dali::Integration::Scene scene = application.GetScene();
434 bool eventProcessingFinished = false;
435 EventProcessingFinishedFunctor functor( eventProcessingFinished );
436 scene.EventProcessingFinishedSignal().Connect( &application, functor );
438 Actor actor( Actor::New() );
441 application.SendNotification();
442 application.Render();
444 DALI_TEST_CHECK( eventProcessingFinished );
449 int UtcDaliSceneEventProcessingFinishedN(void)
451 TestApplication application;
452 Dali::Integration::Scene scene = application.GetScene();
454 bool eventProcessingFinished = false;
455 EventProcessingFinishedFunctor functor( eventProcessingFinished );
456 scene.EventProcessingFinishedSignal().Connect( &application, functor );
458 Actor actor( Actor::New() );
461 // Do not complete event processing and confirm the signal has not been emitted.
462 DALI_TEST_CHECK( !eventProcessingFinished );
467 int UtcDaliSceneSignalKeyEventP(void)
469 TestApplication application;
470 Dali::Integration::Scene scene = application.GetScene();
472 KeyEventSignalData data;
473 KeyEventReceivedFunctor functor( data );
474 scene.KeyEventSignal().Connect( &application, functor );
476 Integration::KeyEvent event( "i", "", "i", 0, 0, 0, Integration::KeyEvent::Down, "i", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE );
477 application.ProcessEvent( event );
479 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
480 DALI_TEST_CHECK( event.keyModifier == data.receivedKeyEvent.keyModifier );
481 DALI_TEST_CHECK( event.keyName == data.receivedKeyEvent.keyPressedName );
482 DALI_TEST_CHECK( event.keyString == data.receivedKeyEvent.keyPressed );
483 DALI_TEST_CHECK( event.state == static_cast<Integration::KeyEvent::State>( data.receivedKeyEvent.state ) );
487 Integration::KeyEvent event2( "i", "", "i", 0, 0, 0, Integration::KeyEvent::Up, "i", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE );
488 application.ProcessEvent( event2 );
490 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
491 DALI_TEST_CHECK( event2.keyModifier == data.receivedKeyEvent.keyModifier );
492 DALI_TEST_CHECK( event2.keyName == data.receivedKeyEvent.keyPressedName );
493 DALI_TEST_CHECK( event2.keyString == data.receivedKeyEvent.keyPressed );
494 DALI_TEST_CHECK( event2.state == static_cast<Integration::KeyEvent::State>( data.receivedKeyEvent.state ) );
498 Integration::KeyEvent event3( "a", "", "a", 0, 0, 0, Integration::KeyEvent::Down, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE );
499 application.ProcessEvent( event3 );
501 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
502 DALI_TEST_CHECK( event3.keyModifier == data.receivedKeyEvent.keyModifier );
503 DALI_TEST_CHECK( event3.keyName == data.receivedKeyEvent.keyPressedName );
504 DALI_TEST_CHECK( event3.keyString == data.receivedKeyEvent.keyPressed );
505 DALI_TEST_CHECK( event3.state == static_cast<Integration::KeyEvent::State>( data.receivedKeyEvent.state ) );
509 Integration::KeyEvent event4( "a", "", "a", 0, 0, 0, Integration::KeyEvent::Up, "a", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE );
510 application.ProcessEvent( event4 );
512 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
513 DALI_TEST_CHECK( event4.keyModifier == data.receivedKeyEvent.keyModifier );
514 DALI_TEST_CHECK( event4.keyName == data.receivedKeyEvent.keyPressedName );
515 DALI_TEST_CHECK( event4.keyString == data.receivedKeyEvent.keyPressed );
516 DALI_TEST_CHECK( event4.state == static_cast<Integration::KeyEvent::State>( data.receivedKeyEvent.state ) );
520 int UtcDaliSceneSignalKeyEventN(void)
522 TestApplication application;
523 Dali::Integration::Scene scene = application.GetScene();
525 KeyEventSignalData data;
526 KeyEventReceivedFunctor functor( data );
527 scene.KeyEventSignal().Connect( &application, functor );
529 // Check that a non-pressed key events data is not modified.
530 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
535 int UtcDaliSceneTouchSignalP(void)
537 TestApplication application;
538 Dali::Integration::Scene scene = application.GetScene();
540 TouchedSignalData data;
541 TouchFunctor functor( data );
542 scene.TouchSignal().Connect( &application, functor );
544 // Render and notify.
545 application.SendNotification();
546 application.Render();
548 // Basic test: No actors, single touch (down then up).
550 GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) );
552 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
553 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
554 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) );
557 GenerateTouch( application, PointState::UP, Vector2( 10.0f, 10.0f ) );
559 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
560 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
561 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) );
565 // Add an actor to the scene.
566 Actor actor = Actor::New();
567 actor.SetSize( 100.0f, 100.0f );
568 actor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
569 actor.SetParentOrigin( ParentOrigin::TOP_LEFT );
570 actor.TouchedSignal().Connect( &DummyTouchCallback );
573 // Render and notify.
574 application.SendNotification();
575 application.Render();
577 // Actor on scene, single touch, down in actor, motion, then up outside actor.
579 GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) );
581 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
582 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
583 DALI_TEST_CHECK( data.receivedTouchData.GetHitActor(0) == actor );
586 GenerateTouch( application, PointState::MOTION, Vector2( 150.0f, 10.0f ) ); // Some motion
588 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
591 GenerateTouch( application, PointState::UP, Vector2( 150.0f, 10.0f ) ); // Some motion
593 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
594 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
595 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) );
599 // Multiple touch. Should only receive a touch on first down and last up.
601 Integration::TouchEvent touchEvent;
602 Integration::Point point;
605 point.SetState( PointState::DOWN );
606 point.SetScreenPosition( Vector2( 10.0f, 10.0f ) );
607 touchEvent.points.push_back( point );
608 application.ProcessEvent( touchEvent );
609 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
610 DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION );
614 touchEvent.points[0].SetState( PointState::STATIONARY );
615 point.SetDeviceId( 1 );
616 point.SetScreenPosition( Vector2( 50.0f, 50.0f ) );
617 touchEvent.points.push_back( point );
618 application.ProcessEvent( touchEvent );
619 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
622 // Primary point is up
623 touchEvent.points[0].SetState( PointState::UP );
624 touchEvent.points[1].SetState( PointState::STATIONARY );
625 application.ProcessEvent( touchEvent );
626 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
629 // Remove 1st point now, 2nd point is now in motion
630 touchEvent.points.erase( touchEvent.points.begin() );
631 touchEvent.points[0].SetState( PointState::MOTION );
632 touchEvent.points[0].SetScreenPosition( Vector2( 150.0f, 50.0f ) );
633 application.ProcessEvent( touchEvent );
634 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
638 touchEvent.points[0].SetState( PointState::UP );
639 application.ProcessEvent( touchEvent );
640 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
641 DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION );
647 int UtcDaliSceneTouchSignalN(void)
649 TestApplication application;
650 Dali::Integration::Scene scene = application.GetScene();
652 TouchedSignalData data;
653 TouchFunctor functor( data );
654 scene.TouchSignal().Connect( &application, functor );
656 // Render and notify.
657 application.SendNotification();
658 application.Render();
660 // Confirm functor not called before there has been any touch event.
661 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
663 // No actors, single touch, down, motion then up.
665 GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) );
667 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
668 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
669 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0));
673 // Confirm there is no signal when the touchpoint is only moved.
674 GenerateTouch( application, PointState::MOTION, Vector2( 1200.0f, 10.0f ) ); // Some motion
676 DALI_TEST_EQUALS( false, data.functorCalled, TEST_LOCATION );
679 // Confirm a following up event generates a signal.
680 GenerateTouch( application, PointState::UP, Vector2( 1200.0f, 10.0f ) );
682 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
683 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
684 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0));
688 // Add an actor to the scene.
689 Actor actor = Actor::New();
690 actor.SetSize( 100.0f, 100.0f );
691 actor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
692 actor.SetParentOrigin( ParentOrigin::TOP_LEFT );
693 actor.TouchedSignal().Connect( &DummyTouchCallback );
696 // Render and notify.
697 application.SendNotification();
698 application.Render();
700 // Actor on scene. Interrupted before down and interrupted after down.
702 GenerateTouch( application, PointState::INTERRUPTED, Vector2( 10.0f, 10.0f ) );
704 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
705 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
706 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) );
707 DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::INTERRUPTED );
710 GenerateTouch( application, PointState::DOWN, Vector2( 10.0f, 10.0f ) );
712 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
713 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
714 DALI_TEST_CHECK( data.receivedTouchData.GetHitActor(0) == actor );
715 DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::DOWN );
718 GenerateTouch( application, PointState::INTERRUPTED, Vector2( 10.0f, 10.0f ) );
720 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
721 DALI_TEST_CHECK( data.receivedTouchData.GetPointCount() != 0u );
722 DALI_TEST_CHECK( !data.receivedTouchData.GetHitActor(0) );
723 DALI_TEST_CHECK( data.receivedTouchData.GetState(0) == PointState::INTERRUPTED );
725 DALI_TEST_EQUALS( data.receivedTouchData.GetPointCount(), 1u, TEST_LOCATION );
727 // Check that getting info about a non-existent point returns an empty handle
728 Actor actor = data.receivedTouchData.GetHitActor( 1 );
729 DALI_TEST_CHECK( !actor );
737 int UtcDaliSceneSignalWheelEventP(void)
739 TestApplication application;
740 Dali::Integration::Scene scene = application.GetScene();
742 WheelEventSignalData data;
743 WheelEventReceivedFunctor functor( data );
744 scene.WheelEventSignal().Connect( &application, functor );
746 Integration::WheelEvent event( Integration::WheelEvent::CUSTOM_WHEEL, 0, 0u, Vector2( 0.0f, 0.0f ), 1, 1000u );
747 application.ProcessEvent( event );
749 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
750 DALI_TEST_CHECK( static_cast< WheelEvent::Type >(event.type) == data.receivedWheelEvent.type );
751 DALI_TEST_CHECK( event.direction == data.receivedWheelEvent.direction );
752 DALI_TEST_CHECK( event.modifiers == data.receivedWheelEvent.modifiers );
753 DALI_TEST_CHECK( event.point == data.receivedWheelEvent.point );
754 DALI_TEST_CHECK( event.z == data.receivedWheelEvent.z );
755 DALI_TEST_CHECK( event.timeStamp == data.receivedWheelEvent.timeStamp );
759 Integration::WheelEvent event2( Integration::WheelEvent::CUSTOM_WHEEL, 0, 0u, Vector2( 0.0f, 0.0f ), -1, 1000u );
760 application.ProcessEvent( event2 );
762 DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION );
763 DALI_TEST_CHECK( static_cast< WheelEvent::Type >(event2.type) == data.receivedWheelEvent.type );
764 DALI_TEST_CHECK( event2.direction == data.receivedWheelEvent.direction );
765 DALI_TEST_CHECK( event2.modifiers == data.receivedWheelEvent.modifiers );
766 DALI_TEST_CHECK( event2.point == data.receivedWheelEvent.point );
767 DALI_TEST_CHECK( event2.z == data.receivedWheelEvent.z );
768 DALI_TEST_CHECK( event2.timeStamp == data.receivedWheelEvent.timeStamp );