[dali_2.3.20] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-TransitionData.cpp
index 1db1bc5..fb7ecd2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 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.
  * limitations under the License.
  */
 
-#include <iostream>
-#include <stdlib.h>
 #include <dali-toolkit-test-suite-utils.h>
-#include <dali.h>
-#include <dali/devel-api/object/handle-devel.h>
-#include <dali/devel-api/rendering/renderer-devel.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/visual-factory/transition-data.h>
 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+#include <dali.h>
+#include <dali/devel-api/rendering/renderer-devel.h>
+#include <stdlib.h>
+#include <iostream>
 #include "dummy-control.h"
 
 using namespace Dali;
 using namespace Toolkit;
 
-
 void utc_dali_toolkit_transition_data_startup(void)
 {
   test_return_value = TET_UNDEF;
@@ -43,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::ArrayresultArray = 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<Vector4>();
-    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<float>(), value[i], 0.001, TEST_LOCATION );
+      DALI_TEST_EQUALS(a.GetType(), Property::FLOAT, TEST_LOCATION);
+      DALI_TEST_EQUALS(a.Get<float>(), 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);
     }
@@ -105,42 +101,41 @@ 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)
 {
   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;
 }
@@ -151,11 +146,11 @@ int UtcDaliTransitionDataDownCast(void)
 
   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;
 }
 
@@ -165,12 +160,12 @@ int UtcDaliTransitionDataCopyConstructor(void)
 
   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;
 }
 
@@ -180,16 +175,16 @@ int UtcDaliTransitionDataAssignmentOperator(void)
 
   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;
 }
 
@@ -197,19 +192,19 @@ int UtcDaliTransitionDataCount(void)
 {
   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;
 }
@@ -221,47 +216,45 @@ int UtcDaliTransitionDataMap1P(void)
   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<DummyControlImpl&>(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<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(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();
 
@@ -269,19 +262,17 @@ int UtcDaliTransitionDataMap1P(void)
   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 );
+  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 );
+  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)
 {
   ToolkitTestApplication application;
@@ -289,47 +280,45 @@ int UtcDaliTransitionDataMap2P(void)
   tet_printf("Testing animation of a visual property using programmatic maps\n");
 
   Property::Map map;
-  map["target"] = "visual1";
-  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<DummyControlImpl&>(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<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(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();
 
@@ -338,18 +327,17 @@ int UtcDaliTransitionDataMap2P(void)
   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);
+  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);
+  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;
@@ -357,51 +345,49 @@ int UtcDaliTransitionDataMap2Pb(void)
   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["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));
+  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<DummyControlImpl&>(actor.GetImplementation());
 
   Property::Map visualMap;
-  visualMap[Visual::Property::TYPE] = Visual::PRIMITIVE;
+  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;
+  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" );
+  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, PrimitiveVisual::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<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(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();
 
@@ -410,18 +396,17 @@ int UtcDaliTransitionDataMap2Pb(void)
   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);
+  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);
+  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)
 {
   ToolkitTestApplication application;
@@ -429,30 +414,28 @@ int UtcDaliTransitionDataMap3P(void)
   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<DummyControlImpl&>(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<Vector3>(Actor::Property::POSITION), Vector3(0, 0, 0), 0.001f, TEST_LOCATION);
 
   anim.Play();
 
@@ -461,23 +444,22 @@ 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)
 {
   ToolkitTestApplication application;
@@ -485,54 +467,50 @@ int UtcDaliTransitionDataMap4P(void)
   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<DummyControlImpl&>(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<Vector2>(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector2 >( sizeIndex ), Vector2(10.0f, 10.0f), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector2>(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector2>(sizeIndex), Vector2(10.0f, 10.0f), TEST_LOCATION);
 
   anim.Play();
 
@@ -541,11 +519,11 @@ int UtcDaliTransitionDataMap4P(void)
   application.Render(500); // Start animation
   application.Render(500); // Halfway thru anim
   application.SendNotification();
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector2 >( 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.GetCurrentProperty< Vector2 >( sizeIndex ), Vector2(110.0f, 110.0f), TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector2>(sizeIndex), Vector2(110.0f, 110.0f), TEST_LOCATION);
 
   END_TEST;
 }
@@ -557,72 +535,84 @@ int UtcDaliTransitionDataMap5P(void)
   tet_printf("Testing animation visual opacity using stylesheet equivalent maps\n");
 
   Property::Map map;
-  map["target"] = "visual1";
-  map["property"] = "opacity";
+  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));
+  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<DummyControlImpl&>(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 );
+  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<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 0.0f, 0.001f, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetProperty<int>(Renderer::Property::BLEND_MODE), (int)BlendMode::ON, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(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);
 
-  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 );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::ON, 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 );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::ON, TEST_LOCATION );
+  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_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::AUTO, TEST_LOCATION );
+  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()));
 
   END_TEST;
 }
 
