X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-AnimatedVectorImageVisual.cpp;h=1eb713ea4b0202e100c30b97bffa2e8488098cdc;hp=6159e717a30e0e5ece06af58611a1b870d72c395;hb=d2a6f4d721fbc03b51d4f1328a58b1fa65f90d43;hpb=8cd8392e5982d60111b0a2a5d33457c06e8532f5 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp index 6159e71..1eb713e 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -53,9 +54,6 @@ const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.jso const char* TEST_VECTOR_IMAGE_FILE_NAME_FRAME_DROP = "framedrop.json"; const char* TEST_VECTOR_IMAGE_INVALID_FILE_NAME = "invalid.json"; -const char* TEST_VECTOR_IMAGE_RIVE_FILE_NAME = TEST_RESOURCE_DIR "/shape.riv"; -const char* TEST_VECTOR_IMAGE_INVALID_RIVE_FILE_NAME = "invalid.riv"; - bool gAnimationFinishedSignalFired = false; void VisualEventSignal( Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId ) @@ -710,7 +708,7 @@ int UtcDaliAnimatedVectorImageVisualPlayRange(void) attributes.Clear(); attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -749,7 +747,7 @@ int UtcDaliAnimatedVectorImageVisualPlayRange(void) attributes.Clear(); attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -828,7 +826,7 @@ int UtcDaliAnimatedVectorImageVisualPlayRangeMarker(void) attributes.Clear(); attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -852,7 +850,7 @@ int UtcDaliAnimatedVectorImageVisualPlayRangeMarker(void) attributes.Clear(); attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -959,7 +957,7 @@ int UtcDaliAnimatedVectorImageVisualJumpTo(void) Property::Map attributes; attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 ); @@ -982,7 +980,7 @@ int UtcDaliAnimatedVectorImageVisualJumpTo(void) array.PushBack( 4 ); attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); attributes.Clear(); DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); @@ -1077,7 +1075,7 @@ int UtcDaliAnimatedVectorImageVisualUpdateProperty(void) attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange ); attributes.Add( DevelImageVisual::Property::LOOP_COUNT, 5 ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -1103,7 +1101,7 @@ int UtcDaliAnimatedVectorImageVisualUpdateProperty(void) attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -1128,7 +1126,7 @@ int UtcDaliAnimatedVectorImageVisualUpdateProperty(void) attributes.Add( DevelImageVisual::Property::LOOP_COUNT, 10 ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); application.SendNotification(); application.Render(); @@ -1179,7 +1177,7 @@ int UtcDaliAnimatedVectorImageVisualStopBehavior(void) // Change stop behavior attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); attributes.Clear(); @@ -1204,7 +1202,7 @@ int UtcDaliAnimatedVectorImageVisualStopBehavior(void) attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME ); attributes.Add( DevelImageVisual::Property::LOOP_COUNT, -1 ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); attributes.Clear(); @@ -1274,7 +1272,7 @@ int UtcDaliAnimatedVectorImageVisualLoopingMode(void) // Change stop behavior attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); // Play again DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); @@ -1292,7 +1290,7 @@ int UtcDaliAnimatedVectorImageVisualLoopingMode(void) // Change looping mode attributes.Add( DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::RESTART ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); // Play again DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); @@ -1421,8 +1419,8 @@ int UtcDaliAnimatedVectorImageVisualMultipleInstances(void) Property::Map attributes; attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME ); - DevelControl::DoAction( actor1, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); - DevelControl::DoAction( actor2, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor1, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); + DevelControl::DoAction( actor2, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes ); DevelControl::DoAction( actor1, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, Property::Map() ); @@ -1593,222 +1591,26 @@ int UtcDaliAnimatedVectorImageVisualFrameDrops(void) application.GetScene().Add(actor); - application.SendNotification(); - application.Render(); + Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); + Property::Value* value = map.Find( DevelImageVisual::Property::TOTAL_FRAME_NUMBER ); + int totalFrameNumber = value->Get< int >(); Property::Map attributes; DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); - application.SendNotification(); - application.Render(); - - // Trigger count is 1 - render the first frame - DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - // Make delay to drop frames Test::VectorAnimationRenderer::DelayRendering(170); // longer than 16.6 * 10frames - // Check dropped frame - DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - - uint32_t frames = Test::VectorAnimationRenderer::GetDroppedFrames(); - DALI_TEST_CHECK(frames >= 9); - - END_TEST; -} - -int UtcDaliAnimatedVectorImageVisualLoadRiveFileP(void) -{ - ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualLoadRiveFile: Request animated vector image visual with a rive url" ); - - VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_RIVE_FILE_NAME, ImageDimensions() ); - DALI_TEST_CHECK( visual ); - - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); - actor.SetProperty( Actor::Property::SIZE, Vector2( 200.0f, 200.0f ) ); - application.GetScene().Add( actor ); - - application.SendNotification(); - application.Render(); - - // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); - - // Test SetOffScene(). - actor.Unparent(); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); - - END_TEST; -} - -int UtcDaliAnimatedVectorImageVisualLoadRiveFileN(void) -{ - ToolkitTestApplication application; - tet_infoline("Request loading with invalid rive file - should draw broken image"); - - TestGlAbstraction& gl = application.GetGlAbstraction(); - TraceCallStack& textureTrace = gl.GetTextureTrace(); - textureTrace.Enable(true); - - Property::Map propertyMap; - propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) - .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_INVALID_RIVE_FILE_NAME); - - Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); - DALI_TEST_CHECK(visual); - - DummyControl actor = DummyControl::New(true); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >(actor.GetImplementation()); - dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - - actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); - - application.GetScene().Add(actor); - application.SendNotification(); application.Render(); - // Check resource status - Visual::ResourceStatus status = actor.GetVisualResourceStatus(DummyControl::Property::TEST_VISUAL); - DALI_TEST_EQUALS(status, Visual::ResourceStatus::FAILED, TEST_LOCATION); - - // The broken image should be shown. - DALI_TEST_EQUALS(actor.GetRendererCount(), 1u, TEST_LOCATION); - DALI_TEST_EQUALS(textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION); - - END_TEST; -} + // Trigger count is 2 - render the first frame & calculating frame drops + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); -int UtcDaliAnimatedVectorImageVisualPlaybackRiveFile(void) -{ - ToolkitTestApplication application; - - tet_infoline( "UtcDaliAnimatedVectorImageVisualPlaybackRiveFile" ); - - { - // request AnimatedVectorImageVisual for Rive with a property map - VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( - Property::Map() - .Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_RIVE_FILE_NAME ) ); - - DummyControl dummyControl = DummyControl::New( true ); - Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummyControl.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); - dummyControl.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - - Property::Map attributes; - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); - - application.GetScene().Add( dummyControl ); - application.SendNotification(); - application.Render( 16 ); - - Property::Map map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING ); - - tet_infoline( "Test Pause action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PAUSED ); - - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING ); - - tet_infoline( "Test Stop action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED ); - - tet_infoline( "Test Stop action again" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED ); - - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING ); - - tet_infoline( "Off stage" ); - dummyControl.Unparent(); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED ); - - tet_infoline( "On stage again" ); - application.GetScene().Add( dummyControl ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED ); - - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); - - application.SendNotification(); - application.Render(16); - - map = dummyControl.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::PLAYING ); - - // Change Size - Vector3 newSize( 100.0f, 100.0f, 0.0f ); - dummyControl.SetProperty( Actor::Property::SIZE, newSize ); - - application.SendNotification(); - application.Render(16); - - // Size should be changed - Vector3 naturalSize = dummyControl.GetNaturalSize(); - DALI_TEST_CHECK( naturalSize == newSize ); - - dummyControl.Unparent(); - } + // Check dropped frame + uint32_t frames = Test::VectorAnimationRenderer::GetDroppedFrames(); + DALI_TEST_CHECK(frames > 0); + DALI_TEST_CHECK(frames <= static_cast(totalFrameNumber)); END_TEST; }