Add move semantics to commonly used classes in dali-core
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Actor.cpp
index 55f2ac1..d08f8f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -137,14 +137,14 @@ void OnStageCallback( Actor actor )
 {
   ++gOnStageCallBackCalled;
   gActorNamesOnOffStage.push_back( actor.GetProperty< std::string >( Actor::Property::NAME ) );
-  DALI_TEST_CHECK( actor.OnStage() == true );
+  DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) == true );
 }
 static int gOffStageCallBackCalled;
 void OffStageCallback( Actor actor )
 {
   ++gOffStageCallBackCalled;
   gActorNamesOnOffStage.push_back( actor.GetProperty< std::string >( Actor::Property::NAME ) );
-  DALI_TEST_CHECK( actor.OnStage() == false );
+  DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) == false );
 }
 
 struct PositionComponentConstraint
@@ -323,6 +323,41 @@ int UtcDaliActorDownCastN(void)
   END_TEST;
 }
 
+int UtcDaliActorMoveConstructor(void)
+{
+  TestApplication application;
+
+  Actor actor = Actor::New();
+  DALI_TEST_CHECK( actor );
+
+  int id = actor.GetProperty< int >( Actor::Property::ID );
+
+  Actor moved = std::move( actor);
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( id, moved.GetProperty< int >( Actor::Property::ID ), TEST_LOCATION );
+  DALI_TEST_CHECK( !actor );
+
+  END_TEST;
+}
+
+int UtcDaliActorMoveAssignment(void)
+{
+  TestApplication application;
+
+  Actor actor = Actor::New();
+  DALI_TEST_CHECK( actor );
+
+  int id = actor.GetProperty< int >( Actor::Property::ID );
+
+  Actor moved;
+  moved = std::move( actor);
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( id, moved.GetProperty< int >( Actor::Property::ID ), TEST_LOCATION );
+  DALI_TEST_CHECK( !actor );
+
+  END_TEST;
+}
+
 //& purpose: Testing Dali::Actor::GetName()
 int UtcDaliActorGetName(void)
 {
@@ -349,15 +384,15 @@ int UtcDaliActorSetName(void)
 
 int UtcDaliActorGetId(void)
 {
-  tet_infoline("Testing Dali::Actor::UtcDaliActorGetId()");
+  tet_infoline("Testing Dali::Actor::UtcDaliActo.GetProperty< int >( Actor::Property::ID )");
   TestApplication application;
 
   Actor first = Actor::New();
   Actor second = Actor::New();
   Actor third = Actor::New();
 
-  DALI_TEST_CHECK(first.GetId() != second.GetId());
-  DALI_TEST_CHECK(second.GetId() != third.GetId());
+  DALI_TEST_CHECK(first.GetProperty< int >( Actor::Property::ID ) != second.GetProperty< int >( Actor::Property::ID ));
+  DALI_TEST_CHECK(second.GetProperty< int >( Actor::Property::ID ) != third.GetProperty< int >( Actor::Property::ID ));
   END_TEST;
 }
 
@@ -366,11 +401,11 @@ int UtcDaliActorIsRoot(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  DALI_TEST_CHECK(!actor.IsRoot());
+  DALI_TEST_CHECK(!actor.GetProperty< bool >( Actor::Property::IS_ROOT ));
 
   // get the root layer
-  actor = Stage::GetCurrent().GetLayer( 0 );
-  DALI_TEST_CHECK( actor.IsRoot() );
+  actor = application.GetScene().GetLayer( 0 );
+  DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::IS_ROOT ) );
   END_TEST;
 }
 
@@ -379,11 +414,11 @@ int UtcDaliActorOnStage(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  DALI_TEST_CHECK( !actor.OnStage() );
+  DALI_TEST_CHECK( !actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) );
 
   // get the root layer
-  actor = Stage::GetCurrent().GetLayer( 0 );
-  DALI_TEST_CHECK( actor.OnStage() );
+  actor = application.GetScene().GetLayer( 0 );
+  DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) );
   END_TEST;
 }
 
@@ -392,11 +427,11 @@ int UtcDaliActorIsLayer(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  DALI_TEST_CHECK( !actor.IsLayer() );
+  DALI_TEST_CHECK( !actor.GetProperty< bool >( Actor::Property::IS_LAYER ) );
 
   // get the root layer
-  actor = Stage::GetCurrent().GetLayer( 0 );
-  DALI_TEST_CHECK( actor.IsLayer() );
+  actor = application.GetScene().GetLayer( 0 );
+  DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::IS_LAYER ) );
   END_TEST;
 }
 
@@ -405,13 +440,13 @@ int UtcDaliActorGetLayer(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
   Layer layer = actor.GetLayer();
 
   DALI_TEST_CHECK(layer);
 
   // get the root layers layer
-  actor = Stage::GetCurrent().GetLayer( 0 );
+  actor = application.GetScene().GetLayer( 0 );
   DALI_TEST_CHECK( actor.GetLayer() );
   END_TEST;
 }
@@ -485,7 +520,7 @@ int UtcDaliActorAddN(void)
   // try reparenting root
   try
   {
-    parent2.Add( Stage::GetCurrent().GetLayer( 0 ) );
+    parent2.Add( application.GetScene().GetLayer( 0 ) );
     tet_printf("Assertion test failed - no Exception\n" );
     tet_result(TET_FAIL);
   }
@@ -580,7 +615,7 @@ int UtcDaliActorRemoveP(void)
   Actor child = Actor::New();
   Actor random = Actor::New();
 
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   DALI_TEST_CHECK(parent.GetChildCount() == 0);
 
@@ -592,7 +627,7 @@ int UtcDaliActorRemoveP(void)
 
   DALI_TEST_CHECK(parent.GetChildCount() == 1);
 
-  Stage::GetCurrent().Remove( parent );
+  application.GetScene().Remove( parent );
 
   DALI_TEST_CHECK(parent.GetChildCount() == 1);
   END_TEST;
@@ -681,7 +716,7 @@ int UtcDaliActorCustomProperty(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   float startValue(1.0f);
   Property::Index index = actor.RegisterProperty( "testProperty",  startValue );
@@ -704,7 +739,7 @@ int UtcDaliActorCustomPropertyIntToFloat(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   float startValue(5.0f);
   Property::Index index = actor.RegisterProperty( "testProperty",  startValue );
@@ -727,7 +762,7 @@ int UtcDaliActorCustomPropertyFloatToInt(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   int startValue(5);
   Property::Index index = actor.RegisterProperty( "testProperty",  startValue );
@@ -762,7 +797,7 @@ int UtcDaliActorSetParentOrigin(void)
 
   DALI_TEST_CHECK(vector == actor.GetCurrentProperty< Vector3 >( Actor::Property::PARENT_ORIGIN ));
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   actor.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.1f, 0.2f, 0.3f ) );
 
@@ -772,7 +807,7 @@ int UtcDaliActorSetParentOrigin(void)
 
   DALI_TEST_EQUALS( Vector3( 0.1f, 0.2f, 0.3f ), actor.GetCurrentProperty< Vector3 >( Actor::Property::PARENT_ORIGIN ), TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -848,7 +883,7 @@ int UtcDaliActorSetAnchorPoint(void)
 
   DALI_TEST_CHECK(vector == actor.GetCurrentProperty< Vector3 >( Actor::Property::ANCHOR_POINT ));
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   actor.SetProperty( Actor::Property::ANCHOR_POINT, Vector3( 0.1f, 0.2f, 0.3f ) );
   // flush the queue and render once
@@ -857,7 +892,7 @@ int UtcDaliActorSetAnchorPoint(void)
 
   DALI_TEST_EQUALS( Vector3( 0.1f, 0.2f, 0.3f ), actor.GetCurrentProperty< Vector3 >( Actor::Property::ANCHOR_POINT ), TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1061,7 +1096,7 @@ int UtcDaliActorSetSize04(void)
   // Check the size in the new frame
   DALI_TEST_CHECK(vector == actor.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.SetProperty( Actor::Property::SIZE, Vector3( 0.1f, 0.2f, 0.3f ) );
 
   // Immediately check the size after setting
@@ -1078,7 +1113,7 @@ int UtcDaliActorSetSize04(void)
   currentSize = actor.GetProperty( Actor::Property::SIZE ).Get< Vector3 >();
   DALI_TEST_EQUALS( currentSize, Vector3( 0.1f, 0.2f, 0.3f ), Math::MACHINE_EPSILON_0, TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1172,7 +1207,7 @@ int UtcDaliActorSetSizeIndividual02(void)
 
   Actor actor = Actor::New();
   actor.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   Vector3 vector( 100.0f, 200.0f, 400.0f );
   DALI_TEST_CHECK( vector != actor.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ) );
@@ -1290,7 +1325,7 @@ int UtcDaliActorCalculateScreenExtents(void)
   DALI_TEST_EQUALS( expectedExtent.width, actualExtent.width, Math::MACHINE_EPSILON_10000, TEST_LOCATION );
   DALI_TEST_EQUALS( expectedExtent.height, actualExtent.height, Math::MACHINE_EPSILON_10000, TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1314,7 +1349,7 @@ int UtcDaliActorSetPosition01(void)
   application.Render();
   DALI_TEST_CHECK(vector == actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ));
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.SetProperty( Actor::Property::POSITION, Vector3( 0.1f, 0.2f, 0.3f ) );
   // flush the queue and render once
   application.SendNotification();
@@ -1335,7 +1370,7 @@ int UtcDaliActorSetPosition01(void)
   application.Render();
   DALI_TEST_EQUALS( Vector3( 1.1f, 1.2f, 1.3f ), actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), Math::MACHINE_EPSILON_10000, TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1553,7 +1588,7 @@ int UtcDaliActorGetCurrentWorldPosition(void)
   parent.SetProperty( Actor::Property::POSITION, parentPosition );
   parent.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   parent.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
@@ -1588,7 +1623,7 @@ int UtcDaliActorSetInheritPosition(void)
   parent.SetProperty( Actor::Property::POSITION, parentPosition );
   parent.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   parent.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
@@ -1644,7 +1679,7 @@ int UtcDaliActorInheritOpacity(void)
   Actor parent = Actor::New();
   Actor child = Actor::New();
   parent.Add( child );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   DALI_TEST_EQUALS( parent.GetProperty( Actor::Property::COLOR_ALPHA ).Get<float>(), 1.0f, 0.0001f, TEST_LOCATION );
   DALI_TEST_EQUALS( child.GetProperty( Actor::Property::COLOR_ALPHA ).Get<float>(), 1.0f, 0.0001f, TEST_LOCATION );
@@ -1653,7 +1688,7 @@ int UtcDaliActorInheritOpacity(void)
   application.SendNotification();
   application.Render();
 
-  parent.SetProperty( DevelActor::Property::OPACITY, 0.1f );
+  parent.SetProperty( Actor::Property::OPACITY, 0.1f );
 
   DALI_TEST_EQUALS( parent.GetProperty( Actor::Property::COLOR_ALPHA ).Get<float>(), 0.1f, 0.0001f, TEST_LOCATION );
   DALI_TEST_EQUALS( child.GetProperty( Actor::Property::COLOR_ALPHA ).Get<float>(), 1.0f, 0.0001f, TEST_LOCATION );
@@ -1705,7 +1740,7 @@ int UtcDaliActorSetOrientation02(void)
   application.Render();
   DALI_TEST_EQUALS(rotation, actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION);
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.RotateBy( Degree( 360 ), axis);
   DALI_TEST_EQUALS(rotation, actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION);
 
@@ -1722,7 +1757,7 @@ int UtcDaliActorSetOrientation02(void)
   application.Render();
   DALI_TEST_EQUALS(rotation, actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION);
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1761,7 +1796,7 @@ int UtcDaliActorRotateBy01(void)
   application.Render();
   DALI_TEST_EQUALS(Quaternion( angle, Vector3::ZAXIS), actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION);
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   actor.RotateBy( angle, Vector3::ZAXIS);
   // flush the queue and render once
@@ -1769,7 +1804,7 @@ int UtcDaliActorRotateBy01(void)
   application.Render();
   DALI_TEST_EQUALS(Quaternion(angle * 2.0f, Vector3::ZAXIS), actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION);
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -1819,7 +1854,7 @@ int UtcDaliActorGetCurrentWorldOrientation(void)
   Radian rotationAngle( Degree(90.0f) );
   Quaternion rotation( rotationAngle, Vector3::YAXIS );
   parent.SetProperty( Actor::Property::ORIENTATION, rotation );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::ORIENTATION, rotation );
@@ -1894,14 +1929,14 @@ int UtcDaliActorSetScale02(void)
   DALI_TEST_CHECK(actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ) == scale);
 
   // add to stage and test
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.SetProperty( Actor::Property::SCALE, Vector3( 2.0f, 2.0f, 2.0f ) );
   // flush the queue and render once
   application.SendNotification();
   application.Render();
   DALI_TEST_EQUALS( Vector3( 2.0f, 2.0f, 2.0f ), actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ), 0.001, TEST_LOCATION);
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
 
   END_TEST;
 }
