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-TransitionData.cpp;h=439098fb5a679b9d7da3d019bf42281ca83b56f7;hp=58559d549086933ce7f6273cd4fa5fb1f810f738;hb=e0c063be9e7ecde0e5665079289489d456828abf;hpb=675f5551ef3c7ca20ec45c36b865a5092883af43 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp index 58559d5..439098f 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include @@ -135,7 +135,7 @@ void CHECK_MAP_EQUALS( Property::Map test, Property::Map result ) int UtcDaliTransitionDataNew(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); Dali::Toolkit::TransitionData transition = TransitionData::New( map ); @@ -146,7 +146,7 @@ int UtcDaliTransitionDataNew(void) int UtcDaliTransitionDataDownCast(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); @@ -160,7 +160,7 @@ int UtcDaliTransitionDataDownCast(void) int UtcDaliTransitionDataCopyConstructor(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); @@ -175,7 +175,7 @@ int UtcDaliTransitionDataCopyConstructor(void) int UtcDaliTransitionDataAssignmentOperator(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); @@ -194,7 +194,7 @@ int UtcDaliTransitionDataAssignmentOperator(void) int UtcDaliTransitionDataCount(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); TransitionData transitionData = TransitionData::New( map ); @@ -215,7 +215,7 @@ int UtcDaliTransitionDataCount(void) int UtcDaliTransitionDataMap1P(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing animation of a visual property using stylesheet equivalent maps\n"); @@ -234,9 +234,9 @@ int UtcDaliTransitionDataMap1P(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); @@ -253,37 +253,42 @@ int UtcDaliTransitionDataMap1P(void) DALI_TEST_CHECK( anim ); Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIndex = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Property::Index mixColorIndex = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Color::MAGENTA, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); anim.Play(); application.SendNotification(); - application.Render(0); application.Render(500); // Start animation application.Render(500); // Halfway thru anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), (Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); application.Render(500); // End of anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Color::RED, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::RED), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); END_TEST; } + + int UtcDaliTransitionDataMap2P(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing animation of a visual property using programmatic maps\n"); Property::Map map; map["target"] = "visual1"; - //Control::CONTROL_PROPERTY_END_INDEX + 1 map["property"] = ColorVisual::Property::MIX_COLOR; map["initialValue"] = Color::MAGENTA; map["targetValue"] = Color::RED; @@ -297,9 +302,9 @@ int UtcDaliTransitionDataMap2P(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); @@ -316,11 +321,14 @@ int UtcDaliTransitionDataMap2P(void) DALI_TEST_CHECK( anim ); Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIndex = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Property::Index mixColorIndex = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Color::MAGENTA, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); anim.Play(); @@ -329,18 +337,93 @@ int UtcDaliTransitionDataMap2P(void) application.Render(500); // Start animation application.Render(500); // Halfway thru anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), (Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION); application.Render(500); // End of anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Color::RED, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::RED), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION); END_TEST; } + +int UtcDaliTransitionDataMap2Pb(void) +{ + ToolkitTestApplication application; + + tet_printf("Testing animation of a visual property using programmatic maps\n"); + + Property::Map map; + map["target"] = "visual1"; + map["property"] = PrimitiveVisual::Property::MIX_COLOR; + map["initialValue"] = Color::MAGENTA; + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", "LINEAR") + .Add("timePeriod", Property::Map() + .Add("delay", 0.5f) + .Add("duration", 1.0f)); + + Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + + DummyControl actor = DummyControl::New(); + actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); + + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + + Property::Map visualMap; + visualMap[Visual::Property::TYPE] = Visual::PRIMITIVE; + visualMap[PrimitiveVisual::Property::MIX_COLOR] = Color::MAGENTA; + visualMap[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::SPHERE; + visualMap[ PrimitiveVisual::Property::SLICES ] = 10; + visualMap[ PrimitiveVisual::Property::STACKS ] = 10; + + Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); + visual.SetName( "visual1" ); + + Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; + dummyImpl.RegisterVisual( visualIndex, visual ); + + Animation anim = dummyImpl.CreateTransition( transition ); + DALI_TEST_CHECK( anim ); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = renderer.GetPropertyIndex( PrimitiveVisual::Property::MIX_COLOR ); + application.SendNotification(); + application.Render(0); + + DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + + anim.Play(); + + application.SendNotification(); + application.Render(0); + application.Render(500); // Start animation + application.Render(500); // Halfway thru anim + application.SendNotification(); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION); + + application.Render(500); // End of anim + application.SendNotification(); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::RED), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION); + + END_TEST; +} + + int UtcDaliTransitionDataMap3P(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing animation of an actor's position property using bezier curve\n"); @@ -359,8 +442,8 @@ int UtcDaliTransitionDataMap3P(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); Animation anim = dummyImpl.CreateTransition( transition ); @@ -368,7 +451,7 @@ int UtcDaliTransitionDataMap3P(void) application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(0,0,0), 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(0,0,0), 0.001f, TEST_LOCATION); anim.Play(); @@ -377,26 +460,26 @@ int UtcDaliTransitionDataMap3P(void) application.Render(250); // 25% application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(-10,-10,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve at 50% + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(-10,-10,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve at 50% application.Render(250); // Halfway thru map1 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(24,24,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve at 50% + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(24,24,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve at 50% application.Render(250); // End of map1 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(100,100,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(100,100,0), 1.0, TEST_LOCATION); // High epsilon as we don't have exact figure for bezier curve application.Render(250); // End of map1 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(100,100,0), TEST_LOCATION ); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(100,100,0), TEST_LOCATION ); END_TEST; } int UtcDaliTransitionDataMap4P(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing animation of a visual's transform property using programmatic maps\n"); @@ -426,8 +509,8 @@ int UtcDaliTransitionDataMap4P(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); @@ -448,6 +531,7 @@ int UtcDaliTransitionDataMap4P(void) application.Render(0); DALI_TEST_EQUALS( renderer.GetProperty(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector2 >( sizeIndex ), Vector2(10.0f, 10.0f), TEST_LOCATION); anim.Play(); @@ -456,27 +540,28 @@ int UtcDaliTransitionDataMap4P(void) application.Render(500); // Start animation application.Render(500); // Halfway thru anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(sizeIndex), Vector2(60.0f, 60.0f), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector2 >( sizeIndex ), Vector2(60.0f, 60.0f), TEST_LOCATION); application.Render(500); // End of anim application.SendNotification(); - DALI_TEST_EQUALS( renderer.GetProperty(sizeIndex), Vector2(110.0f, 110.0f), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector2 >( sizeIndex ), Vector2(110.0f, 110.0f), TEST_LOCATION ); END_TEST; } - -int UtcDaliTransitionDataMap1N(void) +int UtcDaliTransitionDataMap5P(void) { - TestApplication application; + ToolkitTestApplication application; + + tet_printf("Testing animation visual opacity using stylesheet equivalent maps\n"); Property::Map map; - map["target"] = "Actor1"; - map["property"] = "randomProperty"; - map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; + map["target"] = "visual1"; + map["property"] = "opacity"; + map["initialValue"] = 0.0f; + map["targetValue"] = 1.0f; map["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT") + .Add("alphaFunction", "EASE_IN_OUT") .Add("timePeriod", Property::Map() .Add("delay", 0.5f) .Add("duration", 1.0f)); @@ -485,46 +570,99 @@ int UtcDaliTransitionDataMap1N(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + + Property::Map visualMap; + visualMap[Visual::Property::TYPE] = Visual::COLOR; + visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; + Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); + visual.SetName( "visual1" ); + + Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; + dummyImpl.RegisterVisual( visualIndex, visual ); + Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( ! anim ); + DALI_TEST_CHECK( anim ); + + TestGlAbstraction& glAbstraction = application.GetGlAbstraction(); + glAbstraction.EnableEnableDisableCallTrace( true ); + TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace(); + std::ostringstream blendStr; + blendStr << std::hex << GL_BLEND; + + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); + application.SendNotification(); + application.Render(0); + + DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetProperty( DevelRenderer::Property::OPACITY ), 0.0f, 0.001f, TEST_LOCATION ); + + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 0.0f, 0.001f, TEST_LOCATION ); + + // The Renderer is transparent. So rendering is skipped. The state should not be changed. + DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) ); + DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) ); + + anim.Play(); + + glEnableStack.Reset(); + + application.SendNotification(); + application.Render(500); // Start animation + application.Render(500); // Halfway thru anim + application.SendNotification(); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 0.5f, 0.001f, TEST_LOCATION ); + + // Should not be changed + DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) ); + + glEnableStack.Reset(); + + application.Render(501); // End of anim + application.SendNotification(); + application.Render(); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + + DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) ); - CHECK_MAP_EQUALS( map, transition.GetAnimatorAt(0) ); END_TEST; } -int UtcDaliTransitionDataMapN3(void) +int UtcDaliTransitionDataMap6P(void) { - TestApplication application; + ToolkitTestApplication application; - tet_printf("Testing visual lookup with no renderers\n"); + tet_printf("Testing animation visual opacity using stylesheet equivalent maps\n"); Property::Map map; map["target"] = "visual1"; - map["property"] = "mixColor"; - map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; + map["property"] = "opacity"; + map["targetValue"] = 0.0f; map["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT_BACK") + .Add("alphaFunction", "EASE_IN_OUT") .Add("timePeriod", Property::Map() .Add("delay", 0.5f) .Add("duration", 1.0f)); Dali::Toolkit::TransitionData transition = TransitionData::New( map ); - CHECK_MAP_EQUALS( map, transition.GetAnimatorAt(0) ); DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - // Don't stage actor + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + Property::Map visualMap; visualMap[Visual::Property::TYPE] = Visual::COLOR; visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; @@ -535,22 +673,99 @@ int UtcDaliTransitionDataMapN3(void) dummyImpl.RegisterVisual( visualIndex, visual ); Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( !anim ); + DALI_TEST_CHECK( anim ); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); + + TestGlAbstraction& glAbstraction = application.GetGlAbstraction(); + glAbstraction.EnableEnableDisableCallTrace( true ); + TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace(); + std::ostringstream blendStr; + blendStr << std::hex << GL_BLEND; + + application.SendNotification(); + application.Render(0); + + DALI_TEST_EQUALS( renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION ); + + // Default state is disabled. So test if "Enabled" is not called. + DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) ); + + anim.Play(); + + glEnableStack.Reset(); + + application.SendNotification(); + application.Render(500); // Start animation + application.Render(500); // Halfway thru anim + application.SendNotification(); + + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 0.5f, 0.001f, TEST_LOCATION ); + + DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) ); + + glEnableStack.Reset(); + + application.Render(500); // End of anim + application.SendNotification(); + + DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION ); + DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 0.0f, 0.001f, TEST_LOCATION ); + + // GL_BLEND should not be changed: Keep enabled + DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) ); + END_TEST; } +int UtcDaliTransitionDataMap1N(void) +{ + ToolkitTestApplication application; + + Property::Map map; + map["target"] = "Actor1"; + map["property"] = "randomProperty"; + map["initialValue"] = Color::MAGENTA; + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", "EASE_OUT") + .Add("timePeriod", Property::Map() + .Add("delay", 0.5f) + .Add("duration", 1.0f)); + + Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + + DummyControl actor = DummyControl::New(); + actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); + + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + Animation anim = dummyImpl.CreateTransition( transition ); + DALI_TEST_CHECK( ! anim ); + + CHECK_MAP_EQUALS( map, transition.GetAnimatorAt(0) ); + END_TEST; +} + int UtcDaliTransitionDataMapN4(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing visual doesn't animate with duff bezier data \n"); Property::Map map; map["target"] = "visual1"; map["property"] = "mixColor"; - map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; + map["initialValue"] = Vector3(Color::MAGENTA); + map["targetValue"] = Vector3(Color::RED); map["animator"] = Property::Map() .Add("alphaFunction", Vector3(.1f,1.0f,0.5f)) .Add("timePeriod", Property::Map() @@ -561,9 +776,9 @@ int UtcDaliTransitionDataMapN4(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); Property::Map visualMap; @@ -583,17 +798,18 @@ int UtcDaliTransitionDataMapN4(void) application.SendNotification(); Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Property::Index mixColorIdx = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); tet_printf( "Test that the property has been set to target value\n"); - DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Color::RED, 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Vector3(Color::RED), 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001, TEST_LOCATION); END_TEST; } int UtcDaliTransitionDataMapN5(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing visual doesn't animate with duff bezier data \n"); @@ -612,9 +828,9 @@ int UtcDaliTransitionDataMapN5(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); Property::Map visualMap; @@ -634,17 +850,17 @@ int UtcDaliTransitionDataMapN5(void) application.SendNotification(); Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Property::Index mixColorIdx = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); tet_printf( "Test that the property has been set to target value\n"); - DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Color::RED, 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Vector3(Color::RED), 0.001, TEST_LOCATION); END_TEST; } int UtcDaliTransitionDataMapN6(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing visual doesn't animate with duff bezier data \n"); @@ -663,9 +879,9 @@ int UtcDaliTransitionDataMapN6(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); Property::Map visualMap; @@ -685,10 +901,11 @@ int UtcDaliTransitionDataMapN6(void) application.SendNotification(); Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Property::Index mixColorIdx = renderer.GetPropertyIndex( ColorVisual::Property::MIX_COLOR ); tet_printf( "Test that the property has been set to target value\n"); - DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Color::RED, 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIdx), Vector3(Color::RED), 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty( DevelRenderer::Property::OPACITY ), 1.0f, 0.001, TEST_LOCATION); END_TEST; } @@ -696,7 +913,7 @@ int UtcDaliTransitionDataMapN6(void) int UtcDaliTransitionDataArrayP(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map1; map1["target"] = "Actor1"; @@ -734,37 +951,37 @@ int UtcDaliTransitionDataArrayP(void) DummyControl actor = DummyControl::New(); actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); - actor.SetName("Actor1"); - actor.SetColor(Color::CYAN); - Stage::GetCurrent().Add(actor); - DALI_TEST_EQUALS( actor.GetCurrentOrientation(), Quaternion(Radian(0), Vector3::ZAXIS), TEST_LOCATION); + actor.SetProperty( Dali::Actor::Property::NAME,"Actor1"); + actor.SetProperty( Actor::Property::COLOR,Color::CYAN); + application.GetScene().Add(actor); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), Quaternion(Radian(0), Vector3::ZAXIS), TEST_LOCATION); DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); Animation anim = dummyImpl.CreateTransition( transition ); DALI_TEST_CHECK( anim ); application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( actor.GetCurrentColor(), Color::MAGENTA, TEST_LOCATION); - DALI_TEST_EQUALS( actor.GetCurrentOrientation(), Quaternion(Radian(Math::PI_2), Vector3::ZAXIS), TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector4 >( Actor::Property::COLOR ), Color::MAGENTA, TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), Quaternion(Radian(Math::PI_2), Vector3::ZAXIS), TEST_LOCATION); anim.Play(); application.SendNotification(); application.Render(0); // start map2 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(100,0,0), TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(100,0,0), TEST_LOCATION); application.Render(500); // Start map1 animation, halfway thru map2 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(50,50,0), TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(50,50,0), TEST_LOCATION); application.Render(500); // Halfway thru map1 anim, end of map2 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(0,100,0), TEST_LOCATION); - DALI_TEST_EQUALS( actor.GetCurrentColor(), (Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Vector3(0,100,0), TEST_LOCATION); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector4 >( Actor::Property::COLOR ), (Color::MAGENTA+Color::RED)*0.5f, TEST_LOCATION); application.Render(500); // End of map1 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentColor(), Color::RED, TEST_LOCATION ); + DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector4 >( Actor::Property::COLOR ), Color::RED, TEST_LOCATION ); END_TEST; } @@ -772,7 +989,7 @@ int UtcDaliTransitionDataArrayP(void) int UtcDaliTransitionDataGetAnimatorP(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map1; map1["target"] = "Actor1"; @@ -853,7 +1070,8 @@ int UtcDaliTransitionDataGetAnimatorP(void) Property::Map map8; map8["target"] = "Visual1"; - map8["property"] = "colorAlpha"; + map8["property"] = "opacity"; + map8["initialValue"] = 0.0f; map8["targetValue"] = 1.0f; map8["animator"] = Property::Map() .Add("alphaFunction", "EASE_IN")