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=05296554bfa8971b88433577fb3e5083a625c7c7;hp=7322dbfcf79a07bfbca2599bef56f8a4d07ef56c;hb=e8954068388a568c9d89de31ae033fe94d0ce20d;hpb=84e46fe870f4ae2f7dbbda3b789735c388235544 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp index 7322dbf..0529655 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedVectorImageVisual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,24 +14,28 @@ * limitations under the License. */ -#include #include #include +#include #include + #include -#include #include +#include #include +#include "dummy-control.h" + #include -#include + #include -#include -#include +#include #include #include -#include +#include +#include +#include #include -#include "dummy-control.h" +#include using namespace Dali; using namespace Dali::Toolkit; @@ -48,49 +52,51 @@ void dali_animated_vector_image_visual_cleanup(void) namespace { - -const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.json"; +const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.json"; 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_INVALID_FILE_NAME = "invalid.json"; bool gAnimationFinishedSignalFired = false; -void VisualEventSignal( Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId ) +void VisualEventSignal(Control control, Dali::Property::Index visualIndex, Dali::Property::Index signalId) { - if( visualIndex == DummyControl::Property::TEST_VISUAL && signalId == DevelAnimatedVectorImageVisual::Signal::ANIMATION_FINISHED ) + if(visualIndex == DummyControl::Property::TEST_VISUAL && signalId == DevelAnimatedVectorImageVisual::Signal::ANIMATION_FINISHED) { gAnimationFinishedSignalFired = true; } } -} +} // namespace int UtcDaliVisualFactoryGetAnimatedVectorImageVisual01(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual01: Request animated vector image visual with a json url" ); + tet_infoline("UtcDaliVisualFactoryGetAnimatedVectorImageVisual01: Request animated vector image visual with a json url"); VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() ); - DALI_TEST_CHECK( visual ); + Visual::Base visual = factory.CreateVisual(TEST_VECTOR_IMAGE_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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(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(); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + 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 ); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -98,31 +104,34 @@ int UtcDaliVisualFactoryGetAnimatedVectorImageVisual01(void) int UtcDaliVisualFactoryGetAnimatedVectorImageVisual02(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual02: Request animated vector image visual with a Property::Map" ); + tet_infoline("UtcDaliVisualFactoryGetAnimatedVectorImageVisual02: Request animated vector image visual with a Property::Map"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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( 200.0f, 200.0f ) ); - application.GetScene().Add( actor ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(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(); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -130,40 +139,43 @@ int UtcDaliVisualFactoryGetAnimatedVectorImageVisual02(void) int UtcDaliVisualFactoryGetAnimatedVectorImageVisual03(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual03: Request animated vector image visual with a Property::Map" ); + tet_infoline("UtcDaliVisualFactoryGetAnimatedVectorImageVisual03: Request animated vector image visual with a Property::Map"); - int startFrame = 1, endFrame = 3; + int startFrame = 1, endFrame = 3; Property::Array playRange; - playRange.PushBack( startFrame ); - playRange.PushBack( endFrame ); + playRange.PushBack(startFrame); + playRange.PushBack(endFrame); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ) - .Add( DevelImageVisual::Property::PLAY_RANGE, playRange ) - .Add( DevelVisual::Property::CORNER_RADIUS, 50.0f ) - .Add( DevelVisual::Property::BORDERLINE_WIDTH, 20.0f ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3) + .Add(DevelImageVisual::Property::PLAY_RANGE, playRange) + .Add(DevelVisual::Property::CORNER_RADIUS, 50.0f) + .Add(DevelVisual::Property::BORDERLINE_WIDTH, 20.0f); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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( 200.0f, 200.0f ) ); - application.GetScene().Add( actor ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(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(); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -171,106 +183,106 @@ int UtcDaliVisualFactoryGetAnimatedVectorImageVisual03(void) int UtcDaliVisualFactoryGetAnimatedVectorImageVisual04(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetAnimatedVectorImageVisual04: Request animated vector image visual with a Property::Map" ); + tet_infoline("UtcDaliVisualFactoryGetAnimatedVectorImageVisual04: Request animated vector image visual with a Property::Map"); - int startFrame = 1, endFrame = 3; - float cornerRadius = 22.0f; - float borderlineWidth = 2.0f; - Vector4 borderlineColor = Vector4(1.0f, 1.0f, 1.0f, 1.0f); - float borderlineOffset = 0.1f; + int startFrame = 1, endFrame = 3; + float cornerRadius = 22.0f; + float borderlineWidth = 2.0f; + Vector4 borderlineColor = Vector4(1.0f, 1.0f, 1.0f, 1.0f); + float borderlineOffset = 0.1f; Property::Array playRange; - playRange.PushBack( startFrame ); - playRange.PushBack( endFrame ); + playRange.PushBack(startFrame); + playRange.PushBack(endFrame); Property::Map propertyMap; - propertyMap.Add( "visualType", DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( "url", TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( "loopCount", 3 ) - .Add( "playRange", playRange ) - .Add( "stopBehavior", DevelImageVisual::StopBehavior::FIRST_FRAME ) - .Add( "loopingMode", DevelImageVisual::LoopingMode::AUTO_REVERSE ) - .Add( "redrawInScalingDown", false ) - .Add( "cornerRadius", cornerRadius ) - .Add( "borderlineWidth", borderlineWidth ) - .Add( "borderlineColor", borderlineColor ) - .Add( "borderlineOffset", borderlineOffset ); - - 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( 200.0f, 200.0f ) ); - application.GetScene().Add( actor ); + propertyMap.Add("visualType", DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add("url", TEST_VECTOR_IMAGE_FILE_NAME) + .Add("loopCount", 3) + .Add("playRange", playRange) + .Add("stopBehavior", DevelImageVisual::StopBehavior::FIRST_FRAME) + .Add("loopingMode", DevelImageVisual::LoopingMode::AUTO_REVERSE) + .Add("redrawInScalingDown", false) + .Add("cornerRadius", cornerRadius) + .Add("borderlineWidth", borderlineWidth) + .Add("borderlineColor", borderlineColor) + .Add("borderlineOffset", borderlineOffset); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(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(); - // Trigger count is 1 - render a frame - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); Property::Map resultMap; - visual.CreatePropertyMap( resultMap ); + visual.CreatePropertyMap(resultMap); // check the property values from the returned map from a visual - Property::Value* value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME ); + Property::Value* value = resultMap.Find(ImageVisual::Property::URL, Property::STRING); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == TEST_VECTOR_IMAGE_FILE_NAME); - value = resultMap.Find( DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == 3 ); + value = resultMap.Find(DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 3); - value = resultMap.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY ); - DALI_TEST_CHECK( value ); + value = resultMap.Find(DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY); + DALI_TEST_CHECK(value); Property::Array* result = value->GetArray(); - DALI_TEST_CHECK( result ); + DALI_TEST_CHECK(result); - DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame ); - DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame ); + DALI_TEST_CHECK(result->GetElementAt(0).Get() == startFrame); + DALI_TEST_CHECK(result->GetElementAt(1).Get() == endFrame); - value = resultMap.Find( DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::StopBehavior::FIRST_FRAME ); + value = resultMap.Find(DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::StopBehavior::FIRST_FRAME); - value = resultMap.Find( DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::LoopingMode::AUTO_REVERSE ); + value = resultMap.Find(DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::LoopingMode::AUTO_REVERSE); - value = resultMap.Find( DevelImageVisual::Property::REDRAW_IN_SCALING_DOWN, Property::BOOLEAN ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< bool >() == false ); + value = resultMap.Find(DevelImageVisual::Property::REDRAW_IN_SCALING_DOWN, Property::BOOLEAN); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == false); - value = resultMap.Find( DevelVisual::Property::CORNER_RADIUS, Property::VECTOR4 ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< Vector4 >(), Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius), TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::CORNER_RADIUS, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), Vector4(cornerRadius, cornerRadius, cornerRadius, cornerRadius), TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::CORNER_RADIUS_POLICY, "cornerRadiusPolicy" ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == Visual::Transform::Policy::ABSOLUTE ); + value = resultMap.Find(DevelVisual::Property::CORNER_RADIUS_POLICY, "cornerRadiusPolicy"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == Visual::Transform::Policy::ABSOLUTE); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_WIDTH, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), borderlineWidth, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_WIDTH, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineWidth, TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_COLOR, Property::VECTOR4 ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< Vector4 >(), borderlineColor, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_COLOR, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineColor, TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_OFFSET, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), borderlineOffset, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_OFFSET, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineOffset, TEST_LOCATION); - actor.Unparent( ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + actor.Unparent(); + DALI_TEST_CHECK(actor.GetRendererCount() == 0u); END_TEST; } @@ -278,120 +290,121 @@ int UtcDaliVisualFactoryGetAnimatedVectorImageVisual04(void) int UtcDaliAnimatedVectorImageVisualGetPropertyMap01(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualGetPropertyMap01" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualGetPropertyMap01"); - int startFrame = 1, endFrame = 3; - Vector4 cornerRadius(50.0f, 22.0f, 0.0f, 3.0f); - float borderlineWidth = 2.3f; - Vector4 borderlineColor = Vector4(0.3f, 0.3f, 1.0f, 1.0f); - float borderlineOffset = 0.3f; + int startFrame = 1, endFrame = 3; + Vector4 cornerRadius(50.0f, 22.0f, 0.0f, 3.0f); + float borderlineWidth = 2.3f; + Vector4 borderlineColor = Vector4(0.3f, 0.3f, 1.0f, 1.0f); + float borderlineOffset = 0.3f; Property::Array playRange; - playRange.PushBack( startFrame ); - playRange.PushBack( endFrame ); + playRange.PushBack(startFrame); + playRange.PushBack(endFrame); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ) - .Add( DevelImageVisual::Property::PLAY_RANGE, playRange ) - .Add( DevelVisual::Property::CORNER_RADIUS, cornerRadius ) - .Add( DevelVisual::Property::CORNER_RADIUS_POLICY, Visual::Transform::Policy::RELATIVE) - .Add( DevelVisual::Property::BORDERLINE_WIDTH, borderlineWidth ) - .Add( DevelVisual::Property::BORDERLINE_COLOR, borderlineColor ) - .Add( DevelVisual::Property::BORDERLINE_OFFSET, borderlineOffset ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3) + .Add(DevelImageVisual::Property::PLAY_RANGE, playRange) + .Add(DevelVisual::Property::CORNER_RADIUS, cornerRadius) + .Add(DevelVisual::Property::CORNER_RADIUS_POLICY, Visual::Transform::Policy::RELATIVE) + .Add(DevelVisual::Property::BORDERLINE_WIDTH, borderlineWidth) + .Add(DevelVisual::Property::BORDERLINE_COLOR, borderlineColor) + .Add(DevelVisual::Property::BORDERLINE_OFFSET, borderlineOffset); // request AnimatedVectorImageVisual with a property map VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( propertyMap ); + Visual::Base visual = factory.CreateVisual(propertyMap); - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); Property::Map resultMap; - resultMap = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); + resultMap = actor.GetProperty(DummyControl::Property::TEST_VISUAL); // check the property values from the returned map from a visual - Property::Value* value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE ); + Property::Value* value = resultMap.Find(Toolkit::Visual::Property::TYPE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelVisual::ANIMATED_VECTOR_IMAGE); - value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME ); + value = resultMap.Find(ImageVisual::Property::URL, Property::STRING); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == TEST_VECTOR_IMAGE_FILE_NAME); - value = resultMap.Find( DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == 3 ); + value = resultMap.Find(DevelImageVisual::Property::LOOP_COUNT, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 3); - value = resultMap.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY ); - DALI_TEST_CHECK( value ); + value = resultMap.Find(DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY); + DALI_TEST_CHECK(value); Property::Array* result = value->GetArray(); - DALI_TEST_CHECK( result ); + DALI_TEST_CHECK(result); - DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame ); - DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame ); + DALI_TEST_CHECK(result->GetElementAt(0).Get() == startFrame); + DALI_TEST_CHECK(result->GetElementAt(1).Get() == endFrame); - value = resultMap.Find( DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::StopBehavior::CURRENT_FRAME ); + value = resultMap.Find(DevelImageVisual::Property::STOP_BEHAVIOR, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::StopBehavior::CURRENT_FRAME); - value = resultMap.Find( DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::LoopingMode::RESTART ); + value = resultMap.Find(DevelImageVisual::Property::LOOPING_MODE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::LoopingMode::RESTART); - value = resultMap.Find( DevelImageVisual::Property::CONTENT_INFO, Property::MAP ); - DALI_TEST_CHECK( value ); + value = resultMap.Find(DevelImageVisual::Property::CONTENT_INFO, Property::MAP); + DALI_TEST_CHECK(value); - value = resultMap.Find( DevelImageVisual::Property::REDRAW_IN_SCALING_DOWN, Property::BOOLEAN ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< bool >() == true ); // Check default value + value = resultMap.Find(DevelImageVisual::Property::REDRAW_IN_SCALING_DOWN, Property::BOOLEAN); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == true); // Check default value - value = resultMap.Find( DevelVisual::Property::CORNER_RADIUS, Property::VECTOR4 ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< Vector4 >(), cornerRadius, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::CORNER_RADIUS, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), cornerRadius, TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::CORNER_RADIUS_POLICY, "cornerRadiusPolicy" ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == Visual::Transform::Policy::RELATIVE ); + value = resultMap.Find(DevelVisual::Property::CORNER_RADIUS_POLICY, "cornerRadiusPolicy"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == Visual::Transform::Policy::RELATIVE); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_WIDTH, "borderlineWidth" ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), borderlineWidth, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_WIDTH, "borderlineWidth"); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineWidth, TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_COLOR, Property::VECTOR4 ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< Vector4 >(), borderlineColor, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_COLOR, Property::VECTOR4); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineColor, TEST_LOCATION); - value = resultMap.Find( DevelVisual::Property::BORDERLINE_OFFSET, Property::FLOAT ); - DALI_TEST_CHECK( value ); - DALI_TEST_EQUALS( value->Get< float >(), borderlineOffset, TEST_LOCATION ); + value = resultMap.Find(DevelVisual::Property::BORDERLINE_OFFSET, Property::FLOAT); + DALI_TEST_CHECK(value); + DALI_TEST_EQUALS(value->Get(), borderlineOffset, TEST_LOCATION); // request AnimatedVectorImageVisual with an URL - Visual::Base visual2 = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() ); + Visual::Base visual2 = factory.CreateVisual(TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions()); resultMap.Clear(); - visual2.CreatePropertyMap( resultMap ); + visual2.CreatePropertyMap(resultMap); // check the property values from the returned map from a visual - value = resultMap.Find( Toolkit::Visual::Property::TYPE, Property::INTEGER ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< int >() == DevelVisual::ANIMATED_VECTOR_IMAGE ); + value = resultMap.Find(Toolkit::Visual::Property::TYPE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == DevelVisual::ANIMATED_VECTOR_IMAGE); - value = resultMap.Find( ImageVisual::Property::URL, Property::STRING ); - DALI_TEST_CHECK( value ); - DALI_TEST_CHECK( value->Get< std::string >() == TEST_VECTOR_IMAGE_FILE_NAME ); + value = resultMap.Find(ImageVisual::Property::URL, Property::STRING); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == TEST_VECTOR_IMAGE_FILE_NAME); END_TEST; } @@ -400,123 +413,123 @@ int UtcDaliAnimatedVectorImageVisualPlayback(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayback" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualPlayback"); { // request AnimatedVectorImageVisual with a property map VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( + Visual::Base visual = factory.CreateVisual( Property::Map() - .Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) ); + .Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_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 ); + DummyControl dummyControl = DummyControl::New(true); + Impl::DummyControl& dummyImpl = static_cast(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 ); + tet_infoline("Test Play action"); + DevelControl::DoAction(dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); - application.GetScene().Add( dummyControl ); + application.GetScene().Add(dummyControl); application.SendNotification(); - application.Render( 16 ); + 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 ); + Property::Map map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::PLAYING); - tet_infoline( "Test Pause action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::PAUSED); - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::PLAYING); - tet_infoline( "Test Stop action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::STOPPED); - tet_infoline( "Test Stop action again" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::STOPPED); - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::PLAYING); - tet_infoline( "Off stage" ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::STOPPED); - tet_infoline( "On stage again" ); - application.GetScene().Add( dummyControl ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::STOPPED); - tet_infoline( "Test Play action" ); - DevelControl::DoAction( dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + 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 ); + map = dummyControl.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::PLAYING); // Change Size - Vector3 newSize( 100.0f, 100.0f, 0.0f ); - dummyControl.SetProperty( Actor::Property::SIZE, newSize ); + 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 ); + DALI_TEST_CHECK(naturalSize == newSize); dummyControl.Unparent(); } @@ -527,48 +540,51 @@ int UtcDaliAnimatedVectorImageVisualPlayback(void) int UtcDaliAnimatedVectorImageVisualCustomShader(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualCustomShader Test custom shader" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualCustomShader Test custom shader"); - VisualFactory factory = VisualFactory::Get(); - Property::Map properties; - Property::Map shader; - const std::string vertexShader = "Foobar"; - const std::string fragmentShader = "Foobar sampler2D Foobar"; + VisualFactory factory = VisualFactory::Get(); + Property::Map properties; + Property::Map shader; + const std::string vertexShader = "Foobar"; + const std::string fragmentShader = "Foobar sampler2D Foobar"; shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader; - shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader; + shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader; - properties[Visual::Property::TYPE] = Visual::IMAGE; - properties[Visual::Property::SHADER] = shader; + properties[Visual::Property::TYPE] = Visual::IMAGE; + properties[Visual::Property::SHADER] = shader; properties[ImageVisual::Property::URL] = TEST_VECTOR_IMAGE_FILE_NAME; - Visual::Base visual = factory.CreateVisual( properties ); + Visual::Base visual = factory.CreateVisual(properties); // trigger creation through setting on stage - DummyControl dummy = DummyControl::New( true ); - Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummy.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + DummyControl dummy = DummyControl::New(true); + Impl::DummyControl& dummyImpl = static_cast(dummy.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - dummy.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 200.f ) ); - dummy.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); - application.GetScene().Add( dummy ); + dummy.SetProperty(Actor::Property::SIZE, Vector2(200.f, 200.f)); + dummy.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + application.GetScene().Add(dummy); application.SendNotification(); application.Render(); - Renderer renderer = dummy.GetRendererAt( 0 ); - Shader shader2 = renderer.GetShader(); - Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM ); - Property::Map* map = value.GetMap(); - DALI_TEST_CHECK( map ); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); - std::string resultFragmentShader, resultVertexShader; - Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp - fragment->Get( resultFragmentShader ); - DALI_TEST_CHECK( resultFragmentShader.find( fragmentShader ) != std::string::npos ); + Renderer renderer = dummy.GetRendererAt(0); + Shader shader2 = renderer.GetShader(); + Property::Value value = shader2.GetProperty(Shader::Property::PROGRAM); + Property::Map* map = value.GetMap(); + DALI_TEST_CHECK(map); - Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp - vertex->Get( resultVertexShader ); - DALI_TEST_CHECK( resultVertexShader.find( vertexShader ) != std::string::npos ); + std::string resultFragmentShader, resultVertexShader; + Property::Value* fragment = map->Find("fragment"); // fragment key name from shader-impl.cpp + fragment->Get(resultFragmentShader); + DALI_TEST_CHECK(resultFragmentShader.find(fragmentShader) != std::string::npos); + + Property::Value* vertex = map->Find("vertex"); // vertex key name from shader-impl.cpp + vertex->Get(resultVertexShader); + DALI_TEST_CHECK(resultVertexShader.find(vertexShader) != std::string::npos); END_TEST; } @@ -576,36 +592,39 @@ int UtcDaliAnimatedVectorImageVisualCustomShader(void) int UtcDaliAnimatedVectorImageVisualNaturalSize(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualNaturalSize" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualNaturalSize"); VisualFactory factory = VisualFactory::Get(); - Visual::Base visual = factory.CreateVisual( TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions() ); - DALI_TEST_CHECK( visual ); + Visual::Base visual = factory.CreateVisual(TEST_VECTOR_IMAGE_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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); + Vector2 controlSize(20.f, 30.f); Vector2 naturalSize; - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); - visual.GetNaturalSize( naturalSize ); + // Trigger count is 1 - load + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + visual.GetNaturalSize(naturalSize); - DALI_TEST_EQUALS( naturalSize, Vector2( 100.0f, 100.0f ), TEST_LOCATION ); // 100x100 is the content default size. + DALI_TEST_EQUALS(naturalSize, Vector2(100.0f, 100.0f), TEST_LOCATION); // 100x100 is the content default size. - actor.SetProperty( Actor::Property::SIZE, controlSize ); + actor.SetProperty(Actor::Property::SIZE, controlSize); application.SendNotification(); application.Render(); - visual.GetNaturalSize( naturalSize ); + visual.GetNaturalSize(naturalSize); - DALI_TEST_EQUALS( naturalSize, controlSize, TEST_LOCATION ); + DALI_TEST_EQUALS(naturalSize, controlSize, TEST_LOCATION); END_TEST; } @@ -613,38 +632,38 @@ int UtcDaliAnimatedVectorImageVisualNaturalSize(void) int UtcDaliAnimatedVectorImageVisualLoopCount(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualLoopCount" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualLoopCount"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - // Trigger count is 1 - render a frame - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); END_TEST; } @@ -652,119 +671,129 @@ int UtcDaliAnimatedVectorImageVisualLoopCount(void) int UtcDaliAnimatedVectorImageVisualPlayRange(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayRange" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualPlayRange"); - int startFrame = 1, endFrame = 3; + int startFrame = 1, endFrame = 3; Property::Array array; - array.PushBack( endFrame ); - array.PushBack( startFrame ); + array.PushBack(endFrame); + array.PushBack(startFrame); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::PLAY_RANGE, array ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::PLAY_RANGE, array); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::PLAY_RANGE); - int resultStartFrame, resultEndFrame; + int resultStartFrame, resultEndFrame; Property::Array* result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( startFrame, resultStartFrame, TEST_LOCATION ); - DALI_TEST_EQUALS( endFrame, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(startFrame, resultStartFrame, TEST_LOCATION); + DALI_TEST_EQUALS(endFrame, resultEndFrame, TEST_LOCATION); // Set invalid play range array.Clear(); - array.PushBack( 1 ); - array.PushBack( 100 ); + array.PushBack(1); + array.PushBack(100); attributes.Clear(); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( startFrame, resultStartFrame, TEST_LOCATION ); // Should not be changed - DALI_TEST_EQUALS( endFrame, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(startFrame, resultStartFrame, TEST_LOCATION); // Should not be changed + DALI_TEST_EQUALS(endFrame, resultEndFrame, TEST_LOCATION); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, Property::Map() ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, Property::Map()); application.SendNotification(); application.Render(); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 3, TEST_LOCATION); array.Clear(); - array.PushBack( 0 ); - array.PushBack( 2 ); + array.PushBack(0); + array.PushBack(2); attributes.Clear(); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( 0, resultStartFrame, TEST_LOCATION ); - DALI_TEST_EQUALS( 2, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(0, resultStartFrame, TEST_LOCATION); + DALI_TEST_EQUALS(2, resultEndFrame, TEST_LOCATION); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 2, TEST_LOCATION ); // CURRENT_FRAME_NUMBER should be changed also. + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 2, TEST_LOCATION); // CURRENT_FRAME_NUMBER should be changed also. END_TEST; } @@ -772,99 +801,106 @@ int UtcDaliAnimatedVectorImageVisualPlayRange(void) int UtcDaliAnimatedVectorImageVisualPlayRangeMarker(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualPlayRangeMarker" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualPlayRangeMarker"); Property::Array array; - array.PushBack( VECTOR_ANIMATION_MARKER_NAME_1 ); + array.PushBack(VECTOR_ANIMATION_MARKER_NAME_1); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::PLAY_RANGE, array ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::PLAY_RANGE, array); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); // renderer is added to actor - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::PLAY_RANGE); - int resultStartFrame, resultEndFrame; + int resultStartFrame, resultEndFrame; Property::Array* result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION ); - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_END_FRAME_1, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION); + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_END_FRAME_1, resultEndFrame, TEST_LOCATION); // Set 2 markers array.Clear(); - array.PushBack( VECTOR_ANIMATION_MARKER_NAME_1 ); - array.PushBack( VECTOR_ANIMATION_MARKER_NAME_2 ); + array.PushBack(VECTOR_ANIMATION_MARKER_NAME_1); + array.PushBack(VECTOR_ANIMATION_MARKER_NAME_2); attributes.Clear(); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION ); - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_END_FRAME_2, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION); + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_END_FRAME_2, resultEndFrame, TEST_LOCATION); // Set invalid play range array.Clear(); - array.PushBack( 1 ); - array.PushBack( VECTOR_ANIMATION_MARKER_NAME_1 ); + array.PushBack(1); + array.PushBack(VECTOR_ANIMATION_MARKER_NAME_1); attributes.Clear(); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelVisual::Action::UPDATE_PROPERTY, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - result->GetElementAt( 0 ).Get( resultStartFrame ); - result->GetElementAt( 1 ).Get( resultEndFrame ); + result->GetElementAt(0).Get(resultStartFrame); + result->GetElementAt(1).Get(resultEndFrame); - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION ); // Should not be changed - DALI_TEST_EQUALS( VECTOR_ANIMATION_MARKER_END_FRAME_2, resultEndFrame, TEST_LOCATION ); + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_START_FRAME_1, resultStartFrame, TEST_LOCATION); // Should not be changed + DALI_TEST_EQUALS(VECTOR_ANIMATION_MARKER_END_FRAME_2, resultEndFrame, TEST_LOCATION); END_TEST; } @@ -872,41 +908,41 @@ int UtcDaliAnimatedVectorImageVisualPlayRangeMarker(void) int UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - DevelControl::VisualEventSignal( actor ).Connect( &VisualEventSignal ); + DevelControl::VisualEventSignal(actor).Connect(&VisualEventSignal); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - // Wait for animation finish - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION ); + // Wait for animation finish - load, render, finish + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(3), true, TEST_LOCATION); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::PLAY_STATE ); - DALI_TEST_CHECK( value->Get< int >() == DevelImageVisual::PlayState::STOPPED ); + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::PLAY_STATE); + DALI_TEST_CHECK(value->Get() == DevelImageVisual::PlayState::STOPPED); - DALI_TEST_EQUALS( gAnimationFinishedSignalFired, true, TEST_LOCATION ); + DALI_TEST_EQUALS(gAnimationFinishedSignalFired, true, TEST_LOCATION); END_TEST; } @@ -914,108 +950,125 @@ int UtcDaliAnimatedVectorImageVisualAnimationFinishedSignal(void) int UtcDaliAnimatedVectorImageVisualJumpTo(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualJumpTo" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualJumpTo"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); - tet_printf( "1. Visual is created.\n" ); + tet_printf("1. Visual is created.\n"); - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 2 ); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 2); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 2, TEST_LOCATION ); + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 2, TEST_LOCATION); - tet_printf( "2. The current frame number is [%d].\n", value->Get< int >() ); + tet_printf("2. The current frame number is [%d].\n", value->Get()); Property::Array array; - array.PushBack( 0 ); - array.PushBack( 2 ); + array.PushBack(0); + array.PushBack(2); Property::Map attributes; - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + 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); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 ); + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 2, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 2, TEST_LOCATION); - tet_printf( "3. The current frame number is [%d].\n", value->Get< int >() ); + tet_printf("3. The current frame number is [%d].\n", value->Get()); // Change play range attributes.Clear(); array.Clear(); - array.PushBack( 0 ); - array.PushBack( 4 ); + array.PushBack(0); + array.PushBack(4); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, array ); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY, attributes ); + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, array); + 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 ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - // Stop and jump to 3 - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); + // Wait for animation finish + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + // Jump to 3 + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 ); + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 3, TEST_LOCATION); - tet_printf( "4. The current frame number is [%d].\n", value->Get< int >() ); + tet_printf("4. The current frame number is [%d].\n", value->Get()); // Jump to the same position - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3 ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::JUMP_TO, 3); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 3, TEST_LOCATION); - tet_printf( "5. The current frame number is [%d].\n", value->Get< int >() ); + tet_printf("5. The current frame number is [%d].\n", value->Get()); END_TEST; } @@ -1023,116 +1076,123 @@ int UtcDaliAnimatedVectorImageVisualJumpTo(void) int UtcDaliAnimatedVectorImageVisualUpdateProperty(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualUpdateProperty" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualUpdateProperty"); - int startFrame = 1, endFrame = 3; + int startFrame = 1, endFrame = 3; Property::Array playRange; - playRange.PushBack( startFrame ); - playRange.PushBack( endFrame ); + playRange.PushBack(startFrame); + playRange.PushBack(endFrame); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ) - .Add( DevelImageVisual::Property::PLAY_RANGE, playRange ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3) + .Add(DevelImageVisual::Property::PLAY_RANGE, playRange); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::LOOP_COUNT ); - DALI_TEST_EQUALS( value->Get< int >(), 3, TEST_LOCATION ); + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::LOOP_COUNT); + DALI_TEST_EQUALS(value->Get(), 3, TEST_LOCATION); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY ); - DALI_TEST_CHECK( value ); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE, Property::ARRAY); + DALI_TEST_CHECK(value); Property::Array* result = value->GetArray(); - DALI_TEST_CHECK( result ); + DALI_TEST_CHECK(result); - DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame ); - DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame ); + DALI_TEST_CHECK(result->GetElementAt(0).Get() == startFrame); + DALI_TEST_CHECK(result->GetElementAt(1).Get() == endFrame); playRange.Clear(); - playRange.PushBack( 0 ); - playRange.PushBack( 2 ); + playRange.PushBack(0); + playRange.PushBack(2); Property::Map attributes; - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange ); - attributes.Add( DevelImageVisual::Property::LOOP_COUNT, 5 ); + 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); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::LOOP_COUNT ); - DALI_TEST_EQUALS( value->Get< int >(), 5, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::LOOP_COUNT); + DALI_TEST_EQUALS(value->Get(), 5, TEST_LOCATION); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - DALI_TEST_CHECK( result ); + DALI_TEST_CHECK(result); - DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == 0 ); - DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == 2 ); + DALI_TEST_CHECK(result->GetElementAt(0).Get() == 0); + DALI_TEST_CHECK(result->GetElementAt(1).Get() == 2); attributes.Clear(); playRange.Clear(); - playRange.PushBack( startFrame ); - playRange.PushBack( endFrame ); + playRange.PushBack(startFrame); + playRange.PushBack(endFrame); + + attributes.Add(DevelImageVisual::Property::PLAY_RANGE, playRange); - attributes.Add( DevelImageVisual::Property::PLAY_RANGE, playRange ); + 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::UPDATE_PROPERTY, attributes ); + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 20 ) ); // wait for next rasterize thread run + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::PLAY_RANGE ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::PLAY_RANGE); result = value->GetArray(); - DALI_TEST_CHECK( result ); + DALI_TEST_CHECK(result); - DALI_TEST_CHECK( result->GetElementAt( 0 ).Get< int >() == startFrame ); - DALI_TEST_CHECK( result->GetElementAt( 1 ).Get< int >() == endFrame ); + DALI_TEST_CHECK(result->GetElementAt(0).Get() == startFrame); + DALI_TEST_CHECK(result->GetElementAt(1).Get() == endFrame); // Play and update property attributes.Clear(); - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - attributes.Add( DevelImageVisual::Property::LOOP_COUNT, 10 ); + 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(); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::LOOP_COUNT ); - DALI_TEST_EQUALS( value->Get< int >(), 10, TEST_LOCATION ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::LOOP_COUNT); + DALI_TEST_EQUALS(value->Get(), 10, TEST_LOCATION); END_TEST; } @@ -1140,93 +1200,106 @@ int UtcDaliAnimatedVectorImageVisualUpdateProperty(void) int UtcDaliAnimatedVectorImageVisualStopBehavior(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualStopBehavior" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualStopBehavior"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ) - .Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::FIRST_FRAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3) + .Add(DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::FIRST_FRAME); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - // Trigger count is 1 - animation finished - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION ); + // Trigger count is 3 - load, render, animation finished + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(3), true, TEST_LOCATION); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 0, TEST_LOCATION); // Should be the first frame // Change stop behavior - attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME ); + 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(); // Play again - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Trigger count is 1 - animation finished - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); - Property::Value* value1 = map.Find( DevelImageVisual::Property::TOTAL_FRAME_NUMBER ); - int totalFrameNumber = value1->Get< int >(); + Property::Value* value1 = map.Find(DevelImageVisual::Property::TOTAL_FRAME_NUMBER); + int totalFrameNumber = value1->Get(); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), totalFrameNumber - 1, TEST_LOCATION ); // Should be the last frame + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), totalFrameNumber - 1, TEST_LOCATION); // Should be the last frame // Change stop behavior - attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME ); - attributes.Add( DevelImageVisual::Property::LOOP_COUNT, -1 ); + 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(); // Play again - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Pause - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PAUSE, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); + + application.SendNotification(); + application.Render(); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - int currentFrameNumber = value->Get< int >(); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + int currentFrameNumber = value->Get(); // Stop - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::STOP, attributes); + + // To make event trigger + actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); application.SendNotification(); - application.Render( 16 ); + application.Render(); + + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), currentFrameNumber, TEST_LOCATION ); // Should be same with currentFrameNumber + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), currentFrameNumber, TEST_LOCATION); // Should be same with currentFrameNumber END_TEST; } @@ -1234,78 +1307,78 @@ int UtcDaliAnimatedVectorImageVisualStopBehavior(void) int UtcDaliAnimatedVectorImageVisualLoopingMode(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualLoopingMode" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualLoopingMode"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ) - .Add( DevelImageVisual::Property::LOOP_COUNT, 3 ) - .Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME ) - .Add( DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::AUTO_REVERSE ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME) + .Add(DevelImageVisual::Property::LOOP_COUNT, 3) + .Add(DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME) + .Add(DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::AUTO_REVERSE); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); - // Trigger count is 1 - animation finished - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 2 ), true, TEST_LOCATION ); + // Trigger count is 3 - load, render, animation finished + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(3), true, TEST_LOCATION); - Property::Map map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - Property::Value* value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame because of auto reverse + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 0, TEST_LOCATION); // Should be the first frame because of auto reverse // Change stop behavior - attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::CURRENT_FRAME ); + 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 ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Trigger count is 1 - animation finished - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), 0, TEST_LOCATION ); // Should be the first frame + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), 0, TEST_LOCATION); // Should be the first frame // Change looping mode - attributes.Add( DevelImageVisual::Property::LOOPING_MODE, DevelImageVisual::LoopingMode::RESTART ); + 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 ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Trigger count is 1 - animation finished - DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); - Property::Value* value1 = map.Find( DevelImageVisual::Property::TOTAL_FRAME_NUMBER ); - int totalFrameNumber = value1->Get< int >(); + Property::Value* value1 = map.Find(DevelImageVisual::Property::TOTAL_FRAME_NUMBER); + int totalFrameNumber = value1->Get(); - map = actor.GetProperty< Property::Map >( DummyControl::Property::TEST_VISUAL ); - value = map.Find( DevelImageVisual::Property::CURRENT_FRAME_NUMBER ); - DALI_TEST_EQUALS( value->Get< int >(), totalFrameNumber - 1, TEST_LOCATION ); // Should be the last frame + map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + value = map.Find(DevelImageVisual::Property::CURRENT_FRAME_NUMBER); + DALI_TEST_EQUALS(value->Get(), totalFrameNumber - 1, TEST_LOCATION); // Should be the last frame END_TEST; } @@ -1313,25 +1386,33 @@ int UtcDaliAnimatedVectorImageVisualLoopingMode(void) int UtcDaliAnimatedVectorImageVisualPropertyNotification(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualPropertyNotification" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualPropertyNotification"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + actor.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + application.GetScene().Add(actor); - DummyControl actor = DummyControl::New( true ); - DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + application.SendNotification(); + application.Render(); - Vector2 controlSize( 20.f, 30.f ); - Vector3 controlScale( 2.0f, 2.0f, 1.0f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); - actor.SetProperty( Actor::Property::SCALE, controlScale ); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); - application.GetScene().Add( actor ); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); + + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); application.SendNotification(); application.Render(); @@ -1339,20 +1420,18 @@ int UtcDaliAnimatedVectorImageVisualPropertyNotification(void) application.SendNotification(); application.Render(); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + // Trigger count is 1 - render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); auto textureSet = renderer.GetTextures(); - auto texture = textureSet.GetTexture(0); + auto texture = textureSet.GetTexture(0); - DALI_TEST_EQUALS( controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION ); - DALI_TEST_EQUALS( controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION ); + DALI_TEST_EQUALS(controlSize.width, texture.GetWidth(), TEST_LOCATION); + DALI_TEST_EQUALS(controlSize.height, texture.GetHeight(), TEST_LOCATION); - // Change scale and size - controlSize = Vector2( 50.f, 40.f ); - controlScale= Vector3( 0.5f, 0.5f, 1.0f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); - actor.SetProperty( Actor::Property::SCALE, controlScale ); + // Change scale + Vector3 controlScale(2.0f, 2.0f, 1.0f); + actor.SetProperty(Actor::Property::SCALE, controlScale); application.SendNotification(); application.Render(); @@ -1360,14 +1439,41 @@ int UtcDaliAnimatedVectorImageVisualPropertyNotification(void) application.SendNotification(); application.Render(); - renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); + // Trigger count is 1 - render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); + + textureSet = renderer.GetTextures(); + texture = textureSet.GetTexture(0); + + DALI_TEST_EQUALS(controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION); + DALI_TEST_EQUALS(controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION); + + // Size animation + controlSize = Vector2(50.0f, 100.0f); + Animation animation = Animation::New(1.0); + animation.AnimateTo(Property(actor, Actor::Property::SIZE), Vector3(controlSize.x, controlSize.y, 0.0f)); + animation.Play(); + + application.SendNotification(); + application.Render(1100); // After the animation + + application.SendNotification(); + application.Render(); + + // Trigger count is 1 - render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); textureSet = renderer.GetTextures(); - texture = textureSet.GetTexture(0); + texture = textureSet.GetTexture(0); - DALI_TEST_EQUALS( controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION ); - DALI_TEST_EQUALS( controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION ); + DALI_TEST_EQUALS(controlSize.width * controlScale.width, texture.GetWidth(), TEST_LOCATION); + DALI_TEST_EQUALS(controlSize.height * controlScale.height, texture.GetHeight(), TEST_LOCATION); END_TEST; } @@ -1375,63 +1481,72 @@ int UtcDaliAnimatedVectorImageVisualPropertyNotification(void) int UtcDaliAnimatedVectorImageVisualMultipleInstances(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualMultipleInstances" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualMultipleInstances"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); - Visual::Base visual1 = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual1 ); + Visual::Base visual1 = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual1); - DummyControl actor1 = DummyControl::New( true ); - DummyControlImpl& dummyImpl1 = static_cast< DummyControlImpl& >( actor1.GetImplementation() ); - dummyImpl1.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual1 ); + DummyControl actor1 = DummyControl::New(true); + DummyControlImpl& dummyImpl1 = static_cast(actor1.GetImplementation()); + dummyImpl1.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual1); - Vector2 controlSize( 20.f, 30.f ); - actor1.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor1.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor1 ); + application.GetScene().Add(actor1); propertyMap.Clear(); - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); - Visual::Base visual2 = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual2 ); + Visual::Base visual2 = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual2); - DummyControl actor2 = DummyControl::New( true ); - DummyControlImpl& dummyImpl2 = static_cast< DummyControlImpl& >( actor2.GetImplementation() ); - dummyImpl2.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual2 ); + DummyControl actor2 = DummyControl::New(true); + DummyControlImpl& dummyImpl2 = static_cast(actor2.GetImplementation()); + dummyImpl2.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual2); - actor2.SetProperty( Actor::Property::SIZE, controlSize ); + actor2.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor2 ); + application.GetScene().Add(actor2); - DevelControl::DoAction( actor2, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, Property::Map() ); + application.SendNotification(); + application.Render(); + + // Trigger count is 4 - load & render a frame for each instance + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(4), true, TEST_LOCATION); + + DevelControl::DoAction(actor2, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, Property::Map()); + + // To make event trigger + actor2.SetProperty(Actor::Property::SIZE, Vector2(10.0f, 10.0f)); application.SendNotification(); application.Render(); - std::this_thread::sleep_for( std::chrono::milliseconds( 200 ) ); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); Property::Map attributes; - attributes.Add( DevelImageVisual::Property::STOP_BEHAVIOR, DevelImageVisual::StopBehavior::LAST_FRAME ); + 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() ); + DevelControl::DoAction(actor1, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, Property::Map()); // renderer is added to actor - DALI_TEST_CHECK( actor1.GetRendererCount() == 1u ); - Renderer renderer1 = actor1.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer1 ); + DALI_TEST_CHECK(actor1.GetRendererCount() == 1u); + Renderer renderer1 = actor1.GetRendererAt(0u); + DALI_TEST_CHECK(renderer1); // renderer is added to actor - DALI_TEST_CHECK( actor2.GetRendererCount() == 1u ); - Renderer renderer2 = actor2.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer2 ); + DALI_TEST_CHECK(actor2.GetRendererCount() == 1u); + Renderer renderer2 = actor2.GetRendererAt(0u); + DALI_TEST_CHECK(renderer2); END_TEST; } @@ -1439,46 +1554,49 @@ int UtcDaliAnimatedVectorImageVisualMultipleInstances(void) int UtcDaliAnimatedVectorImageVisualControlVisibilityChanged(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualControlVisibilityChanged" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualControlVisibilityChanged"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Check rendering behavior - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); - DALI_TEST_CHECK( renderer.GetProperty< int >( DevelRenderer::Property::RENDERING_BEHAVIOR ) == DevelRenderer::Rendering::CONTINUOUSLY ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); + DALI_TEST_CHECK(renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR) == DevelRenderer::Rendering::CONTINUOUSLY); - actor.SetProperty( Actor::Property::VISIBLE, false ); + actor.SetProperty(Actor::Property::VISIBLE, false); application.SendNotification(); application.Render(); // Check rendering behavior again - DALI_TEST_CHECK( renderer.GetProperty< int >( DevelRenderer::Property::RENDERING_BEHAVIOR ) == DevelRenderer::Rendering::IF_REQUIRED ); + DALI_TEST_CHECK(renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR) == DevelRenderer::Rendering::IF_REQUIRED); END_TEST; } @@ -1486,78 +1604,174 @@ int UtcDaliAnimatedVectorImageVisualControlVisibilityChanged(void) int UtcDaliAnimatedVectorImageVisualWindowVisibilityChanged(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliAnimatedVectorImageVisualWindowVisibilityChanged" ); + tet_infoline("UtcDaliAnimatedVectorImageVisualWindowVisibilityChanged"); Property::Map propertyMap; - propertyMap.Add( Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE ) - .Add( ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME ); + propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME); - Visual::Base visual = VisualFactory::Get().CreateVisual( propertyMap ); - DALI_TEST_CHECK( visual ); + 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 ); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Vector2 controlSize( 20.f, 30.f ); - actor.SetProperty( Actor::Property::SIZE, controlSize ); + Vector2 controlSize(20.f, 30.f); + actor.SetProperty(Actor::Property::SIZE, controlSize); - application.GetScene().Add( actor ); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); + // Trigger count is 2 - load & render a frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + Property::Map attributes; - DevelControl::DoAction( actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes ); + DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); application.SendNotification(); application.Render(); // Check rendering behavior - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - Renderer renderer = actor.GetRendererAt( 0u ); - DALI_TEST_CHECK( renderer ); - DALI_TEST_CHECK( renderer.GetProperty< int >( DevelRenderer::Property::RENDERING_BEHAVIOR ) == DevelRenderer::Rendering::CONTINUOUSLY ); + DALI_TEST_CHECK(actor.GetRendererCount() == 1u); + Renderer renderer = actor.GetRendererAt(0u); + DALI_TEST_CHECK(renderer); + DALI_TEST_CHECK(renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR) == DevelRenderer::Rendering::CONTINUOUSLY); - Window window = DevelWindow::Get( actor ); + Window window = DevelWindow::Get(actor); window.Hide(); application.SendNotification(); application.Render(); // Check rendering behavior again - DALI_TEST_CHECK( renderer.GetProperty< int >( DevelRenderer::Property::RENDERING_BEHAVIOR ) == DevelRenderer::Rendering::IF_REQUIRED ); + DALI_TEST_CHECK(renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR) == DevelRenderer::Rendering::IF_REQUIRED); + + END_TEST; +} + +int UtcDaliAnimatedVectorImageVisualInvalidFile01(void) +{ + ToolkitTestApplication application; + tet_infoline("Request loading with invalid 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_FILE_NAME); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(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(); + + // Trigger count is 1 - load + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + 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; } -int UtcDaliAnimatedVectorImageVisualInvalidFile(void) +int UtcDaliAnimatedVectorImageVisualInvalidFile02(void) { ToolkitTestApplication application; tet_infoline("Request loading with invalid file - should draw broken image"); - TestGlAbstraction& gl = application.GetGlAbstraction(); - TraceCallStack& textureTrace = gl.GetTextureTrace(); + 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_FILE_NAME); + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_INVALID_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()); + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); actor.SetProperty(Actor::Property::SIZE, Vector2(20.0f, 20.0f)); + application.SendNotification(); + application.Render(); + + // Trigger count is 1 - load + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + // Add to the Scene after loading + 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; +} + +int UtcDaliAnimatedVectorImageVisualInvalidFile03(void) +{ + ToolkitTestApplication application; + tet_infoline("Request loading with invalid file without size set - 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_FILE_NAME); + + Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + application.GetScene().Add(actor); application.SendNotification(); application.Render(); + // Trigger count is 1 - load + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + 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); @@ -1576,12 +1790,12 @@ int UtcDaliAnimatedVectorImageVisualFrameDrops(void) Property::Map propertyMap; propertyMap.Add(Toolkit::Visual::Property::TYPE, DevelVisual::ANIMATED_VECTOR_IMAGE) - .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME_FRAME_DROP); + .Add(ImageVisual::Property::URL, TEST_VECTOR_IMAGE_FILE_NAME_FRAME_DROP); Visual::Base visual = VisualFactory::Get().CreateVisual(propertyMap); DALI_TEST_CHECK(visual); - DummyControl actor = DummyControl::New(true); + DummyControl actor = DummyControl::New(true); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); @@ -1590,6 +1804,16 @@ int UtcDaliAnimatedVectorImageVisualFrameDrops(void) application.GetScene().Add(actor); + application.SendNotification(); + application.Render(); + + // Trigger count is 2 - load, render the first frame + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + Property::Map map = actor.GetProperty(DummyControl::Property::TEST_VISUAL); + Property::Value* value = map.Find(DevelImageVisual::Property::TOTAL_FRAME_NUMBER); + int totalFrameNumber = value->Get(); + Property::Map attributes; DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes); @@ -1599,12 +1823,71 @@ int UtcDaliAnimatedVectorImageVisualFrameDrops(void) application.SendNotification(); application.Render(); - // Trigger count is 2 - render the first frame & calculating frame drops - DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + // Trigger count is 1 - calculating frame drops + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); // Check dropped frame uint32_t frames = Test::VectorAnimationRenderer::GetDroppedFrames(); DALI_TEST_CHECK(frames > 0); + DALI_TEST_CHECK(frames <= static_cast(totalFrameNumber)); + + END_TEST; +} + +int UtcDaliAnimatedVectorImageVisualSize(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliAnimatedVectorImageVisualSize"); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + + VisualFactory factory = VisualFactory::Get(); + Visual::Base visual = factory.CreateVisual(TEST_VECTOR_IMAGE_FILE_NAME, ImageDimensions()); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + + application.GetScene().Add(actor); + + application.SendNotification(); + + // Trigger count is 2 - load, resource ready + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + textureTrace.Enable(true); + + application.SendNotification(); + application.Render(); + + { + int width = 100, height = 100; // 100x100 is the content default size. + std::stringstream out; + out << GL_TEXTURE_2D << ", " << 0u << ", " << width << ", " << height; + DALI_TEST_CHECK(textureTrace.FindMethodAndParams("TexImage2D", out.str().c_str())); + } + + actor.SetProperty(Actor::Property::SIZE, Vector2(200.0f, 200.0f)); + + application.SendNotification(); + application.Render(); + + // Trigger count is 1 - resource ready + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + textureTrace.Reset(); + + application.SendNotification(); + application.Render(); + + { + int width = 200, height = 200; + std::stringstream out; + out << GL_TEXTURE_2D << ", " << 0u << ", " << width << ", " << height; + DALI_TEST_CHECK(textureTrace.FindMethodAndParams("TexImage2D", out.str().c_str())); + } END_TEST; }