@@ -2027,7 +2062,7 @@ int UtcDaliActorGetCurrentWorldScale(void)
   Actor parent = Actor::New();
   Vector3 parentScale( 1.0f, 2.0f, 3.0f );
   parent.SetProperty( Actor::Property::SCALE, parentScale );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   Vector3 childScale( 2.0f, 2.0f, 2.0f );
@@ -2062,7 +2097,7 @@ int UtcDaliActorInheritScale(void)
   Actor parent = Actor::New();
   Vector3 parentScale( 1.0f, 2.0f, 3.0f );
   parent.SetProperty( Actor::Property::SCALE, parentScale );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   Vector3 childScale( 2.0f, 2.0f, 2.0f );
@@ -2103,7 +2138,7 @@ int UtcDaliActorSetVisible(void)
   DALI_TEST_CHECK(actor.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) == true);
 
   // put actor on stage
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.SetProperty( Actor::Property::VISIBLE,false);
   // flush the queue and render once
   application.SendNotification();
@@ -2128,38 +2163,38 @@ int UtcDaliActorSetOpacity(void)
 
   Actor actor = Actor::New();
   // initial opacity is 1
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 1.0f, TEST_LOCATION );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 1.0f, TEST_LOCATION );
 
-  actor.SetProperty( DevelActor::Property::OPACITY, 0.4f);
+  actor.SetProperty( Actor::Property::OPACITY, 0.4f);
   // flush the queue and render once
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.4f, TEST_LOCATION );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.4f, TEST_LOCATION );
 
   // change opacity, actor is on stage to change is not immediate
-  actor.SetProperty( DevelActor::Property::OPACITY, actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ) + 0.1f );
+  actor.SetProperty( Actor::Property::OPACITY, actor.GetCurrentProperty< float >( Actor::Property::OPACITY ) + 0.1f );
   // flush the queue and render once
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.5f, TEST_LOCATION );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.5f, TEST_LOCATION );
 
   // put actor on stage
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   // change opacity, actor is on stage to change is not immediate
-  actor.SetProperty( DevelActor::Property::OPACITY, 0.9f );
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.5f, TEST_LOCATION );
+  actor.SetProperty( Actor::Property::OPACITY, 0.9f );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.5f, TEST_LOCATION );
   // flush the queue and render once
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.9f, TEST_LOCATION );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.9f, TEST_LOCATION );
 
   // change opacity, actor is on stage to change is not immediate
-  actor.SetProperty( DevelActor::Property::OPACITY, actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ) - 0.9f );
+  actor.SetProperty( Actor::Property::OPACITY, actor.GetCurrentProperty< float >( Actor::Property::OPACITY ) - 0.9f );
   // flush the queue and render once
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.0f, TEST_LOCATION );
+  DALI_TEST_EQUALS(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.0f, TEST_LOCATION );
   END_TEST;
 }
 
@@ -2168,13 +2203,13 @@ int UtcDaliActorGetCurrentOpacity(void)
   TestApplication application;
 
   Actor actor = Actor::New();
-  DALI_TEST_CHECK(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ) != 0.5f);
+  DALI_TEST_CHECK(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ) != 0.5f);
 
-  actor.SetProperty( DevelActor::Property::OPACITY,0.5f);
+  actor.SetProperty( Actor::Property::OPACITY,0.5f);
   // flush the queue and render once
   application.SendNotification();
   application.Render();
-  DALI_TEST_CHECK(actor.GetCurrentProperty< float >( DevelActor::Property::OPACITY ) == 0.5f);
+  DALI_TEST_CHECK(actor.GetCurrentProperty< float >( Actor::Property::OPACITY ) == 0.5f);
   END_TEST;
 }
 
@@ -2221,7 +2256,7 @@ int UtcDaliActorSetColor(void)
   application.Render();
   DALI_TEST_EQUALS( Vector4( 0.6f, 0.5f, 0.4f, 0.1f ), actor.GetCurrentProperty< Vector4 >( Actor::Property::COLOR ),  TEST_LOCATION );
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   actor.SetProperty( Actor::Property::COLOR, color );
   // flush the queue and render once
   application.SendNotification();
@@ -2244,7 +2279,7 @@ int UtcDaliActorSetColor(void)
   actor.SetProperty( Actor::Property::COLOR, newColor );
   DALI_TEST_EQUALS( Vector4( newColor.r, newColor.g, newColor.b, 1.0f ), actor.GetProperty< Vector4 >( Actor::Property::COLOR ), TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( actor );
+  application.GetScene().Remove( actor );
   END_TEST;
 }
 
@@ -2305,7 +2340,7 @@ int UtcDaliActorSetColorIndividual(void)
   DALI_TEST_EQUALS( vector, actor.GetProperty< Vector4 >( Actor::Property::COLOR ), TEST_LOCATION );
   DALI_TEST_EQUALS( vector, actor.GetCurrentProperty< Vector4 >( Actor::Property::COLOR ), TEST_LOCATION );
 
-  actor.SetProperty( DevelActor::Property::OPACITY, 0.2f );
+  actor.SetProperty( Actor::Property::OPACITY, 0.2f );
 
 
   // flush the queue and render once
@@ -2340,7 +2375,7 @@ int UtcDaliActorGetCurrentWorldColor(void)
   Actor parent = Actor::New();
   Vector4 parentColor( 1.0f, 0.5f, 0.0f, 0.8f );
   parent.SetProperty( Actor::Property::COLOR, parentColor );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   Vector4 childColor( 0.5f, 0.6f, 0.5f, 1.0f );
@@ -2420,7 +2455,7 @@ int UtcDaliActorScreenToLocal(void)
   actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
   actor.SetProperty( Actor::Property::POSITION, Vector2(10.0f, 10.0f));
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   // flush the queue and render once
   application.SendNotification();
@@ -2469,11 +2504,11 @@ int UtcDaliActorSetKeyboardFocusable(void)
 
   Actor actor = Actor::New();
 
-  actor.SetKeyboardFocusable(true);
-  DALI_TEST_CHECK(actor.IsKeyboardFocusable() == true);
+  actor.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
+  DALI_TEST_CHECK(actor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) == true);
 