-
 int UtcDaliTransitionDataMap6P(void)
 {
   ToolkitTestApplication application;
@@ -630,147 +620,111 @@ int UtcDaliTransitionDataMap6P(void)
   tet_printf("Testing animation visual opacity using stylesheet equivalent maps\n");
 
   Property::Map map;
-  map["target"] = "visual1";
-  map["property"] = "opacity";
+  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));
+  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<DummyControlImpl&>(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 = VisualRenderer::Property::VISUAL_MIX_COLOR;
+  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 = DevelHandle::GetPropertyIndex( renderer, ColorVisual::Property::MIX_COLOR );
   application.SendNotification();
   application.Render(0);
 
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector3 >( mixColorIndex ), Vector3(Color::MAGENTA), TEST_LOCATION);
-  DALI_TEST_EQUALS( renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< float >( DevelRenderer::Property::OPACITY ), 1.0f, 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION);
 
-  // Note, This should be testing for AUTO
-  // this is the same problem as C# target value being set before Play is called.
-  // @todo How was this solved?
-  DALI_TEST_EQUALS( renderer.GetProperty<int>(Renderer::Property::BLEND_MODE), (int)BlendMode::ON, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::ON, 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_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::ON, TEST_LOCATION );
-
-  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 );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< int >( Renderer::Property::BLEND_MODE ), (int)BlendMode::ON, TEST_LOCATION );
 
-  END_TEST;
-}
+  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()));
 
-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));
+  glEnableStack.Reset();
 
-  Dali::Toolkit::TransitionData transition = TransitionData::New( map );
+  application.Render(500); // End of anim
+  application.SendNotification();
 
-  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(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<float>(DevelRenderer::Property::OPACITY), 0.0f, 0.001f, TEST_LOCATION);
 
-  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
-  Animation anim = dummyImpl.CreateTransition( transition );
-  DALI_TEST_CHECK( ! anim );
+  // GL_BLEND should not be changed: Keep enabled
+  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Disable", blendStr.str()));
 
-  CHECK_MAP_EQUALS( map, transition.GetAnimatorAt(0) );
   END_TEST;
 }
 
-
-int UtcDaliTransitionDataMapN3(void)
+int UtcDaliTransitionDataMap1N(void)
 {
   ToolkitTestApplication application;
 
-  tet_printf("Testing visual lookup with no renderers\n");
-
   Property::Map map;
-  map["target"] = "visual1";
-  map["property"] = "mixColor";
-  map["initialValue"] = Vector3(Color::MAGENTA);
-  map["targetValue"] = Vector3(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"]       = "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 );
-  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<DummyControlImpl&>(actor.GetImplementation());
-  Property::Map visualMap;
-  visualMap[Visual::Property::TYPE] = Visual::COLOR;
-  visualMap[ColorVisual::Property::MIX_COLOR] = Vector3(Color::MAGENTA);
-  Visual::Base visual = VisualFactory::Get().CreateVisual( visualMap );
-  visual.SetName( "visual1" );
+  Animation         anim      = dummyImpl.CreateTransition(transition);
+  DALI_TEST_CHECK(!anim);
 
-  Property::Index visualIndex = Control::CONTROL_PROPERTY_END_INDEX + 1;
-  dummyImpl.RegisterVisual( visualIndex, visual );
-
-  Animation anim = dummyImpl.CreateTransition( transition );
-  DALI_TEST_CHECK( !anim );
+  CHECK_MAP_EQUALS(map, transition.GetAnimatorAt(0));
   END_TEST;
 }
 
-
 int UtcDaliTransitionDataMapN4(void)
 {
   ToolkitTestApplication application;
@@ -778,47 +732,44 @@ int UtcDaliTransitionDataMapN4(void)
   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"] = 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));
+  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<DummyControlImpl&>(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<Vector3>(mixColorIdx), Vector3(Color::RED), 0.001, TEST_LOCATION);
-  DALI_TEST_EQUALS(renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 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<Vector3>(mixColorIndex), Vector3(Color::RED), 0.001, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001, TEST_LOCATION);
 
   END_TEST;
 }
@@ -830,46 +781,43 @@ int UtcDaliTransitionDataMapN5(void)
   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<DummyControlImpl&>(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<Vector3>(mixColorIdx), Vector3(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<Vector3>(mixColorIndex), Vector3(Color::RED), 0.001, TEST_LOCATION);
 
   END_TEST;
 }
@@ -881,257 +829,227 @@ int UtcDaliTransitionDataMapN6(void)
   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<DummyControlImpl&>(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<Vector3>(mixColorIdx), Vector3(Color::RED), 0.001, TEST_LOCATION);
-  DALI_TEST_EQUALS(renderer.GetProperty<float>( DevelRenderer::Property::OPACITY ), 1.0f, 0.001, TEST_LOCATION);
+  tet_printf("Test that the property has been set to target value\n");
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::RED), 0.001, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001, TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int UtcDaliTransitionDataArrayP(void)
 {
   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<Quaternion>(Actor::Property::ORIENTATION), Quaternion(Radian(0), Vector3::ZAXIS), TEST_LOCATION);
 
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(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<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.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;
 }
 
-
 int UtcDaliTransitionDataGetAnimatorP(void)
 {
   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"] = "opacity";
+  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));
+  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);
@@ -1147,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;