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=ca57b44396705da7aa692c81bfc89255b41979dc;hp=5ca2b171e761a06d7d9fee71c8658203b9fef591;hb=HEAD;hpb=8e7cfd0c114bf778287cc6e67d0f42f3c866e205 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TransitionData.cpp index 5ca2b17..fb7ecd2 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) 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,20 +14,19 @@ * limitations under the License. */ -#include -#include #include -#include -#include #include #include #include +#include +#include +#include +#include #include "dummy-control.h" using namespace Dali; using namespace Toolkit; - void utc_dali_toolkit_transition_data_startup(void) { test_return_value = TET_UNDEF; @@ -42,60 +41,58 @@ Property::Map CreateMap() { Property::Map map; - map["target"] = "Actor1"; - map["property"] = "color"; + map["target"] = "Actor1"; + map["property"] = "color"; map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; - map["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_OUT_BACK") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT_BACK") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); return map; } -void CHECK_ARRAY_EQUALS( Property::Array test, Property::Value result ) +void CHECK_ARRAY_EQUALS(Property::Array test, Property::Value result) { - if( result.GetType() == Property::ARRAY ) + if(result.GetType() == Property::ARRAY) { // Compare arrays - Property::Array *resultArray = result.GetArray(); - DALI_TEST_EQUALS( test.Count(), resultArray->Count(), TEST_LOCATION ); - for( size_t i=0; i < std::min(test.Count(), resultArray->Count()); ++i ) + Property::Array* resultArray = result.GetArray(); + DALI_TEST_EQUALS(test.Count(), resultArray->Count(), TEST_LOCATION); + for(size_t i = 0; i < std::min(test.Count(), resultArray->Count()); ++i) { Property::Value a = test.GetElementAt(i); Property::Value b = resultArray->GetElementAt(i); - DALI_TEST_EQUALS( a.GetType(), b.GetType(), TEST_LOCATION ); - DALI_TEST_EQUALS( a, b, 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS(a.GetType(), b.GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(a, b, 0.001, TEST_LOCATION); } } - else if( result.GetType() == Property::VECTOR4 ) + else if(result.GetType() == Property::VECTOR4) { Vector4 value = result.Get(); - DALI_TEST_CHECK( test.Count() >= 4 ); - for( size_t i=0; i < 4; ++i ) + DALI_TEST_CHECK(test.Count() >= 4); + for(size_t i = 0; i < 4; ++i) { Property::Value a = test.GetElementAt(i); - DALI_TEST_EQUALS( a.GetType(), Property::FLOAT, TEST_LOCATION ); - DALI_TEST_EQUALS( a.Get(), value[i], 0.001, TEST_LOCATION ); + DALI_TEST_EQUALS(a.GetType(), Property::FLOAT, TEST_LOCATION); + DALI_TEST_EQUALS(a.Get(), value[i], 0.001, TEST_LOCATION); } } else { - DALI_TEST_CHECK( 0 ); + DALI_TEST_CHECK(0); } } -void CHECK_MAP_EQUALS( Property::Map test, Property::Map result ) +void CHECK_MAP_EQUALS(Property::Map test, Property::Map result) { DALI_TEST_EQUALS(test.Count(), result.Count(), TEST_LOCATION); - for( unsigned int i=0; i< test.Count(); ++i ) + for(unsigned int i = 0; i < test.Count(); ++i) { - KeyValuePair keyValue = test.GetKeyValue(i); + KeyValuePair keyValue = test.GetKeyValue(i); Property::Value* value; - if( keyValue.first.type == Property::Key::STRING ) + if(keyValue.first.type == Property::Key::STRING) { value = result.Find(keyValue.first.stringKey); } @@ -104,160 +101,160 @@ void CHECK_MAP_EQUALS( Property::Map test, Property::Map result ) value = result.Find(keyValue.first.indexKey); } - DALI_TEST_CHECK( value != NULL ); - if( value != NULL ) + DALI_TEST_CHECK(value != NULL); + if(value != NULL) { - if( keyValue.second.GetType() == Property::MAP ) + if(keyValue.second.GetType() == Property::MAP) { - DALI_TEST_EQUALS( keyValue.second.GetType(), value->GetType(), TEST_LOCATION ); - CHECK_MAP_EQUALS( *(keyValue.second.GetMap()), *(value->GetMap()) ); + DALI_TEST_EQUALS(keyValue.second.GetType(), value->GetType(), TEST_LOCATION); + CHECK_MAP_EQUALS(*(keyValue.second.GetMap()), *(value->GetMap())); } - else if( keyValue.second.GetType() == Property::ARRAY ) + else if(keyValue.second.GetType() == Property::ARRAY) { - CHECK_ARRAY_EQUALS( *(keyValue.second.GetArray()), *value ); + CHECK_ARRAY_EQUALS(*(keyValue.second.GetArray()), *value); } - else if( keyValue.second.GetType() == Property::STRING ) + else if(keyValue.second.GetType() == Property::STRING) { - DALI_TEST_EQUALS( keyValue.second.GetType(), value->GetType(), TEST_LOCATION ); + DALI_TEST_EQUALS(keyValue.second.GetType(), value->GetType(), TEST_LOCATION); std::string str; value->Get(str); - DALI_TEST_EQUALS( keyValue.second, str.c_str(), TEST_LOCATION ); + DALI_TEST_EQUALS(keyValue.second, str.c_str(), TEST_LOCATION); } else { - DALI_TEST_EQUALS( keyValue.second.GetType(), value->GetType(), TEST_LOCATION ); - DALI_TEST_EQUALS( keyValue.second, *value, 0.001f, TEST_LOCATION ); + DALI_TEST_EQUALS(keyValue.second.GetType(), value->GetType(), TEST_LOCATION); + DALI_TEST_EQUALS(keyValue.second, *value, 0.001f, TEST_LOCATION); } } } } - int UtcDaliTransitionDataNew(void) { - TestApplication application; + ToolkitTestApplication application; - Property::Map map = CreateMap(); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); - DALI_TEST_CHECK( transition ); + Property::Map map = CreateMap(); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); + DALI_TEST_CHECK(transition); END_TEST; } int UtcDaliTransitionDataDownCast(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); - BaseHandle handle = TransitionData::New( map ); - DALI_TEST_CHECK( handle ); + BaseHandle handle = TransitionData::New(map); + DALI_TEST_CHECK(handle); - TransitionData transitionData = TransitionData::DownCast( handle ); - DALI_TEST_CHECK( transitionData ); + TransitionData transitionData = TransitionData::DownCast(handle); + DALI_TEST_CHECK(transitionData); END_TEST; } int UtcDaliTransitionDataCopyConstructor(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); - TransitionData transitionData = TransitionData::New( map ); - DALI_TEST_CHECK( transitionData ); + TransitionData transitionData = TransitionData::New(map); + DALI_TEST_CHECK(transitionData); - TransitionData td2( transitionData ); - DALI_TEST_CHECK( td2 ); - DALI_TEST_EQUALS( td2.Count(), 1, TEST_LOCATION ); + TransitionData td2(transitionData); + DALI_TEST_CHECK(td2); + DALI_TEST_EQUALS(td2.Count(), 1, TEST_LOCATION); END_TEST; } int UtcDaliTransitionDataAssignmentOperator(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map = CreateMap(); - TransitionData transitionData = TransitionData::New( map ); - DALI_TEST_CHECK( transitionData ); + TransitionData transitionData = TransitionData::New(map); + DALI_TEST_CHECK(transitionData); TransitionData td2; - DALI_TEST_CHECK( !td2 ); + DALI_TEST_CHECK(!td2); td2 = transitionData; - DALI_TEST_CHECK( td2 ); + DALI_TEST_CHECK(td2); - DALI_TEST_EQUALS( td2.Count(), 1, TEST_LOCATION ); + DALI_TEST_EQUALS(td2.Count(), 1, TEST_LOCATION); END_TEST; } int UtcDaliTransitionDataCount(void) { - TestApplication application; + ToolkitTestApplication application; - Property::Map map = CreateMap(); - TransitionData transitionData = TransitionData::New( map ); - DALI_TEST_CHECK( transitionData ); - DALI_TEST_EQUALS( transitionData.Count(), 1, TEST_LOCATION ); + Property::Map map = CreateMap(); + TransitionData transitionData = TransitionData::New(map); + DALI_TEST_CHECK(transitionData); + DALI_TEST_EQUALS(transitionData.Count(), 1, TEST_LOCATION); Property::Array array; - array.PushBack( map ); - array.PushBack( map ); - array.PushBack( map ); + array.PushBack(map); + array.PushBack(map); + array.PushBack(map); - TransitionData transitionData2 = TransitionData::New( array ); - DALI_TEST_CHECK( transitionData2 ); - DALI_TEST_EQUALS( transitionData2.Count(), 3, TEST_LOCATION ); + TransitionData transitionData2 = TransitionData::New(array); + DALI_TEST_CHECK(transitionData2); + DALI_TEST_EQUALS(transitionData2.Count(), 3, TEST_LOCATION); END_TEST; } int UtcDaliTransitionDataMap1P(void) { - TestApplication application; + ToolkitTestApplication application; tet_printf("Testing animation of a visual property using stylesheet equivalent maps\n"); Property::Map map; - map["target"] = "visual1"; - map["property"] = "mixColor"; + map["target"] = "visual1"; + map["property"] = "mixColor"; map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; - map["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_OUT") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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[Visual::Property::TYPE] = Visual::COLOR; visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; - Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); - visual.SetName( "visual1" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(anim); - Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIndex = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_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(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(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION); anim.Play(); @@ -265,61 +262,63 @@ int UtcDaliTransitionDataMap1P(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(mixColorIndex), Vector3(Color::MAGENTA + Color::RED) * 0.5f, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(mixColorIndex), Vector3(Color::RED), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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["target"] = "visual1"; + map["property"] = ColorVisual::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)); + 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 ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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[Visual::Property::TYPE] = Visual::COLOR; visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; - Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); - visual.SetName( "visual1" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(anim); - Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIndex = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_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(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(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION); anim.Play(); @@ -328,46 +327,115 @@ 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(mixColorIndex), Vector3(Color::MAGENTA + Color::RED) * 0.5f, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(mixColorIndex), Vector3(Color::RED), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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 = VisualRenderer::Property::VISUAL_MIX_COLOR; + application.SendNotification(); + application.Render(0); + + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(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(mixColorIndex), Vector3(Color::MAGENTA + Color::RED) * 0.5f, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION); + + application.Render(500); // End of anim + application.SendNotification(); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(mixColorIndex), Vector3(Color::RED), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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"); Property::Map map; - map["target"] = "Actor1"; - map["property"] = "position"; + map["target"] = "Actor1"; + map["property"] = "position"; map["initialValue"] = Vector3(0, 0, 0); - map["targetValue"] = Vector3(100, 100, 0); - map["animator"] = Property::Map() - .Add("alphaFunction", Vector4(0.71, -0.57, 0.42, 1.38) ) - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map["targetValue"] = Vector3(100, 100, 0); + map["animator"] = Property::Map() + .Add("alphaFunction", Vector4(0.71, -0.57, 0.42, 1.38)) + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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 ); - DALI_TEST_CHECK( anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(anim); application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(0,0,0), 0.001f, TEST_LOCATION); + DALI_TEST_EQUALS(actor.GetCurrentProperty(Actor::Property::POSITION), Vector3(0, 0, 0), 0.001f, TEST_LOCATION); anim.Play(); @@ -376,77 +444,73 @@ 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(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(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(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(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"); Property::Map map1; - map1["target"] = "testVisual"; - map1["property"] = "offset"; + map1["target"] = "testVisual"; + map1["property"] = "offset"; map1["initialValue"] = Vector2(0.0f, 0.0f); - map1["targetValue"] = Vector2(100.0f, 100.0f); - map1["animator"] = Property::Map() - .Add("alphaFunction", "LINEAR") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map1["targetValue"] = Vector2(100.0f, 100.0f); + map1["animator"] = Property::Map() + .Add("alphaFunction", "LINEAR") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); Property::Map map2; - map2["target"] = "testVisual"; - map2["property"] = "size"; + map2["target"] = "testVisual"; + map2["property"] = "size"; map2["initialValue"] = Vector2(10.0f, 10.0f); - map2["targetValue"] = Vector2(110.0f, 110.0f); - map2["animator"] = Property::Map() - .Add("alphaFunction", "LINEAR") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map2["targetValue"] = Vector2(110.0f, 110.0f); + map2["animator"] = Property::Map() + .Add("alphaFunction", "LINEAR") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( Property::Array().Add(map1).Add(map2) ); + Dali::Toolkit::TransitionData transition = TransitionData::New(Property::Array().Add(map1).Add(map2)); 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()); Property::Map visualMap; - visualMap[Visual::Property::TYPE] = Visual::COLOR; + visualMap[Visual::Property::TYPE] = Visual::COLOR; visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; - Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); - visual.SetName( "testVisual" ); - dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + visual.SetName("testVisual"); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(anim); - Renderer renderer = actor.GetRendererAt(0); - Property::Index sizeIndex = renderer.GetPropertyIndex( "size" ); + Renderer renderer = actor.GetRendererAt(0); + Property::Index sizeIndex = VisualRenderer::Property::TRANSFORM_SIZE; application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( renderer.GetProperty(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION); anim.Play(); @@ -455,448 +519,537 @@ 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(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(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["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["target"] = "visual1"; + map["property"] = "opacity"; + map["initialValue"] = 0.0f; + map["targetValue"] = 1.0f; + map["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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()); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( ! anim ); - CHECK_MAP_EQUALS( map, transition.GetAnimatorAt(0) ); + 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); + + 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 = VisualRenderer::Property::VISUAL_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(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION); + + DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Disable", blendStr.str())); + 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["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT_BACK") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["target"] = "visual1"; + map["property"] = "opacity"; + map["targetValue"] = 0.0f; + map["animator"] = Property::Map() + .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) ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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[Visual::Property::TYPE] = Visual::COLOR; visualMap[ColorVisual::Property::MIX_COLOR] = Color::MAGENTA; - Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap ); - visual.SetName( "visual1" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); + + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(anim); + + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_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(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(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(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetCurrentProperty(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())); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( !anim ); 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["animator"] = Property::Map() - .Add("alphaFunction", Vector3(.1f,1.0f,0.5f)) - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["target"] = "visual1"; + map["property"] = "mixColor"; + 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().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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; + 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" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( !anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(!anim); application.SendNotification(); application.Render(0); application.SendNotification(); - Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, 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); + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_MIX_COLOR; + tet_printf("Test that the property has been set to target value\n"); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIndex), 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"); Property::Map map; - map["target"] = "visual1"; - map["property"] = "mixColor"; + map["target"] = "visual1"; + map["property"] = "mixColor"; map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; - map["animator"] = Property::Map() - .Add("alphaFunction", Property::Array().Add(.1f).Add(1.0f).Add(0.5f)) - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", Property::Array().Add(.1f).Add(1.0f).Add(0.5f)) + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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; + 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" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( !anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(!anim); application.SendNotification(); application.Render(0); application.SendNotification(); - Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, 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); + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_MIX_COLOR; + tet_printf("Test that the property has been set to target value\n"); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIndex), 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"); Property::Map map; - map["target"] = "visual1"; - map["property"] = "mixColor"; + map["target"] = "visual1"; + map["property"] = "mixColor"; map["initialValue"] = Color::MAGENTA; - map["targetValue"] = Color::RED; - map["animator"] = Property::Map() - .Add("alphaFunction", Property::Array().Add("1").Add("Two").Add("3").Add("4")) - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map["targetValue"] = Color::RED; + map["animator"] = Property::Map() + .Add("alphaFunction", Property::Array().Add("1").Add("Two").Add("3").Add("4")) + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); - Dali::Toolkit::TransitionData transition = TransitionData::New( map ); + Dali::Toolkit::TransitionData transition = TransitionData::New(map); 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; + 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" ); + Visual::Base visual = VisualFactory::Get().CreateVisual(visualMap); + visual.SetName("visual1"); Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1; - dummyImpl.RegisterVisual( visualIndex, visual ); + dummyImpl.RegisterVisual(visualIndex, visual); - Animation anim = dummyImpl.CreateTransition( transition ); - DALI_TEST_CHECK( !anim ); + Animation anim = dummyImpl.CreateTransition(transition); + DALI_TEST_CHECK(!anim); application.SendNotification(); application.Render(0); application.SendNotification(); - Renderer renderer = actor.GetRendererAt(0); - Property::Index mixColorIdx = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR ); + Renderer renderer = actor.GetRendererAt(0); + Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_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); + tet_printf("Test that the property has been set to target value\n"); + DALI_TEST_EQUALS(renderer.GetProperty(mixColorIndex), Vector3(Color::RED), 0.001, TEST_LOCATION); + DALI_TEST_EQUALS(renderer.GetProperty(DevelRenderer::Property::OPACITY), 1.0f, 0.001, TEST_LOCATION); END_TEST; } - int UtcDaliTransitionDataArrayP(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map1; - map1["target"] = "Actor1"; - map1["property"] = "color"; + map1["target"] = "Actor1"; + map1["property"] = "color"; map1["initialValue"] = Color::MAGENTA; - map1["targetValue"] = Color::RED; - map1["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_OUT") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 1.0f)); + map1["targetValue"] = Color::RED; + map1["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 1.0f)); Property::Map map2; - map2["target"] = "Actor1"; - map2["property"] = "position"; - map2["initialValue"] = Vector3(100,0,0); - map2["targetValue"] = Vector3(0,100,0); - map2["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_OUT") - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map2["target"] = "Actor1"; + map2["property"] = "position"; + map2["initialValue"] = Vector3(100, 0, 0); + map2["targetValue"] = Vector3(0, 100, 0); + map2["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT") + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); Property::Map map3; - map3["target"] = "Actor1"; - map3["property"] = "orientation"; - map3["targetValue"] = Quaternion( Radian(Math::PI_2), Vector3::ZAXIS ); + map3["target"] = "Actor1"; + map3["property"] = "orientation"; + map3["targetValue"] = Quaternion(Radian(Math::PI_2), Vector3::ZAXIS); Property::Array array; array.PushBack(map1); array.PushBack(map2); array.PushBack(map3); - Dali::Toolkit::TransitionData transition = TransitionData::New( array ); + Dali::Toolkit::TransitionData transition = TransitionData::New(array); 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(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 ); + 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(Actor::Property::COLOR), Color::MAGENTA, TEST_LOCATION); + DALI_TEST_EQUALS(actor.GetCurrentProperty(Actor::Property::ORIENTATION), Quaternion(Radian(Math::PI_2), Vector3::ZAXIS), TEST_LOCATION); anim.Play(); application.SendNotification(); - application.Render(0); // start map2 anim + application.Render(0); // start map2 anim application.SendNotification(); - DALI_TEST_EQUALS( actor.GetCurrentPosition(), Vector3(100,0,0), TEST_LOCATION); + DALI_TEST_EQUALS(actor.GetCurrentProperty(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(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(Actor::Property::POSITION), Vector3(0, 100, 0), TEST_LOCATION); + DALI_TEST_EQUALS(actor.GetCurrentProperty(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(Actor::Property::COLOR), Color::RED, TEST_LOCATION); END_TEST; } - int UtcDaliTransitionDataGetAnimatorP(void) { - TestApplication application; + ToolkitTestApplication application; Property::Map map1; - map1["target"] = "Actor1"; - map1["property"] = "color"; + map1["target"] = "Actor1"; + map1["property"] = "color"; map1["initialValue"] = Color::MAGENTA; - map1["targetValue"] = Color::RED; - map1["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_SQUARE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 0.5f)); + map1["targetValue"] = Color::RED; + map1["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_SQUARE") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 0.5f)); Property::Map map2; - map2["target"] = "Actor1"; - map2["property"] = "position"; - map2["initialValue"] = Vector3(100,0,0); - map2["targetValue"] = Vector3(0,100,0); - map2["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT_SQUARE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.2f) - .Add("duration", 2.0f)); + map2["target"] = "Actor1"; + map2["property"] = "position"; + map2["initialValue"] = Vector3(100, 0, 0); + map2["targetValue"] = Vector3(0, 100, 0); + map2["animator"] = Property::Map() + .Add("alphaFunction", "EASE_OUT_SQUARE") + .Add("timePeriod", Property::Map().Add("delay", 0.2f).Add("duration", 2.0f)); Property::Map map3; - map3["target"] = "Actor1"; - map3["property"] = "size"; - map3["initialValue"] = Vector2(10,10); - map3["targetValue"] = Vector2(100,100); - map3["animator"] = Property::Map() - .Add("alphaFunction", "EASE_OUT_SINE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.4f) - .Add("duration", 3.0f)); + map3["target"] = "Actor1"; + map3["property"] = "size"; + map3["initialValue"] = Vector2(10, 10); + map3["targetValue"] = Vector2(100, 100); + map3["animator"] = Property::Map() + .Add("alphaFunction", "EASE_OUT_SINE") + .Add("timePeriod", Property::Map().Add("delay", 0.4f).Add("duration", 3.0f)); Property::Map map4; - map4["target"] = "Actor2"; - map4["property"] = "color"; + map4["target"] = "Actor2"; + map4["property"] = "color"; map4["initialValue"] = Color::BLACK; - map4["targetValue"] = Color::GREEN; - map4["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_OUT_SINE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.5f) - .Add("duration", 0.5f)); + map4["targetValue"] = Color::GREEN; + map4["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_OUT_SINE") + .Add("timePeriod", Property::Map().Add("delay", 0.5f).Add("duration", 0.5f)); Property::Map map5; - map5["target"] = "Actor2"; - map5["property"] = "position"; - map5["initialValue"] = Vector3(100,0,0); - map5["targetValue"] = Vector3(0,100,0); - map5["animator"] = Property::Map() - .Add("alphaFunction", "BOUNCE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.2f) - .Add("duration", 2.0f)); + map5["target"] = "Actor2"; + map5["property"] = "position"; + map5["initialValue"] = Vector3(100, 0, 0); + map5["targetValue"] = Vector3(0, 100, 0); + map5["animator"] = Property::Map() + .Add("alphaFunction", "BOUNCE") + .Add("timePeriod", Property::Map().Add("delay", 0.2f).Add("duration", 2.0f)); Property::Map map6; - map6["target"] = "Actor2"; - map6["property"] = "size"; - map6["initialValue"] = Vector2(10,10); - map6["targetValue"] = Vector2(100,100); - map6["animator"] = Property::Map() - .Add("alphaFunction", "SIN") - .Add("timePeriod", Property::Map() - .Add("delay", 0.4f) - .Add("duration", 3.0f)); + map6["target"] = "Actor2"; + map6["property"] = "size"; + map6["initialValue"] = Vector2(10, 10); + map6["targetValue"] = Vector2(100, 100); + map6["animator"] = Property::Map() + .Add("alphaFunction", "SIN") + .Add("timePeriod", Property::Map().Add("delay", 0.4f).Add("duration", 3.0f)); Property::Map map7; - map7["target"] = "Actor4"; - map7["property"] = "sizeModeFactor"; - map7["initialValue"] = Vector3(1,1,1); - map7["targetValue"] = Vector3(2,2,2); - map7["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN_SINE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map7["target"] = "Actor4"; + map7["property"] = "sizeModeFactor"; + map7["initialValue"] = Vector3(1, 1, 1); + map7["targetValue"] = Vector3(2, 2, 2); + map7["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN_SINE") + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); Property::Map map8; - map8["target"] = "Visual1"; - map8["property"] = "colorAlpha"; - map8["targetValue"] = 1.0f; - map8["animator"] = Property::Map() - .Add("alphaFunction", "EASE_IN") - .Add("timePeriod", Property::Map() - .Add("delay", 0.3f) - .Add("duration", 9.0f)); + map8["target"] = "Visual1"; + map8["property"] = "opacity"; + map8["initialValue"] = 0.0f; + map8["targetValue"] = 1.0f; + map8["animator"] = Property::Map() + .Add("alphaFunction", "EASE_IN") + .Add("timePeriod", Property::Map().Add("delay", 0.3f).Add("duration", 9.0f)); Property::Map map9; - map9["target"] = "Actor2"; - map9["property"] = "scale"; - map9["initialValue"] = Vector3(0,0,0); - map9["targetValue"] = Vector3(1,1,1); - map9["animator"] = Property::Map() - .Add("alphaFunction", "REVERSE") - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map9["target"] = "Actor2"; + map9["property"] = "scale"; + map9["initialValue"] = Vector3(0, 0, 0); + map9["targetValue"] = Vector3(1, 1, 1); + map9["animator"] = Property::Map() + .Add("alphaFunction", "REVERSE") + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); Property::Map map10; - map10["target"] = "Actor2"; - map10["property"] = "scale"; - map10["initialValue"] = Vector3(0,0,0); - map10["targetValue"] = Vector3(1,1,1); - map10["animator"] = Property::Map() - .Add("alphaFunction", Vector4(.23,.4,.8,1.2)) - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map10["target"] = "Actor2"; + map10["property"] = "scale"; + map10["initialValue"] = Vector3(0, 0, 0); + map10["targetValue"] = Vector3(1, 1, 1); + map10["animator"] = Property::Map() + .Add("alphaFunction", Vector4(.23, .4, .8, 1.2)) + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); Property::Map map11; - map11["target"] = "Actor2"; - map11["property"] = "scale"; - map11["initialValue"] = Vector3(0,0,0); - map11["targetValue"] = Vector3(1,1,1); - map11["animator"] = Property::Map() - .Add("alphaFunction", Property::Array().Add(.23f).Add(.4f).Add(.8f).Add(.2f)) - .Add("timePeriod", Property::Map() - .Add("delay", 0.0f) - .Add("duration", 1.0f)); + map11["target"] = "Actor2"; + map11["property"] = "scale"; + map11["initialValue"] = Vector3(0, 0, 0); + map11["targetValue"] = Vector3(1, 1, 1); + map11["animator"] = Property::Map() + .Add("alphaFunction", Property::Array().Add(.23f).Add(.4f).Add(.8f).Add(.2f)) + .Add("timePeriod", Property::Map().Add("delay", 0.0f).Add("duration", 1.0f)); Property::Map map12; - map12["target"] = "Actor1"; - map12["property"] = "orientation"; - map12["targetValue"] = Quaternion( Radian(Math::PI_2), Vector3::ZAXIS ); + map12["target"] = "Actor1"; + map12["property"] = "orientation"; + map12["targetValue"] = Quaternion(Radian(Math::PI_2), Vector3::ZAXIS); Property::Array array; array.PushBack(map1); @@ -912,17 +1065,17 @@ int UtcDaliTransitionDataGetAnimatorP(void) array.PushBack(map11); array.PushBack(map12); - Dali::Toolkit::TransitionData transition = TransitionData::New( array ); + Dali::Toolkit::TransitionData transition = TransitionData::New(array); - DALI_TEST_EQUALS( transition.Count(), array.Count(), TEST_LOCATION ); + DALI_TEST_EQUALS(transition.Count(), array.Count(), TEST_LOCATION); - for( unsigned int i=0; i < array.Count(); ++i ) + for(unsigned int i = 0; i < array.Count(); ++i) { - Property::Map animatorMap = transition.GetAnimatorAt(i); - Property::Value& value = array.GetElementAt(i); - Property::Map* inputMap = value.GetMap(); - DALI_TEST_CHECK( inputMap ); - CHECK_MAP_EQUALS( *inputMap, animatorMap ); + Property::Map animatorMap = transition.GetAnimatorAt(i); + Property::Value& value = array.GetElementAt(i); + Property::Map* inputMap = value.GetMap(); + DALI_TEST_CHECK(inputMap); + CHECK_MAP_EQUALS(*inputMap, animatorMap); } END_TEST;