-  actor.SetKeyboardFocusable(false);
-  DALI_TEST_CHECK(actor.IsKeyboardFocusable() == false);
+  actor.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, false );
+  DALI_TEST_CHECK(actor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) == false);
   END_TEST;
 }
 
@@ -2483,7 +2518,7 @@ int UtcDaliActorIsKeyboardFocusable(void)
 
   Actor actor = Actor::New();
 
-  DALI_TEST_CHECK(actor.IsKeyboardFocusable() == false);
+  DALI_TEST_CHECK(actor.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE ) == false);
   END_TEST;
 }
 
@@ -2502,7 +2537,7 @@ int UtcDaliActorRemoveConstraints(void)
 
   DALI_TEST_CHECK( gTestConstraintCalled == false );
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   constraint.Apply();
 
   // flush the queue and render once
@@ -2536,7 +2571,7 @@ int UtcDaliActorRemoveConstraintTag(void)
   constraint2.SetTag( constraint2Tag );
   constraint2.Apply();
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   // flush the queue and render once
   application.SendNotification();
   application.Render();
@@ -2605,7 +2640,7 @@ int UtcDaliActorTouchedSignal(void)
   ResetTouchCallbacks();
 
   // get the root layer
-  Actor actor = Stage::GetCurrent().GetRootLayer();
+  Actor actor = application.GetScene().GetRootLayer();
   DALI_TEST_CHECK( gTouchCallBackCalled == false );
 
   application.SendNotification();
@@ -2615,7 +2650,7 @@ int UtcDaliActorTouchedSignal(void)
   actor.TouchedSignal().Connect( TestCallback );
 
   // simulate a touch event in the middle of the screen
-  Vector2 touchPoint( Stage::GetCurrent().GetSize() * 0.5 );
+  Vector2 touchPoint( application.GetScene().GetSize() * 0.5 );
   Dali::Integration::Point point;
   point.SetDeviceId( 1 );
   point.SetState( PointState::DOWN );
@@ -2635,7 +2670,7 @@ int UtcDaliActorHoveredSignal(void)
   gHoverCallBackCalled = false;
 
   // get the root layer
-  Actor actor = Stage::GetCurrent().GetRootLayer();
+  Actor actor = application.GetScene().GetRootLayer();
   DALI_TEST_CHECK( gHoverCallBackCalled == false );
 
   application.SendNotification();
@@ -2645,7 +2680,7 @@ int UtcDaliActorHoveredSignal(void)
   actor.HoveredSignal().Connect( TestCallback3 );
 
   // simulate a hover event in the middle of the screen
-  Vector2 touchPoint( Stage::GetCurrent().GetSize() * 0.5 );
+  Vector2 touchPoint( application.GetScene().GetSize() * 0.5 );
   Dali::Integration::Point point;
   point.SetDeviceId( 1 );
   point.SetState( PointState::MOTION );
@@ -2677,7 +2712,7 @@ int UtcDaliActorOnOffStageSignal(void)
   DALI_TEST_CHECK( gOffStageCallBackCalled == 0 );
 
   // add parent to stage
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
   // onstage emitted, offstage not
   DALI_TEST_EQUALS(  gOnStageCallBackCalled, 1, TEST_LOCATION );
   DALI_TEST_EQUALS( gOffStageCallBackCalled, 0, TEST_LOCATION );
@@ -2703,7 +2738,7 @@ int UtcDaliActorOnOffStageSignal(void)
   gOnStageCallBackCalled = gOffStageCallBackCalled = 0;
   gActorNamesOnOffStage.clear();
 
