2 * Copyright (c) 2018 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.
19 #include <dali-toolkit-test-suite-utils.h>
20 #include <toolkit-timer.h>
21 #include <toolkit-event-thread-callback.h>
22 #include <dali-toolkit/dali-toolkit.h>
23 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
24 #include <dali-toolkit/devel-api/controls/control-devel.h>
25 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
26 #include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
27 #include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-actions-devel.h>
28 #include <dali-toolkit/devel-api/visuals/animated-vector-image-visual-signals-devel.h>
29 #include "dummy-control.h"
32 using namespace Dali::Toolkit;
34 void dali_animated_vector_image_visual_startup(void)
36 test_return_value = TET_UNDEF;
39 void dali_animated_vector_image_visual_cleanup(void)
41 test_return_value = TET_PASS;
47 const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.json";
49 bool gAnimationFinishedSignalFired = false;
51 void VisualEventSignal( Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId )
53 if( visualIndex == DummyControl::Property::TEST_VISUAL && signalId == DevelAnimatedVectorImageVisual::Signal::ANIMATION_FINISHED )
55 gAnimationFinishedSignalFired = true;
61 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual01(void)
63 ToolkitTestApplication application;
64 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual01: Request animated vector image visual with a json url" );
66 VisualFactory factory = VisualFactory::Get();
67 Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
68 DALI_TEST_CHECK( visual );
70 DummyControl actor = DummyControl::New( true );
71 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
72 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
73 actor.SetSize( 200.0f, 200.0f );
74 Stage::GetCurrent().Add( actor );
76 application.SendNotification();
79 // Wait for resource ready event callback
80 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
82 // renderer is added to actor
83 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
84 Renderer renderer = actor.GetRendererAt( 0u );
85 DALI_TEST_CHECK( renderer );
87 // Test SetOffStage().
89 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
94 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual02(void)
96 ToolkitTestApplication application;
97 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual02: Request animated vector image visual with a Property::Map" );
99 Property::Map propertyMap;
100 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
101 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME );
103 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
104 DALI_TEST_CHECK( visual );
106 DummyControl actor = DummyControl::New( true );
107 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
108 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
109 actor.SetSize( 200.0f, 200.0f );
110 Stage::GetCurrent().Add( actor );
112 application.SendNotification();
113 application.Render();
115 // Wait for resource ready event callback
116 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
118 // renderer is added to actor
119 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
120 Renderer renderer = actor.GetRendererAt( 0u );
121 DALI_TEST_CHECK( renderer );
124 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
129 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual03(void)
131 ToolkitTestApplication application;
132 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual03: Request animated vector image visual with a Property::Map" );
134 Property::Map propertyMap;
135 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
136 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
137 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
138 .Add( DevelImageVisual::Property::PLAY_RANGE, Vector2( 0.2f, 0.8f ) );
140 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
141 DALI_TEST_CHECK( visual );
143 DummyControl actor = DummyControl::New( true );
144 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
145 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
146 actor.SetSize( 200.0f, 200.0f );
147 Stage::GetCurrent().Add( actor );
149 application.SendNotification();
150 application.Render();
152 // Wait for resource ready event callback
153 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
155 // renderer is added to actor
156 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
157 Renderer renderer = actor.GetRendererAt( 0u );
158 DALI_TEST_CHECK( renderer );
161 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
166 int UtcDaliVisualFactoryGetAnimatedVectorImageVisual04(void)
168 ToolkitTestApplication application;
169 tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual04: Request animated vector image visual with a Property::Map" );
171 Property::Map propertyMap;
172 propertyMap.Add( "visualType", DevelVisual::ANIMATED_VECTOR_IMAGE )
173 .Add( "url", TEST_VECTOR_IMAGE_FILE_NAME )
174 .Add( "loopCount", 3 )
175 .Add( "playRange", Vector2( 0.2f, 0.8f ) );
177 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
178 DALI_TEST_CHECK( visual );
180 DummyControl actor = DummyControl::New( true );
181 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
182 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
183 actor.SetSize( 200.0f, 200.0f );
184 Stage::GetCurrent().Add( actor );
186 application.SendNotification();
187 application.Render();
189 // Wait for resource ready event callback
190 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
192 // renderer is added to actor
193 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
194 Renderer renderer = actor.GetRendererAt( 0u );
195 DALI_TEST_CHECK( renderer );
198 DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
203 int UtcDaliAnimatedVectorImageVisualGetPropertyMap01(void)
205 ToolkitTestApplication application;
206 tet_infoline( "UtcDaliAnimatedVectorImageVisualGetPropertyMap01" );
208 Vector2 playRange( 0.2f, 0.8f );
210 Property::Map propertyMap;
211 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
212 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
213 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 )
214 .Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
216 // request AnimatedVectorImageVisual with a property map
217 VisualFactory factory = VisualFactory::Get();
218 Visual::Base visual = factory.CreateVisual( propertyMap );
220 Property::Map resultMap;
221 visual.CreatePropertyMap( resultMap );
223 // check the property values from the returned map from a visual
224 Property::Value* value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER );
225 DALI_TEST_CHECK( value );
226 DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE );
228 value = resultMap.Find( ImageVisual::Property::URL, Property::STRING );
229 DALI_TEST_CHECK( value );
230 DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME );
232 value = resultMap.Find( DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER );
233 DALI_TEST_CHECK( value );
234 DALI_TEST_CHECK( value->Get< int >() == 3 );
236 value = resultMap.Find( DevelImageVisual::Property::PLAY_RANGE, Property::VECTOR2 );
237 DALI_TEST_CHECK( value );
238 DALI_TEST_CHECK( value->Get< Vector2 >() == playRange );
240 // request AnimatedVectorImageVisual with an URL
241 Visual::Base visual2 = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
244 visual2.CreatePropertyMap( resultMap );
246 // check the property values from the returned map from a visual
247 value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER );
248 DALI_TEST_CHECK( value );
249 DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE );
251 value = resultMap.Find( ImageVisual::Property::URL, Property::STRING );
252 DALI_TEST_CHECK( value );
253 DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME );
258 int UtcDaliAnimatedVectorImageVisualPlayback(void)
260 ToolkitTestApplication application;
262 tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayback" );
265 // request AnimatedVectorImageVisual with a property map
266 VisualFactory factory = VisualFactory::Get();
267 Visual::Base visual = factory.CreateVisual(
269 .Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
270 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) );
272 DummyControl dummyControl = DummyControl::New( true );
273 Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummyControl.GetImplementation() );
274 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
275 dummyControl.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
277 Property::Map attributes;
278 tet_infoline( "Test Play action" );
279 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
281 Stage::GetCurrent().Add( dummyControl );
282 application.SendNotification();
283 application.Render( 16 );
285 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
287 Property::Map map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
288 Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE );
289 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::PLAYING ) );
291 tet_infoline( "Test Pause action" );
292 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes );
294 application.SendNotification();
295 application.Render(16);
297 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
298 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
299 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::PAUSED ) );
301 tet_infoline( "Test Play action" );
302 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
304 application.SendNotification();
305 application.Render(16);
307 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
308 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
309 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::PLAYING ) );
311 tet_infoline( "Test Stop action" );
312 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
314 application.SendNotification();
315 application.Render(16);
317 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
318 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
319 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::STOPPED ) );
321 tet_infoline( "Test Stop action again" );
322 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes );
324 application.SendNotification();
325 application.Render(16);
327 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
328 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
329 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::STOPPED ) );
331 tet_infoline( "Test Play action" );
332 DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
334 application.SendNotification();
335 application.Render(16);
337 map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
338 value = map.Find( DevelImageVisual::Property::PLAY_STATE );
339 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::PLAYING ) );
342 Vector3 newSize( 100.0f, 100.0f, 0.0f );
343 dummyControl.SetSize( newSize );
345 application.SendNotification();
346 application.Render(16);
348 // Size should be changed
349 Vector3 naturalSize = dummyControl.GetNaturalSize();
350 DALI_TEST_CHECK( naturalSize == newSize );
352 dummyControl.Unparent();
358 int UtcDaliAnimatedVectorImageVisualCustomShader(void)
360 ToolkitTestApplication application;
361 tet_infoline( "UtcDaliAnimatedVectorImageVisualCustomShader Test custom shader" );
363 VisualFactory factory = VisualFactory::Get();
364 Property::Map properties;
365 Property::Map shader;
366 const std::string vertexShader = "Foobar";
367 const std::string fragmentShader = "Foobar sampler2D Foobar";
368 shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
369 shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
371 properties[Visual::Property::TYPE] = Visual::IMAGE;
372 properties[Visual::Property::SHADER] = shader;
373 properties[ImageVisual::Property::URL] = TEST_VECTOR_IMAGE_FILE_NAME;
375 Visual::Base visual = factory.CreateVisual( properties );
377 // trigger creation through setting on stage
378 DummyControl dummy = DummyControl::New( true );
379 Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() );
380 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
382 dummy.SetSize( 200.f, 200.f );
383 dummy.SetParentOrigin( ParentOrigin::CENTER );
384 Stage::GetCurrent().Add( dummy );
386 application.SendNotification();
387 application.Render();
389 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
391 Renderer renderer = dummy.GetRendererAt( 0 );
392 Shader shader2 = renderer.GetShader();
393 Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
394 Property::Map* map = value.GetMap();
395 DALI_TEST_CHECK( map );
397 std::string resultFragmentShader, resultVertexShader;
398 Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
399 fragment->Get( resultFragmentShader );
400 DALI_TEST_CHECK( resultFragmentShader.find( fragmentShader ) != std::string::npos );
402 Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
403 vertex->Get( resultVertexShader );
404 DALI_TEST_CHECK( resultVertexShader.find( vertexShader ) != std::string::npos );
409 int UtcDaliAnimatedVectorImageVisualNaturalSize(void)
411 ToolkitTestApplication application;
412 tet_infoline( "UtcDaliAnimatedVectorImageVisualNaturalSize" );
414 VisualFactory factory = VisualFactory::Get();
415 Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() );
416 DALI_TEST_CHECK( visual );
418 DummyControl actor = DummyControl::New( true );
419 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
420 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
422 Vector2 controlSize( 20.f, 30.f );
425 actor.SetSize( controlSize );
426 Stage::GetCurrent().Add( actor );
428 application.SendNotification();
429 application.Render();
431 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
433 visual.GetNaturalSize( naturalSize );
435 DALI_TEST_EQUALS( naturalSize, controlSize, TEST_LOCATION );
440 int UtcDaliAnimatedVectorImageVisualLoopCount(void)
442 ToolkitTestApplication application;
443 tet_infoline( "UtcDaliAnimatedVectorImageVisualLoopCount" );
445 Property::Map propertyMap;
446 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
447 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
448 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 );
450 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
451 DALI_TEST_CHECK( visual );
453 DummyControl actor = DummyControl::New( true );
454 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
455 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
457 Vector2 controlSize( 20.f, 30.f );
458 actor.SetSize( controlSize );
460 Stage::GetCurrent().Add( actor );
462 Property::Map attributes;
463 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
465 application.SendNotification();
466 application.Render();
468 // Trigger count is 2 - resource ready and animation finished
469 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION );
471 // renderer is added to actor
472 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
473 Renderer renderer = actor.GetRendererAt( 0u );
474 DALI_TEST_CHECK( renderer );
479 int UtcDaliAnimatedVectorImageVisualPlayRange(void)
481 ToolkitTestApplication application;
482 tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayRange" );
484 Vector2 playRange( 0.8f, 0.2f );
486 Property::Map propertyMap;
487 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
488 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
489 .Add( DevelImageVisual::Property::PLAY_RANGE, playRange );
491 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
492 DALI_TEST_CHECK( visual );
494 DummyControl actor = DummyControl::New( true );
495 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
496 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
498 Vector2 controlSize( 20.f, 30.f );
499 actor.SetSize( controlSize );
501 Stage::GetCurrent().Add( actor );
503 Property::Map attributes;
504 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
506 application.SendNotification();
507 application.Render();
509 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
511 // renderer is added to actor
512 DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
513 Renderer renderer = actor.GetRendererAt( 0u );
514 DALI_TEST_CHECK( renderer );
519 int UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal(void)
521 ToolkitTestApplication application;
522 tet_infoline( "UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal" );
524 Property::Map propertyMap;
525 propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE )
526 .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME )
527 .Add( DevelImageVisual::Property::LOOP_COUNT, 3 );
529 Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap );
530 DALI_TEST_CHECK( visual );
532 DummyControl actor = DummyControl::New( true );
533 DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() );
534 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
536 DevelControl::VisualEventSignal( actor ).Connect( &VisualEventSignal );
538 Vector2 controlSize( 20.f, 30.f );
539 actor.SetSize( controlSize );
541 Stage::GetCurrent().Add( actor );
543 Property::Map attributes;
544 DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes );
546 application.SendNotification();
547 application.Render();
549 // Wait for animation finish
550 DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION );
552 Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL );
553 Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE );
554 DALI_TEST_CHECK( value->Get< int >() == static_cast< int >( DevelImageVisual::PlayState::STOPPED ) );
556 DALI_TEST_EQUALS( gAnimationFinishedSignalFired, true, TEST_LOCATION );