-  Stage::GetCurrent().Remove( parent );
+  application.GetScene().Remove( parent );
   // onstage not emitted, offstage is
   DALI_TEST_EQUALS(  gOnStageCallBackCalled, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( gOffStageCallBackCalled, 2, TEST_LOCATION );
@@ -2715,7 +2750,7 @@ int UtcDaliActorOnOffStageSignal(void)
   gOnStageCallBackCalled = gOffStageCallBackCalled = 0;
   gActorNamesOnOffStage.clear();
 
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
   // onstage emitted, offstage not
   DALI_TEST_EQUALS(  gOnStageCallBackCalled, 2, TEST_LOCATION );
   DALI_TEST_EQUALS( gOffStageCallBackCalled, 0, TEST_LOCATION );
@@ -2738,7 +2773,7 @@ int UtcDaliActorOnOffStageSignal(void)
   gOnStageCallBackCalled = gOffStageCallBackCalled = 0;
   gActorNamesOnOffStage.clear();
 
-  Stage::GetCurrent().Remove( parent );
+  application.GetScene().Remove( parent );
   // onstage not emitted, offstage is
   DALI_TEST_EQUALS(  gOnStageCallBackCalled, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( gOffStageCallBackCalled, 1, TEST_LOCATION );
@@ -2790,13 +2825,13 @@ int UtcDaliActorFindChildById(void)
   Actor found = parent.FindChildById( 100000 );
   DALI_TEST_CHECK( !found );
 
-  found = parent.FindChildById( parent.GetId() );
+  found = parent.FindChildById( parent.GetProperty< int >( Actor::Property::ID ) );
   DALI_TEST_CHECK( found == parent );
 
-  found = parent.FindChildById( first.GetId() );
+  found = parent.FindChildById( first.GetProperty< int >( Actor::Property::ID ) );
   DALI_TEST_CHECK( found == first );
 
-  found = parent.FindChildById( second.GetId() );
+  found = parent.FindChildById( second.GetProperty< int >( Actor::Property::ID ) );
   DALI_TEST_CHECK( found == second );
   END_TEST;
 }
@@ -2836,7 +2871,7 @@ int UtcDaliActorHitTest(void)
   actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
 
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   ResetTouchCallbacks();
 
@@ -2882,28 +2917,28 @@ int UtcDaliActorHitTest(void)
 
 int UtcDaliActorSetDrawMode(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorSetDrawModeOverlay");
 
   Actor a = Actor::New();
 
-  Stage::GetCurrent().Add(a);
-  app.SendNotification();
-  app.Render(0);
-  app.SendNotification();
-  app.Render(1);
+  application.GetScene().Add(a);
+  application.SendNotification();
+  application.Render(0);
+  application.SendNotification();
+  application.Render(1);
 
   DALI_TEST_CHECK( DrawMode::NORMAL == a.GetProperty< DrawMode::Type >( Actor::Property::DRAW_MODE ) ); // Ensure overlay is off by default
 
   a.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   DALI_TEST_CHECK( DrawMode::OVERLAY_2D == a.GetProperty< DrawMode::Type >( Actor::Property::DRAW_MODE ) ); // Check Actor is overlay
 
   a.SetProperty( Actor::Property::DRAW_MODE, DrawMode::NORMAL );
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   DALI_TEST_CHECK( DrawMode::NORMAL == a.GetProperty< DrawMode::Type >( Actor::Property::DRAW_MODE ) ); // Check Actor is normal
   END_TEST;
@@ -2911,44 +2946,44 @@ int UtcDaliActorSetDrawMode(void)
 
 int UtcDaliActorSetDrawModeOverlayRender(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorSetDrawModeOverlayRender");
 
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   std::vector<GLuint> ids;
   ids.push_back( 8 );   // first rendered actor
   ids.push_back( 9 );   // second rendered actor
   ids.push_back( 10 );  // third rendered actor
-  app.GetGlAbstraction().SetNextTextureIds( ids );
+  application.GetGlAbstraction().SetNextTextureIds( ids );
 
-  BufferImage imageA = BufferImage::New(16, 16);
-  BufferImage imageB = BufferImage::New(16, 16);
-  BufferImage imageC = BufferImage::New(16, 16);
+  Texture imageA = Texture::New(TextureType::TEXTURE_2D, Pixel::Format::RGBA8888, 16, 16);
+  Texture imageB = Texture::New(TextureType::TEXTURE_2D, Pixel::Format::RGBA8888, 16, 16);
+  Texture imageC = Texture::New(TextureType::TEXTURE_2D, Pixel::Format::RGBA8888, 16, 16);
   Actor a = CreateRenderableActor( imageA );
   Actor b = CreateRenderableActor( imageB );
   Actor c = CreateRenderableActor( imageC );
 
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   //Textures are bound when first created. Clear bound textures vector
-  app.GetGlAbstraction().ClearBoundTextures();
+  application.GetGlAbstraction().ClearBoundTextures();
 
   // Render a,b,c as regular non-overlays. so order will be:
   // a (8)
   // b (9)
   // c (10)
-  Stage::GetCurrent().Add(a);
-  Stage::GetCurrent().Add(b);
-  Stage::GetCurrent().Add(c);
+  application.GetScene().Add(a);
+  application.GetScene().Add(b);
+  application.GetScene().Add(c);
 
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   // Should be 3 textures changes.
-  const std::vector<GLuint>& boundTextures = app.GetGlAbstraction().GetBoundTextures( GL_TEXTURE0 );
+  const std::vector<GLuint>& boundTextures = application.GetGlAbstraction().GetBoundTextures( GL_TEXTURE0 );
   typedef std::vector<GLuint>::size_type TextureSize;
   DALI_TEST_EQUALS( boundTextures.size(), static_cast<TextureSize>( 3 ), TEST_LOCATION );
   if( boundTextures.size() == 3 )
@@ -2964,10 +2999,10 @@ int UtcDaliActorSetDrawModeOverlayRender(void)
   // c (10)
   // a (8)
   a.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
-  app.GetGlAbstraction().ClearBoundTextures();
+  application.GetGlAbstraction().ClearBoundTextures();
 
-  app.SendNotification();
-  app.Render(1);
+  application.SendNotification();
+  application.Render(1);
 
   // Should be 3 texture changes.
   DALI_TEST_EQUALS( boundTextures.size(), static_cast<TextureSize>(3), TEST_LOCATION );
@@ -2982,7 +3017,7 @@ int UtcDaliActorSetDrawModeOverlayRender(void)
 
 int UtcDaliActorGetCurrentWorldMatrix(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorGetCurrentWorldMatrix");
 
   Actor parent = Actor::New();
@@ -2995,7 +3030,7 @@ int UtcDaliActorGetCurrentWorldMatrix(void)
   parent.SetProperty( Actor::Property::POSITION, parentPosition );
   parent.SetProperty( Actor::Property::ORIENTATION, parentRotation );
   parent.SetProperty( Actor::Property::SCALE, parentScale );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
@@ -3008,10 +3043,10 @@ int UtcDaliActorGetCurrentWorldMatrix(void)
   child.SetProperty( Actor::Property::SCALE, childScale );
   parent.Add( child );
 
-  app.SendNotification();
-  app.Render(0);
-  app.Render();
-  app.SendNotification();
+  application.SendNotification();
+  application.Render(0);
+  application.Render();
+  application.SendNotification();
 
   Matrix parentMatrix(false);
   parentMatrix.SetTransformComponents(parentScale, parentRotation, parentPosition);
@@ -3032,7 +3067,7 @@ int UtcDaliActorGetCurrentWorldMatrix(void)
 
 int UtcDaliActorConstrainedToWorldMatrix(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorConstrainedToWorldMatrix");
 
   Actor parent = Actor::New();
@@ -3045,7 +3080,7 @@ int UtcDaliActorConstrainedToWorldMatrix(void)
   parent.SetProperty( Actor::Property::POSITION, parentPosition );
   parent.SetProperty( Actor::Property::ORIENTATION, parentRotation );
   parent.SetProperty( Actor::Property::SCALE, parentScale );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
@@ -3053,12 +3088,12 @@ int UtcDaliActorConstrainedToWorldMatrix(void)
   posConstraint.AddSource( Source( parent, Actor::Property::WORLD_MATRIX ) );
   posConstraint.Apply();
 
-  Stage::GetCurrent().Add( child );
+  application.GetScene().Add( child );
 
-  app.SendNotification();
-  app.Render(0);
-  app.Render();
-  app.SendNotification();
+  application.SendNotification();
+  application.Render(0);
+  application.Render();
+  application.SendNotification();
 
   Matrix parentMatrix(false);
   parentMatrix.SetTransformComponents(parentScale, parentRotation, parentPosition);
@@ -3070,7 +3105,7 @@ int UtcDaliActorConstrainedToWorldMatrix(void)
 
 int UtcDaliActorConstrainedToOrientation(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorConstrainedToOrientation");
 
   Actor parent = Actor::New();
@@ -3083,7 +3118,7 @@ int UtcDaliActorConstrainedToOrientation(void)
   parent.SetProperty( Actor::Property::POSITION, parentPosition );
   parent.SetProperty( Actor::Property::ORIENTATION, parentRotation );
   parent.SetProperty( Actor::Property::SCALE, parentScale );
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
   child.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
@@ -3091,12 +3126,12 @@ int UtcDaliActorConstrainedToOrientation(void)
   posConstraint.AddSource( Source( parent, Actor::Property::ORIENTATION ) );
   posConstraint.Apply();
 
-  Stage::GetCurrent().Add( child );
+  application.GetScene().Add( child );
 
-  app.SendNotification();
-  app.Render(0);
-  app.Render();
-  app.SendNotification();
+  application.SendNotification();
+  application.Render(0);
+  application.Render();
+  application.SendNotification();
 
   DALI_TEST_EQUALS( child.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), parent.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION ), 0.001, TEST_LOCATION );
   END_TEST;
@@ -3104,46 +3139,46 @@ int UtcDaliActorConstrainedToOrientation(void)
 
 int UtcDaliActorConstrainedToOpacity(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorConstrainedToOpacity");
 
   Actor parent = Actor::New();
-  parent.SetProperty( DevelActor::Property::OPACITY, 0.7f );
-  Stage::GetCurrent().Add( parent );
+  parent.SetProperty( Actor::Property::OPACITY, 0.7f );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
-  Constraint opacityConstraint = Constraint::New<float>( child, DevelActor::Property::OPACITY, EqualToConstraint() );
-  opacityConstraint.AddSource( Source( parent, DevelActor::Property::OPACITY ) );
+  Constraint opacityConstraint = Constraint::New<float>( child, Actor::Property::OPACITY, EqualToConstraint() );
+  opacityConstraint.AddSource( Source( parent, Actor::Property::OPACITY ) );
   opacityConstraint.Apply();
 
-  Stage::GetCurrent().Add( child );
+  application.GetScene().Add( child );
 
-  app.SendNotification();
-  app.Render(0);
-  app.Render();
-  app.SendNotification();
+  application.SendNotification();
+  application.Render(0);
+  application.Render();
+  application.SendNotification();
 
-  DALI_TEST_EQUALS( child.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), parent.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS( child.GetCurrentProperty< float >( Actor::Property::OPACITY ), parent.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.001f, TEST_LOCATION );
 
-  parent.SetProperty( DevelActor::Property::OPACITY, 0.3f );
+  parent.SetProperty( Actor::Property::OPACITY, 0.3f );
 
-  app.SendNotification();
-  app.Render(0);
-  app.Render();
-  app.SendNotification();
+  application.SendNotification();
+  application.Render(0);
+  application.Render();
+  application.SendNotification();
 
-  DALI_TEST_EQUALS( child.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), parent.GetCurrentProperty< float >( DevelActor::Property::OPACITY ), 0.001f, TEST_LOCATION );
+  DALI_TEST_EQUALS( child.GetCurrentProperty< float >( Actor::Property::OPACITY ), parent.GetCurrentProperty< float >( Actor::Property::OPACITY ), 0.001f, TEST_LOCATION );
 
   END_TEST;
 }
 
 int UtcDaliActorUnparent(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorUnparent");
 
   Actor parent = Actor::New();
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child = Actor::New();
 
@@ -3187,11 +3222,11 @@ int UtcDaliActorUnparent(void)
 
 int UtcDaliActorGetChildAt(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorGetChildAt");
 
   Actor parent = Actor::New();
-  Stage::GetCurrent().Add( parent );
+  application.GetScene().Add( parent );
 
   Actor child0 = Actor::New();
   parent.Add( child0 );
@@ -3210,7 +3245,7 @@ int UtcDaliActorGetChildAt(void)
 
 int UtcDaliActorSetGetOverlay(void)
 {
-  TestApplication app;
+  TestApplication application;
   tet_infoline(" UtcDaliActorSetGetOverlay");
 
   Actor parent = Actor::New();
@@ -3292,14 +3327,14 @@ const PropertyStringIndex PROPERTY_TABLE[] =
   { "maximumSize",              Actor::Property::MAXIMUM_SIZE,             Property::VECTOR2     },
   { "inheritPosition",          Actor::Property::INHERIT_POSITION,         Property::BOOLEAN     },
   { "clippingMode",             Actor::Property::CLIPPING_MODE,            Property::STRING      },
-  { "opacity",                  DevelActor::Property::OPACITY,             Property::FLOAT       },
+  { "opacity",                  Actor::Property::OPACITY,             Property::FLOAT       },
 };
 const unsigned int PROPERTY_TABLE_COUNT = sizeof( PROPERTY_TABLE ) / sizeof( PROPERTY_TABLE[0] );
 } // unnamed namespace
 
 int UtcDaliActorProperties(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3315,7 +3350,7 @@ int UtcDaliActorProperties(void)
 
 int UtcDaliRelayoutProperties_ResizePolicies(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3355,7 +3390,7 @@ int UtcDaliRelayoutProperties_ResizePolicies(void)
 
 int UtcDaliRelayoutProperties_SizeScalePolicy(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3381,7 +3416,7 @@ int UtcDaliRelayoutProperties_SizeScalePolicy(void)
 
 int UtcDaliRelayoutProperties_SizeModeFactor(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3404,7 +3439,7 @@ int UtcDaliRelayoutProperties_SizeModeFactor(void)
 
 int UtcDaliRelayoutProperties_DimensionDependency(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3428,7 +3463,7 @@ int UtcDaliRelayoutProperties_DimensionDependency(void)
 
 int UtcDaliRelayoutProperties_Padding(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3446,7 +3481,7 @@ int UtcDaliRelayoutProperties_Padding(void)
 
 int UtcDaliRelayoutProperties_MinimumMaximumSize(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3470,7 +3505,7 @@ int UtcDaliRelayoutProperties_MinimumMaximumSize(void)
 
 int UtcDaliActorGetHeightForWidth(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3481,7 +3516,7 @@ int UtcDaliActorGetHeightForWidth(void)
 
 int UtcDaliActorGetWidthForHeight(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3492,12 +3527,12 @@ int UtcDaliActorGetWidthForHeight(void)
 
 int UtcDaliActorGetRelayoutSize(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
   // Add actor to stage
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   DALI_TEST_EQUALS( actor.GetRelayoutSize( Dimension::WIDTH ), 0.0f, TEST_LOCATION );
 
@@ -3505,8 +3540,8 @@ int UtcDaliActorGetRelayoutSize(void)
   actor.SetProperty( Actor::Property::SIZE, Vector2( 1.0f, 0.0f ) );
 
   // Flush the queue and render once
-  app.SendNotification();
-  app.Render();
+  application.SendNotification();
+  application.Render();
 
   DALI_TEST_EQUALS( actor.GetRelayoutSize( Dimension::WIDTH ), 1.0f, TEST_LOCATION );
 
@@ -3515,7 +3550,7 @@ int UtcDaliActorGetRelayoutSize(void)
 
 int UtcDaliActorSetPadding(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3542,7 +3577,7 @@ int UtcDaliActorSetPadding(void)
 
 int UtcDaliActorSetMinimumSize(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3564,7 +3599,7 @@ int UtcDaliActorSetMinimumSize(void)
 
 int UtcDaliActorSetMaximumSize(void)
 {
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -3602,7 +3637,7 @@ int UtcDaliActorOnRelayoutSignal(void)
   DALI_TEST_CHECK( ! gOnRelayoutCallBackCalled );
 
   // Add actor to stage
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   actor.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
   actor.SetProperty( Actor::Property::SIZE, Vector2( 1.0f, 2.0 ) );
@@ -3636,7 +3671,7 @@ int UtcDaliActorGetHierachyDepth(void)
    *
    * GetHierarchyDepth should return 1 for A, 2 for B and C, and 3 for D, E and F.
    */
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -3646,15 +3681,15 @@ int UtcDaliActorGetHierachyDepth(void)
   Actor actorF = Actor::New();
 
   //Test that root actor has depth equal 0
-  DALI_TEST_EQUALS( 0, stage.GetRootLayer().GetHierarchyDepth(), TEST_LOCATION );
+  DALI_TEST_EQUALS( 0, stage.GetRootLayer().GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
 
   //Test actors return depth -1 when not connected to the tree
-  DALI_TEST_EQUALS( -1, actorA.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorC.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorF.GetHierarchyDepth(), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorA.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorB.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorC.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorD.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorE.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorF.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
 
   //Create the hierarchy
   stage.Add( actorA );
@@ -3665,29 +3700,29 @@ int UtcDaliActorGetHierachyDepth(void)
   actorC.Add( actorF );
 
   //Test actors return correct depth
-  DALI_TEST_EQUALS( 1, actorA.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( 2, actorB.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( 2, actorC.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( 3, actorD.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( 3, actorE.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( 3, actorF.GetHierarchyDepth(), TEST_LOCATION );
+  DALI_TEST_EQUALS( 1, actorA.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, actorB.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, actorC.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 3, actorD.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 3, actorE.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 3, actorF.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
 
   //Removing actorB from the hierarchy. actorB, actorD and actorE should now have depth equal -1
   actorA.Remove( actorB );
 
-  DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorB.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorD.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorE.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
 
   //Removing actorA from the stage. All actors should have depth equal -1
   stage.Remove( actorA );
 
-  DALI_TEST_EQUALS( -1, actorA.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorB.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorC.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorD.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorE.GetHierarchyDepth(), TEST_LOCATION );
-  DALI_TEST_EQUALS( -1, actorF.GetHierarchyDepth(), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorA.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorB.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorC.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorD.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorE.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
+  DALI_TEST_EQUALS( -1, actorF.GetProperty< int >( Actor::Property::HIERARCHY_DEPTH ), TEST_LOCATION );
 
   END_TEST;
 }
@@ -3872,7 +3907,7 @@ int UtcDaliActorAddRendererP(void)
   END_TEST;
 }
 
-int UtcDaliActorAddRendererN(void)
+int UtcDaliActorAddRendererN01(void)
 {
   tet_infoline("Testing Actor::AddRenderer");
   TestApplication application;
@@ -3902,13 +3937,51 @@ int UtcDaliActorAddRendererN(void)
   END_TEST;
 }
 
+int UtcDaliActorAddRendererN02(void)
+{
+  tet_infoline( "UtcDaliActorAddRendererN02" );
+
+  Actor actor;
+  Renderer renderer;
+
+  {
+    TestApplication application;
+
+    Geometry geometry = CreateQuadGeometry();
+    Shader shader = CreateShader();
+    renderer = Renderer::New( geometry, shader );
+
+    actor = Actor::New();
+  }
+
+  // try illegal AddRenderer
+  try
+  {
+    actor.AddRenderer( renderer );
+    tet_printf( "Assertion test failed - no Exception\n" );
+    tet_result( TET_FAIL );
+  }
+  catch( Dali::DaliException& e )
+  {
+    DALI_TEST_PRINT_ASSERT( e );
+    DALI_TEST_ASSERT( e, "EventThreadServices::IsCoreRunning()", TEST_LOCATION );
+  }
+  catch(...)
+  {
+    tet_printf( "Assertion test failed - wrong Exception\n" );
+    tet_result( TET_FAIL );
+  }
+
+  END_TEST;
+}
+
 int UtcDaliActorAddRendererOnStage(void)
 {
   tet_infoline("Testing Actor::AddRenderer");
   TestApplication application;
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render(0);
@@ -4031,7 +4104,7 @@ int UtcDaliActorRemoveRendererN(void)
 // Clipping test helper functions:
 Actor CreateActorWithContent( uint32_t width, uint32_t height)
 {
-  BufferImage image = BufferImage::New( width, height );
+  Texture image = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, width, height );
   Actor actor = CreateRenderableActor( image );
 
   // Setup dimensions and position so actor is not skipped by culling.
@@ -4169,7 +4242,7 @@ int UtcDaliActorPropertyClippingActor(void)
   // Create a clipping actor.
   Actor actorDepth1Clip = CreateActorWithContent16x16();
   actorDepth1Clip.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
-  Stage::GetCurrent().Add( actorDepth1Clip );
+  application.GetScene().Add( actorDepth1Clip );
 
   // Gather the call trace.
   GenerateTrace( application, enabledDisableTrace, stencilTrace );
@@ -4205,7 +4278,7 @@ int UtcDaliActorPropertyClippingActorEnableThenDisable(void)
   // Create a clipping actor.
   Actor actorDepth1Clip = CreateActorWithContent16x16();
   actorDepth1Clip.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
-  Stage::GetCurrent().Add( actorDepth1Clip );
+  application.GetScene().Add( actorDepth1Clip );
 
   // Gather the call trace.
   GenerateTrace( application, enabledDisableTrace, stencilTrace );
@@ -4253,7 +4326,7 @@ int UtcDaliActorPropertyClippingNestedChildren(void)
   // Create a clipping actor.
   Actor actorDepth1Clip = CreateActorWithContent16x16();
   actorDepth1Clip.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
-  Stage::GetCurrent().Add( actorDepth1Clip );
+  application.GetScene().Add( actorDepth1Clip );
 
   // Create a child actor.
   Actor childDepth2 = CreateActorWithContent16x16();
@@ -4310,7 +4383,7 @@ int UtcDaliActorPropertyClippingNestedChildren(void)
     // If we are on the first loop, set the layer to 3D and loop to perform the test again.
     if( i == 0u )
     {
-      Stage::GetCurrent().GetRootLayer().SetBehavior( Layer::LAYER_3D );
+      application.GetScene().GetRootLayer().SetProperty( Layer::Property::BEHAVIOR, Layer::LAYER_3D );
       GenerateTrace( application, enabledDisableTrace, stencilTrace );
     }
   }
@@ -4339,7 +4412,7 @@ int UtcDaliActorPropertyClippingActorDrawOrder(void)
   Actor actors[5];
   for( int i = 0; i < 5; ++i )
   {
-    BufferImage image = BufferImage::New( 16u, 16u );
+    Texture image = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, 16u, 16u );
     Actor actor = CreateRenderableActor( image );
 
     // Setup dimensions and position so actor is not skipped by culling.
@@ -4363,7 +4436,7 @@ int UtcDaliActorPropertyClippingActorDrawOrder(void)
   actors[1].SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
 
   // Build the scene graph.
-  Stage::GetCurrent().Add( actors[0] );
+  application.GetScene().Add( actors[0] );
 
   // Left branch:
   actors[0].Add( actors[1] );
@@ -4430,7 +4503,7 @@ int UtcDaliActorPropertyScissorClippingActor(void)
   clippingActorA.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_LEFT );
   clippingActorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_LEFT );
   clippingActorA.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_TO_BOUNDING_BOX );
-  Stage::GetCurrent().Add( clippingActorA );
+  application.GetScene().Add( clippingActorA );
 
   // Gather the call trace.
   GenerateTrace( application, enabledDisableTrace, scissorTrace );
@@ -4491,8 +4564,8 @@ int UtcDaliActorPropertyScissorClippingActorSiblings(void)
   clippingActorA.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -200.0f, 0.0f ));
   clippingActorB.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ));
 
-  Stage::GetCurrent().Add( clippingActorA );
-  Stage::GetCurrent().Add( clippingActorB );
+  application.GetScene().Add( clippingActorA );
+  application.GetScene().Add( clippingActorB );
 
   // Gather the call trace.
   GenerateTrace( application, enabledDisableTrace, scissorTrace );
@@ -4552,7 +4625,7 @@ int UtcDaliActorPropertyScissorClippingActorNested01(void)
   clippingActorA.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   clippingActorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   clippingActorA.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_TO_BOUNDING_BOX );
-  Stage::GetCurrent().Add( clippingActorA );
+  application.GetScene().Add( clippingActorA );
 
   // Create a child clipping actor.
   Actor clippingActorB = CreateActorWithContent16x16();
@@ -4651,10 +4724,10 @@ int UtcDaliActorPropertyScissorClippingActorNested02(void)
   clippingActorD.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ));
   clippingActorE.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ));
 
-  Stage::GetCurrent().Add( clippingActorA );
+  application.GetScene().Add( clippingActorA );
   clippingActorA.Add( clippingActorB );
-  Stage::GetCurrent().Add( clippingActorC );
-  Stage::GetCurrent().Add( clippingActorD );
+  application.GetScene().Add( clippingActorC );
+  application.GetScene().Add( clippingActorD );
   clippingActorD.Add( clippingActorE );
 
   // Gather the call trace.
@@ -4694,7 +4767,7 @@ int UtcDaliActorPropertyClippingActorWithRendererOverride(void)
   // Create a clipping actor.
   Actor actorDepth1Clip = CreateActorWithContent16x16();
   actorDepth1Clip.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_CHILDREN );
-  Stage::GetCurrent().Add( actorDepth1Clip );
+  application.GetScene().Add( actorDepth1Clip );
 
   // Turn the RenderMode to just "COLOR" at the Renderer level to ignore the clippingMode.
   actorDepth1Clip.GetRendererAt( 0 ).SetProperty( Renderer::Property::RENDER_MODE, RenderMode::COLOR );
@@ -4732,7 +4805,7 @@ int UtcDaliActorPropertyClippingActorWithRendererOverride(void)
 int UtcDaliGetPropertyN(void)
 {
   tet_infoline( "Testing Actor::GetProperty returns a non valid value if property index is out of range" );
-  TestApplication app;
+  TestApplication application;
 
   Actor actor = Actor::New();
 
@@ -4749,7 +4822,7 @@ int UtcDaliActorRaiseLower(void)
 
   Debug::Filter::SetGlobalLogLevel( Debug::Verbose );
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -4880,7 +4953,7 @@ int UtcDaliActorRaiseToTopLowerToBottom(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -5115,7 +5188,7 @@ int UtcDaliActorRaiseAbove(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -5224,7 +5297,7 @@ int UtcDaliActorLowerBelow(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   // Set up renderers to add to Actors, float value 1, 2, 3 assigned to each
   // enables checking of which actor the uniform is assigned too
@@ -5450,7 +5523,7 @@ int UtcDaliActorRaiseAboveDifferentParentsN(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor parentA = Actor::New();
   Actor parentB = Actor::New();
@@ -5558,7 +5631,7 @@ int UtcDaliActorRaiseLowerWhenUnparentedTargetN(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -5726,7 +5799,7 @@ int UtcDaliActorTestAllAPIwhenActorNotParented(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -5887,7 +5960,7 @@ int UtcDaliActorRaiseAboveActorAndTargetTheSameN(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   Actor actorB = Actor::New();
@@ -5993,7 +6066,7 @@ int UtcDaliActorGetScreenPosition(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   actorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
@@ -6011,7 +6084,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.Render();
 
   Vector3 actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  Vector2 actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::CENTER \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position %f %f \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6027,7 +6100,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position  ( %f %f ) AnchorPoint::TOP_LEFT  \n",  actorWorldPosition.x, actorWorldPosition.y );
   tet_printf( "Actor Screen Position  ( %f %f ) AnchorPoint::TOP_LEFT \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6043,7 +6116,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT   \n",  actorWorldPosition.x, actorWorldPosition.y );
   tet_printf( "Actor Screen Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT  \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6059,7 +6132,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT Position x=30 y = 0.0 \n",  actorWorldPosition.x, actorWorldPosition.y );
   tet_printf( "Actor Screen Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT Position x=30 y = 0.0   \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6075,7 +6148,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   DALI_TEST_EQUALS( actorScreenPosition.x,  30lu , TEST_LOCATION );
   DALI_TEST_EQUALS( actorScreenPosition.y,  420lu , TEST_LOCATION );
@@ -6099,7 +6172,7 @@ int UtcDaliActorGetScreenPosition(void)
   application.SendNotification();
   application.Render();
 
-  actorScreenPosition = actorB.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorB.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   DALI_TEST_EQUALS( actorScreenPosition.x,  50lu , TEST_LOCATION );
   DALI_TEST_EQUALS( actorScreenPosition.y,  50lu , TEST_LOCATION );
@@ -6113,7 +6186,7 @@ int UtcDaliActorGetScreenPositionAfterScaling(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   actorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
@@ -6131,7 +6204,7 @@ int UtcDaliActorGetScreenPositionAfterScaling(void)
   application.Render();
 
   Vector3 actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  Vector2 actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::TOP_LEFT \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6147,7 +6220,7 @@ int UtcDaliActorGetScreenPositionAfterScaling(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6164,7 +6237,7 @@ int UtcDaliActorGetScreenPositionWithDifferentParentOrigin(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   Actor actorA = Actor::New();
   actorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
@@ -6181,7 +6254,7 @@ int UtcDaliActorGetScreenPositionWithDifferentParentOrigin(void)
   application.Render();
 
   Vector3 actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  Vector2 actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::TOP_LEFT ParentOrigin::CENTER  \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6198,7 +6271,7 @@ int UtcDaliActorGetScreenPositionWithDifferentParentOrigin(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::BOTTOM_RIGHT ParentOrigin::TOP_RIGHT \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6216,7 +6289,7 @@ int UtcDaliActorGetScreenPositionWithChildActors(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   tet_infoline( "Create Child Actor 1 TOP_LEFT Anchor Point, ParentOrigin::CENTER and 0,0 position \n" );
 
@@ -6245,7 +6318,7 @@ int UtcDaliActorGetScreenPositionWithChildActors(void)
   application.Render();
 
   Vector3 actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  Vector2 actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::TOP_LEFT ParentOrigin::CENTER  \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6264,7 +6337,7 @@ int UtcDaliActorGetScreenPositionWithChildActors(void)
   application.Render();
 
   actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::BOTTOM_LEFT ParentOrigin::TOP_LEFT  \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6281,7 +6354,7 @@ int UtcDaliActorGetScreenPositionWithChildActors02(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   tet_infoline( "Create Child Actor 1 TOP_LEFT Anchor Point, ParentOrigin::CENTER and 0,0 position \n" );
 
@@ -6323,7 +6396,7 @@ int UtcDaliActorGetScreenPositionWithChildActors02(void)
   application.Render();
 
   Vector3 actorWorldPosition = actorA.GetProperty( Actor::Property::WORLD_POSITION ).Get< Vector3 >();
-  Vector2 actorScreenPosition = actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >();
+  Vector2 actorScreenPosition = actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >();
 
   tet_printf( "Actor World Position ( %f %f ) AnchorPoint::TOP_LEFT ParentOrigin::CENTER  \n",  actorWorldPosition.x, actorWorldPosition.y  );
   tet_printf( "Actor Screen Position ( %f %f ) \n", actorScreenPosition.x, actorScreenPosition.y );
@@ -6340,14 +6413,14 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
 
   TestApplication application;
 
-  Stage stage( Stage::GetCurrent() );
+  Integration::Scene stage( application.GetScene() );
 
   tet_infoline( "Create an actor with AnchorPoint::TOP_LEFT, ParentOrigin::CENTER and 0,0 position, POSITION_USES_ANCHOR false" );
 
   Actor actorA = Actor::New();
   actorA.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
   actorA.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-  actorA.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
+  actorA.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
   actorA.SetProperty( Actor::Property::SIZE, Vector2( 10.0f, 20.0f ) );
   stage.Add( actorA );
 
@@ -6356,7 +6429,7 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
   Actor actorB = Actor::New();
   actorB.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_RIGHT );
   actorB.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-  actorB.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
+  actorB.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
   Vector2 actorBSize( 30.0f, 60.0f );
   actorB.SetProperty( Actor::Property::SIZE, actorBSize );
   stage.Add( actorB );
@@ -6366,7 +6439,7 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
   Actor actorC = Actor::New();
   actorC.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   actorC.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-  actorC.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
+  actorC.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
   Vector2 actorCSize( 60.0f, 120.0f );
   actorC.SetProperty( Actor::Property::SIZE, actorCSize );
   stage.Add( actorC );
@@ -6378,9 +6451,9 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
 
   Vector2 center( stage.GetSize() * 0.5f );
 
-  DALI_TEST_EQUALS( actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
-  DALI_TEST_EQUALS( actorB.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
-  DALI_TEST_EQUALS( actorC.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorB.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorC.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center, TEST_LOCATION );
 
   tet_infoline( "Add scale to all actors" );
 
@@ -6391,9 +6464,9 @@ int UtcDaliActorGetScreenPositionPositionUsesAnchorPointFalse(void)
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( actorA.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center /* TOP_LEFT Anchor */, TEST_LOCATION );
-  DALI_TEST_EQUALS( actorB.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center - actorBSize /* BOTTOM_RIGHT Anchor */, TEST_LOCATION );
-  DALI_TEST_EQUALS( actorC.GetProperty( DevelActor::Property::SCREEN_POSITION).Get< Vector2 >(), center - actorCSize * 0.5f /* CENTER Anchor*/, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorA.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center /* TOP_LEFT Anchor */, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorB.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center - actorBSize /* BOTTOM_RIGHT Anchor */, TEST_LOCATION );
+  DALI_TEST_EQUALS( actorC.GetProperty( Actor::Property::SCREEN_POSITION).Get< Vector2 >(), center - actorCSize * 0.5f /* CENTER Anchor*/, TEST_LOCATION );
 
   END_TEST;
 }
@@ -6407,7 +6480,7 @@ int utcDaliActorPositionUsesAnchorPoint(void)
   actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -6416,7 +6489,7 @@ int utcDaliActorPositionUsesAnchorPoint(void)
   DALI_TEST_EQUALS( actor.GetCurrentProperty< Vector3 >( Actor::Property::WORLD_POSITION ), Vector3( 0.0f, 0.0f, 0.0f ), TEST_LOCATION );
 
   tet_infoline( "Set the position uses anchor point property to false\n" );
-  actor.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
+  actor.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
 
   application.SendNotification();
   application.Render();
@@ -6437,8 +6510,8 @@ int utcDaliActorPositionUsesAnchorPointCheckScale(void)
   actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
   actor.SetProperty( Actor::Property::SCALE, 2.0f );
-  actor.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
-  Stage::GetCurrent().Add( actor );
+  actor.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
+  application.GetScene().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -6471,8 +6544,8 @@ int utcDaliActorPositionUsesAnchorPointCheckRotation(void)
   actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
   actor.SetProperty( Actor::Property::ORIENTATION, Quaternion( Degree( 90.0f), Vector3::ZAXIS ) );
-  actor.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
-  Stage::GetCurrent().Add( actor );
+  actor.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
+  application.GetScene().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -6506,8 +6579,8 @@ int utcDaliActorPositionUsesAnchorPointCheckScaleAndRotation(void)
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
   actor.SetProperty( Actor::Property::ORIENTATION, Quaternion( Degree( 90.0f), Vector3::ZAXIS ) );
   actor.SetProperty( Actor::Property::SCALE, 2.0f );
-  actor.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
-  Stage::GetCurrent().Add( actor );
+  actor.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
+  application.GetScene().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -6537,8 +6610,8 @@ int utcDaliActorPositionUsesAnchorPointOnlyInheritPosition(void)
 
   Actor parent = Actor::New();
 
-  Stage::GetCurrent().Add( parent );
-  Vector2 stageSize( Stage::GetCurrent().GetSize() );
+  application.GetScene().Add( parent );
+  Vector2 stageSize( application.GetScene().GetSize() );
 
   Actor actor = Actor::New();
   actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
@@ -6546,7 +6619,7 @@ int utcDaliActorPositionUsesAnchorPointOnlyInheritPosition(void)
   actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
   actor.SetProperty( Actor::Property::INHERIT_SCALE, false );
   actor.SetProperty( Actor::Property::INHERIT_ORIENTATION, false );
-  actor.SetProperty( DevelActor::Property::POSITION_USES_ANCHOR_POINT, false );
+  actor.SetProperty( Actor::Property::POSITION_USES_ANCHOR_POINT, false );
   parent.Add( actor );
 
   application.SendNotification();
@@ -6663,7 +6736,7 @@ int utcDaliActorVisibilityChangeSignalAfterAnimation(void)
   tet_infoline( "Check that the visibility change signal is emitted when the visibility changes when an animation starts" );
 
   Actor actor = Actor::New();
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -6740,7 +6813,7 @@ int UtcDaliActorLayoutDirectionProperty(void)
 
   Actor actor0 = Actor::New();
   DALI_TEST_EQUALS( actor0.GetProperty< int >( Actor::Property::LAYOUT_DIRECTION ), static_cast< int >( LayoutDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
-  Stage::GetCurrent().Add( actor0 );
+  application.GetScene().Add( actor0 );
 
   application.SendNotification();
   application.Render();
@@ -6781,7 +6854,7 @@ int UtcDaliActorLayoutDirectionProperty(void)
   DALI_TEST_EQUALS( actor1.GetProperty< int >( Actor::Property::LAYOUT_DIRECTION ), static_cast< int >( LayoutDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
   DALI_TEST_EQUALS( actor2.GetProperty< int >( Actor::Property::LAYOUT_DIRECTION ), static_cast< int >( LayoutDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
 
-  Stage::GetCurrent().Add( actor3 );
+  application.GetScene().Add( actor3 );
   actor3.Add( actor4 );
   actor4.Add( actor5 );
   actor5.Add( actor6 );
@@ -6849,7 +6922,7 @@ int UtcDaliActorLayoutDirectionSignal(void)
 
   Actor actor = Actor::New();
   DALI_TEST_EQUALS( actor.GetProperty< int >( Actor::Property::LAYOUT_DIRECTION ), static_cast< int >( LayoutDirection::LEFT_TO_RIGHT ), TEST_LOCATION );
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
   bool signalCalled = false;
   LayoutDirectionFunctor layoutDirectionFunctor(signalCalled);
 
@@ -6898,7 +6971,7 @@ struct ChildAddedSignalCheck
 int UtcDaliChildAddedSignalP1(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -6925,7 +6998,7 @@ int UtcDaliChildAddedSignalP1(void)
 int UtcDaliChildAddedSignalP2(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -6953,7 +7026,7 @@ int UtcDaliChildAddedSignalP2(void)
 int UtcDaliChildAddedSignalN(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -7001,7 +7074,7 @@ struct ChildRemovedSignalCheck
 int UtcDaliChildRemovedSignalP1(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -7034,7 +7107,7 @@ int UtcDaliChildRemovedSignalP1(void)
 int UtcDaliChildRemovedSignalP2(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -7067,7 +7140,7 @@ int UtcDaliChildRemovedSignalP2(void)
 int UtcDaliChildRemovedSignalN(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool signalReceived=false;
   Actor childActor;
@@ -7094,7 +7167,7 @@ int UtcDaliChildRemovedSignalN(void)
 int UtcDaliChildMovedSignalP(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   bool addedASignalReceived   = false;
   bool removedASignalReceived = false;
@@ -7164,7 +7237,7 @@ int UtcDaliChildMovedSignalP(void)
 int utcDaliActorCulled(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   tet_infoline( "Check that the actor is culled if the actor is out of the screen" );
 
@@ -7181,9 +7254,9 @@ int utcDaliActorCulled(void)
   application.SendNotification();
   application.Render( 0 );
 
-  DALI_TEST_EQUALS( actor.GetProperty< bool >( DevelActor::Property::CULLED ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( actor.GetProperty< bool >( Actor::Property::CULLED ), false, TEST_LOCATION );
 
-  PropertyNotification notification = actor.AddPropertyNotification( DevelActor::Property::CULLED, LessThanCondition( 0.5f ) );
+  PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::CULLED, LessThanCondition( 0.5f ) );
   notification.SetNotifyMode( PropertyNotification::NotifyOnChanged );
 
   // Connect NotifySignal
@@ -7199,10 +7272,10 @@ int utcDaliActorCulled(void)
 
   application.SendNotification();
 
-  DALI_TEST_EQUALS( actor.GetProperty< bool >( DevelActor::Property::CULLED ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( actor.GetProperty< bool >( Actor::Property::CULLED ), true, TEST_LOCATION );
 
   DALI_TEST_EQUALS( propertyNotificationSignal, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( source.GetTargetProperty(), static_cast< int >( DevelActor::Property::CULLED ), TEST_LOCATION );
+  DALI_TEST_EQUALS( source.GetTargetProperty(), static_cast< int >( Actor::Property::CULLED ), TEST_LOCATION );
   DALI_TEST_EQUALS( source.GetTarget().GetProperty< bool >( source.GetTargetProperty() ), true, TEST_LOCATION );
 
   END_TEST;
@@ -7211,7 +7284,7 @@ int utcDaliActorCulled(void)
 int utcDaliEnsureRenderWhenRemovingLastRenderableActor(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   tet_infoline( "Ensure we clear the screen when the last actor is removed" );
 
@@ -7238,7 +7311,7 @@ int utcDaliEnsureRenderWhenRemovingLastRenderableActor(void)
 int utcDaliEnsureRenderWhenMakingLastActorInvisible(void)
 {
   TestApplication application;
-  auto stage = Stage::GetCurrent();
+  auto stage = application.GetScene();
 
   tet_infoline( "Ensure we clear the screen when the last actor is made invisible" );
 
@@ -7272,7 +7345,7 @@ int utcDaliActorGetSizeAfterAnimation(void)
   Actor actor = Actor::New();
   actor.SetProperty( Actor::Property::SIZE, actorSize );
   actor.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   // Size should be updated without rendering.
   Vector3 size = actor.GetProperty( Actor::Property::SIZE ).Get< Vector3 >();
@@ -7459,3 +7532,404 @@ int utcDaliActorGetSizeAfterAnimation(void)
 
   END_TEST;
 }
+
+int utcDaliActorPartialUpdate(void)
+{
+  TestApplication application(
+    TestApplication::DEFAULT_SURFACE_WIDTH,
+    TestApplication::DEFAULT_SURFACE_HEIGHT,
+    TestApplication::DEFAULT_HORIZONTAL_DPI,
+    TestApplication::DEFAULT_VERTICAL_DPI,
+    true,
+    true);
+
+  tet_infoline("Check the damaged area");
+
+  const TestGlAbstraction::ScissorParams& glScissorParams( application.GetGlAbstraction().GetScissorParams() );
+
+  std::vector<Rect<int>> damagedRects;
+  Rect<int> clippingRect;
+  application.SendNotification();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+
+  // First render pass, nothing to render, adaptor would just do swap buffer.
+  DALI_TEST_EQUALS(damagedRects.size(), 0, TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+
+  Actor actor = CreateRenderableActor();
+  actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor);
+
+  application.SendNotification();
+
+  // 1. Actor added, damaged rect is added size of actor
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 768, 32, 32); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  // 2. Set new size
+  actor.SetProperty(Actor::Property::SIZE, Vector3(32.0f, 32.0f, 0));
+  application.SendNotification();
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 752, 48, 48); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  // 3. Set new position
+  actor.SetProperty(Actor::Property::POSITION, Vector3(32.0f, 32.0f, 0));
+  application.SendNotification();
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 736, 64, 64); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  application.GetScene().Remove(actor);
+  application.SendNotification();
+
+  // Actor removed, last 3 dirty rects are reported. Adaptor would merge them together.
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 3, TEST_LOCATION);
+
+  clippingRect = damagedRects[0];
+  clippingRect.Merge(damagedRects[1]);
+  clippingRect.Merge(damagedRects[2]);
+
+  DALI_TEST_EQUALS(clippingRect.IsEmpty(), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.IsValid(), true, TEST_LOCATION);
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, Rect<int>(16, 736, 64, 64), TEST_LOCATION);
+
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int utcDaliActorPartialUpdateSetColor(void)
+{
+  TestApplication application(
+    TestApplication::DEFAULT_SURFACE_WIDTH,
+    TestApplication::DEFAULT_SURFACE_HEIGHT,
+    TestApplication::DEFAULT_HORIZONTAL_DPI,
+    TestApplication::DEFAULT_VERTICAL_DPI,
+    true,
+    true);
+
+  tet_infoline("Check uniform update");
+
+  const TestGlAbstraction::ScissorParams& glScissorParams( application.GetGlAbstraction().GetScissorParams() );
+
+  std::vector<Rect<int>> damagedRects;
+  Rect<int> clippingRect;
+  application.SendNotification();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+
+  // First render pass, nothing to render, adaptor would just do swap buffer.
+  DALI_TEST_EQUALS(damagedRects.size(), 0, TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+
+  Actor actor = CreateRenderableActor();
+  actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor);
+
+  application.SendNotification();
+
+  // 1. Actor added, damaged rect is added size of actor
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 768, 32, 32); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+
+  // 2. Set new color
+  actor.SetProperty(Actor::Property::COLOR, Vector3(1.0f, 0.0f, 0.0f));
+  application.SendNotification();
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 768, 32, 32); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  END_TEST;
+}
+
+const std::string SHADER_LIGHT_CAMERA_PROJECTION_MATRIX_PROPERTY_NAME("uLightCameraProjectionMatrix");
+const std::string SHADER_LIGHT_CAMERA_VIEW_MATRIX_PROPERTY_NAME("uLightCameraViewMatrix");
+const std::string SHADER_SHADOW_COLOR_PROPERTY_NAME("uShadowColor");
+const char* const RENDER_SHADOW_VERTEX_SOURCE =
+  " uniform mediump mat4 uLightCameraProjectionMatrix;\n"
+  " uniform mediump mat4 uLightCameraViewMatrix;\n"
+  "\n"
+  "void main()\n"
+  "{\n"
+  "  gl_Position = uProjection * uModelView * vec4(aPosition,1.0);\n"
+  "  vec4 textureCoords = uLightCameraProjectionMatrix * uLightCameraViewMatrix * uModelMatrix  * vec4(aPosition,1.0);\n"
+  "  vTexCoord = 0.5 + 0.5 * (textureCoords.xy/textureCoords.w);\n"
+  "}\n";
+
+const char* const RENDER_SHADOW_FRAGMENT_SOURCE =
+  "uniform lowp vec4 uShadowColor;\n"
+  "void main()\n"
+  "{\n"
+  "  lowp float alpha;\n"
+  "  alpha = texture2D(sTexture, vec2(vTexCoord.x, vTexCoord.y)).a;\n"
+  "  gl_FragColor = vec4(uShadowColor.rgb, uShadowColor.a * alpha);\n"
+  "}\n";
+
+int utcDaliActorPartialUpdateSetProperty(void)
+{
+  TestApplication application(
+    TestApplication::DEFAULT_SURFACE_WIDTH,
+    TestApplication::DEFAULT_SURFACE_HEIGHT,
+    TestApplication::DEFAULT_HORIZONTAL_DPI,
+    TestApplication::DEFAULT_VERTICAL_DPI,
+    true,
+    true);
+  tet_infoline( "Set/Update property with partial update" );
+
+  const TestGlAbstraction::ScissorParams& glScissorParams(application.GetGlAbstraction().GetScissorParams());
+
+  std::vector<Rect<int>> damagedRects;
+  Rect<int> clippingRect;
+  application.SendNotification();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+
+  // First render pass, nothing to render, adaptor would just do swap buffer.
+  DALI_TEST_EQUALS(damagedRects.size(), 0, TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+
+  Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 4u, 4u);
+  Actor actor = CreateRenderableActor(image, RENDER_SHADOW_VERTEX_SOURCE, RENDER_SHADOW_FRAGMENT_SOURCE);
+  actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
+  actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
+  actor.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor);
+
+  actor.RegisterProperty(SHADER_SHADOW_COLOR_PROPERTY_NAME, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
+
+  damagedRects.clear();
+  application.SendNotification();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  // Aligned by 16
+  clippingRect = Rect<int>(16, 768, 32, 32); // in screen coordinates, includes 3 last frames updates
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  Property::Index shadowColorPropertyIndex = actor.GetPropertyIndex( SHADER_SHADOW_COLOR_PROPERTY_NAME );
+  actor.SetProperty(shadowColorPropertyIndex, Vector4(1.0f, 1.0f, 0.0f, 1.0f));
+
+  damagedRects.clear();
+  application.SendNotification();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  damagedRects.clear();
+  application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
+  DALI_TEST_EQUALS(damagedRects.size(), 0, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int utcDaliActorPartialUpdateTwoActors(void)
+{
+  TestApplication application(
+    TestApplication::DEFAULT_SURFACE_WIDTH,
+    TestApplication::DEFAULT_SURFACE_HEIGHT,
+    TestApplication::DEFAULT_HORIZONTAL_DPI,
+    TestApplication::DEFAULT_VERTICAL_DPI,
+    true,
+    true);
+
+  tet_infoline("Check the damaged rects with partial update and two actors");
+
+  const TestGlAbstraction::ScissorParams& glScissorParams( application.GetGlAbstraction().GetScissorParams() );
+
+  Actor actor = CreateRenderableActor();
+  actor.SetProperty(Actor::Property::POSITION, Vector3(100.0f, 100.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector3(50.0f, 50.0f, 0.0f));
+  actor.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor);
+
+  Actor actor2 = CreateRenderableActor();
+  actor2.SetProperty(Actor::Property::POSITION, Vector3(150.0f, 150.0f, 0.0f));
+  actor2.SetProperty(Actor::Property::SIZE, Vector3(100.0f, 100.0f, 0.0f));
+  actor2.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor2);
+
+  application.SendNotification();
+  std::vector<Rect<int>> damagedRects;
+  application.PreRenderWithPartialUpdate(TestApplication::DEFAULT_RENDER_INTERVAL, nullptr, damagedRects);
+
+  DALI_TEST_EQUALS(damagedRects.size(), 2, TEST_LOCATION);
+  DALI_TEST_EQUALS<Rect<int>>(Rect<int>(64, 672, 64, 64), damagedRects[0], TEST_LOCATION);
+  DALI_TEST_EQUALS<Rect<int>>(Rect<int>(96, 592, 112, 112), damagedRects[1], TEST_LOCATION);
+
+  // in screen coordinates, adaptor would calculate it using previous frames information
+  Rect<int> clippingRect = Rect<int>(64, 592, 144, 192);
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int utcDaliActorPartialUpdateActorsWithSizeHint(void)
+{
+  TestApplication application(
+    TestApplication::DEFAULT_SURFACE_WIDTH,
+    TestApplication::DEFAULT_SURFACE_HEIGHT,
+    TestApplication::DEFAULT_HORIZONTAL_DPI,
+    TestApplication::DEFAULT_VERTICAL_DPI,
+    true,
+    true);
+
+  tet_infoline( "Check the damaged rect with partial update and actor size hint" );
+
+  const TestGlAbstraction::ScissorParams& glScissorParams( application.GetGlAbstraction().GetScissorParams() );
+
+  Actor actor = CreateRenderableActor();
+  actor.SetProperty(Actor::Property::POSITION, Vector3(75.0f, 150.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector3(75.0f, 150.0f, 0.0f));
+  actor.SetProperty(DevelActor::Property::UPDATE_SIZE_HINT, Vector3(150, 300, 0));
+  actor.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS);
+  application.GetScene().Add(actor);
+
+  application.SendNotification();
+  std::vector<Rect<int>> damagedRects;
+  application.PreRenderWithPartialUpdate(TestApplication::DEFAULT_RENDER_INTERVAL, nullptr, damagedRects);
+
+  DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
+
+  Rect<int> clippingRect = Rect<int>(0, 496, 160, 320);
+  DALI_TEST_EQUALS<Rect<int>>(clippingRect, damagedRects[0], TEST_LOCATION);
+
+  application.RenderWithPartialUpdate(damagedRects, clippingRect);
+
+  DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.y, glScissorParams.y, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION);
+  DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliActorCaptureAllTouchAfterStartPropertyP(void)
+{
+  TestApplication application;
+
+  Actor actor = Actor::New();
+  DALI_TEST_EQUALS(actor.GetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START).Get<bool>(), false, TEST_LOCATION);
+  actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, true);
+  DALI_TEST_EQUALS(actor.GetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START).Get<bool>(), true, TEST_LOCATION);
+  END_TEST;
+}
+
+int UtcDaliActorCaptureAllTouchAfterStartPropertyN(void)
+{
+  TestApplication application;
+
+  Actor actor = Actor::New();
+
+  // Make sure setting invalid types does not cause a crash
+  try
+  {
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, 1.0f);
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, Vector2::ONE);
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, Vector3::ONE);
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, Vector4::ONE);
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, Property::Map());
+    actor.SetProperty(DevelActor::Property::CAPTURE_ALL_TOUCH_AFTER_START, Property::Array());
+    tet_result(TET_PASS);
+  }
+  catch(...)
+  {
+     tet_result(TET_FAIL);
+  }
+  END_TEST;
+}