Merge "Removed On(...)Event()" into devel/master
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-CustomActor.cpp
index f6d0b34..47bacfb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 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.
@@ -113,24 +113,63 @@ int UtcDaliCustomActorDownCastNegative(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorOnStageConnectionDisconnection(void)
+int UtcDaliCustomActorMoveConstructor(void)
 {
   TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnStageConnection() & OnStageDisconnection");
+
+  Test::TestCustomActor custom = Test::TestCustomActor::New();
+  DALI_TEST_CHECK( custom );
+  DALI_TEST_EQUALS( 1, custom.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+
+  int id = custom.GetProperty< int >( Actor::Property::ID );
+
+  Test::TestCustomActor moved = std::move( custom );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( id, moved.GetProperty< int >( Actor::Property::ID ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( !custom );
+
+  END_TEST;
+}
+
+int UtcDaliCustomActorMoveAssignment(void)
+{
+  TestApplication application;
+
+  Test::TestCustomActor custom = Test::TestCustomActor::New();
+  DALI_TEST_CHECK( custom );
+  DALI_TEST_EQUALS( 1, custom.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+
+  int id = custom.GetProperty< int >( Actor::Property::ID );
+
+  Test::TestCustomActor moved;
+  moved = std::move( custom );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( id, moved.GetProperty< int >( Actor::Property::ID ), TEST_LOCATION );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( !custom );
+
+  END_TEST;
+}
+
+int UtcDaliCustomActorOnSceneConnectionDisconnection(void)
+{
+  TestApplication application;
+  tet_infoline("Testing Dali::CustomActor::OnSceneConnection() & OnSceneDisconnection");
 
   Test::TestCustomActor custom = Test::TestCustomActor::New();
   DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
 
   // add the custom actor to stage
-  Stage::GetCurrent().Add( custom );
+  application.GetScene().Add( custom );
 
   DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
-  Stage::GetCurrent().Remove( custom );
+  application.GetScene().Remove( custom );
 
   DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", custom.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", custom.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -140,10 +179,10 @@ int UtcDaliCustomActorOnStageConnectionDisconnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorOnStageConnectionOrder(void)
+int UtcDaliCustomActorOnSceneConnectionOrder(void)
 {
   TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnStageConnection() order");
+  tet_infoline("Testing Dali::CustomActor::OnSceneConnection() order");
 
   MasterCallStack.clear();
 
@@ -155,74 +194,87 @@ int UtcDaliCustomActorOnStageConnectionOrder(void)
    *    / \   \
    *   D   E   F
    *
-   * OnStageConnection should be received for A, B, D, E, C, and finally F
+   * OnSceneConnection should be received for A, B, D, E, C, and finally F
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::New();
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
   Test::TestCustomActor actorC = Test::TestCustomActor::New();
-  actorC.SetName( "ActorC" );
+  actorC.SetProperty( Actor::Property::NAME, "ActorC" );
   actorA.Add( actorC );
 
   Test::TestCustomActor actorD = Test::TestCustomActor::New();
-  actorD.SetName( "ActorD" );
+  actorD.SetProperty( Actor::Property::NAME, "ActorD" );
   actorB.Add( actorD );
 
   Test::TestCustomActor actorE = Test::TestCustomActor::New();
-  actorE.SetName( "ActorE" );
+  actorE.SetProperty( Actor::Property::NAME, "ActorE" );
   actorB.Add( actorE );
 
   Test::TestCustomActor actorF = Test::TestCustomActor::New();
-  actorF.SetName( "ActorF" );
+  actorF.SetProperty( Actor::Property::NAME, "ActorF" );
   actorC.Add( actorF );
 
   // add the custom actor to stage
-  Stage::GetCurrent().Add( actorA );
+  application.GetScene().Add( actorA );
 
-  DALI_TEST_EQUALS( 3, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 4, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 3, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",        actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 4, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "OnChildAdd",        actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",        actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorB.GetMethodsCalled()[ 3 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 2, (int)(actorC.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",        actorC.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorC.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 3, (int)(actorC.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorC.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",        actorC.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorC.GetMethodsCalled()[ 2 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 1, (int)(actorD.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorD.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(actorD.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorD.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorD.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 1, (int)(actorE.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorE.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(actorE.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorE.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorE.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 1, (int)(actorF.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorF.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(actorF.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorF.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorF.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
   // Check sequence is correct in MasterCallStack
 
-  DALI_TEST_EQUALS( 3+3+2+1+1+1, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 4+4+3+2+2+2, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd", MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd", MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnChildAdd", MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnChildAdd", MasterCallStack[ 3 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorC: OnChildAdd", MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet", MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet", MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",    MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorC: OnPropertySet", MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",    MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorD: OnPropertySet", MasterCallStack[ 5 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection", MasterCallStack[ 5 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection", MasterCallStack[ 6 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorD: OnStageConnection", MasterCallStack[ 7 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorE: OnStageConnection", MasterCallStack[ 8 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorC: OnStageConnection", MasterCallStack[ 9 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorF: OnStageConnection", MasterCallStack[ 10 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnChildAdd",    MasterCallStack[ 6 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorE: OnPropertySet", MasterCallStack[ 7 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnChildAdd",    MasterCallStack[ 8 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorF: OnPropertySet", MasterCallStack[ 9 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorC: OnChildAdd",    MasterCallStack[ 10 ], TEST_LOCATION );
+
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection", MasterCallStack[ 11 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection", MasterCallStack[ 12 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorD: OnSceneConnection", MasterCallStack[ 13 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorE: OnSceneConnection", MasterCallStack[ 14 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorC: OnSceneConnection", MasterCallStack[ 15 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorF: OnSceneConnection", MasterCallStack[ 16 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -232,12 +284,12 @@ int UtcDaliCustomActorOnStageConnectionOrder(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorOnStageDisconnectionOrder(void)
+int UtcDaliCustomActorOnSceneDisconnectionOrder(void)
 {
   TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnStageDisconnection() order");
+  tet_infoline("Testing Dali::CustomActor::OnSceneDisconnection() order");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   /* Build tree of actors:
    *
@@ -247,31 +299,31 @@ int UtcDaliCustomActorOnStageDisconnectionOrder(void)
    *    / \   \
    *   D   E   F
    *
-   * OnStageDisconnection should be received for D, E, B, F, C, and finally A.
+   * OnSceneDisconnection should be received for D, E, B, F, C, and finally A.
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::New();
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
   stage.Add( actorA );
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
   Test::TestCustomActor actorC = Test::TestCustomActor::New();
-  actorC.SetName( "ActorC" );
+  actorC.SetProperty( Actor::Property::NAME, "ActorC" );
   actorA.Add( actorC );
 
   Test::TestCustomActor actorD = Test::TestCustomActor::New();
-  actorD.SetName( "ActorD" );
+  actorD.SetProperty( Actor::Property::NAME, "ActorD" );
   actorB.Add( actorD );
 
   Test::TestCustomActor actorE = Test::TestCustomActor::New();
-  actorE.SetName( "ActorE" );
+  actorE.SetProperty( Actor::Property::NAME, "ActorE" );
   actorB.Add( actorE );
 
   Test::TestCustomActor actorF = Test::TestCustomActor::New();
-  actorF.SetName( "ActorF" );
+  actorF.SetProperty( Actor::Property::NAME, "ActorF" );
   actorC.Add( actorF );
 
   // Excercise the message passing to Update thread
@@ -292,33 +344,33 @@ int UtcDaliCustomActorOnStageDisconnectionOrder(void)
   stage.Remove( actorA );
 
   DALI_TEST_EQUALS( 1, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorC.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorC.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorC.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorD.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorD.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorD.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorE.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorE.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorE.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorF.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorF.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorF.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   // Check sequence is correct in MasterCallStack
 
   DALI_TEST_EQUALS( 6, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorD: OnStageDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorE: OnStageDisconnection", MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageDisconnection", MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorF: OnStageDisconnection", MasterCallStack[ 3 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorC: OnStageDisconnection", MasterCallStack[ 4 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageDisconnection", MasterCallStack[ 5 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorD: OnSceneDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorE: OnSceneDisconnection", MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneDisconnection", MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorF: OnSceneDisconnection", MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorC: OnSceneDisconnection", MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneDisconnection", MasterCallStack[ 5 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -328,40 +380,44 @@ int UtcDaliCustomActorOnStageDisconnectionOrder(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorAddDuringOnStageConnection(void)
+int UtcDaliCustomActorAddDuringOnSceneConnection(void)
 {
   TestApplication application;
-  tet_infoline("Testing Actor::Add behaviour during Dali::CustomActor::OnStageConnection() callback");
+  tet_infoline("Testing Actor::Add behaviour during Dali::CustomActor::OnSceneConnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   MasterCallStack.clear();
 
-  /* The actorA is a special variant which adds a child to itself during OnStageConnection()
+  /* The actorA is a special variant which adds a child to itself during OnSceneConnection()
    * The actorB is provided as the child
    */
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
 
   Test::TestCustomActor actorA = Test::TestCustomActor::NewVariant1( actorB );
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
   stage.Add( actorA );
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 2, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION ); // Called from within OnStageConnection()
+  DALI_TEST_EQUALS( 3, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION ); // Called from within OnSceneConnection()
 
-  DALI_TEST_EQUALS( 2, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 3, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 5, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection", MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection", MasterCallStack[ 1 ], TEST_LOCATION ); // Occurs during Actor::Add from within from within OnStageConnection()
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 2 ], TEST_LOCATION ); // Occurs after Actor::Add from within from within OnStageConnection()
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",     MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",     MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection", MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection", MasterCallStack[ 3 ], TEST_LOCATION ); // Occurs during Actor::Add from within from within OnSceneConnection()
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 4 ], TEST_LOCATION ); // Occurs after Actor::Add from within from within OnSceneConnection()
 
   // Excercise the message passing to Update thread
 
@@ -378,54 +434,58 @@ int UtcDaliCustomActorAddDuringOnStageConnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorRemoveDuringOnStageConnection(void)
+int UtcDaliCustomActorRemoveDuringOnSceneConnection(void)
 {
   TestApplication application;
-  tet_infoline("Testing Actor::Remove behaviour during Dali::CustomActor::OnStageConnection() callback");
+  tet_infoline("Testing Actor::Remove behaviour during Dali::CustomActor::OnSceneConnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   MasterCallStack.clear();
 
-  /* The actorA is a special variant which removes its children during OnStageConnection()
+  /* The actorA is a special variant which removes its children during OnSceneConnection()
    * Actors B & C are provided as the children
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::NewVariant2();
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
   Test::TestCustomActor actorC = Test::TestCustomActor::New();
-  actorC.SetName( "ActorC" );
+  actorC.SetProperty( Actor::Property::NAME, "ActorC" );
   actorA.Add( actorC );
 
   stage.Add( actorA );
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 5, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 6, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildRemove",     actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION ); // Called from within OnStageConnection()
-  DALI_TEST_EQUALS( "OnChildRemove",     actorA.GetMethodsCalled()[ 4 ], TEST_LOCATION ); // Called from within OnStageConnection()
-
-  DALI_TEST_EQUALS( 5, (int)(MasterCallStack.size()), TEST_LOCATION );
-
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection", MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildRemove",     MasterCallStack[ 3 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildRemove",     MasterCallStack[ 4 ], TEST_LOCATION );
-
-  /* Actors B & C should be removed before the point where they could receive an OnStageConnection callback
-   * Therefore they shouldn't receive either OnStageConnection or OnStageDisconnection
+  DALI_TEST_EQUALS( "OnChildAdd",        actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildRemove",     actorA.GetMethodsCalled()[ 4 ], TEST_LOCATION ); // Called from within OnSceneConnection()
+  DALI_TEST_EQUALS( "OnChildRemove",     actorA.GetMethodsCalled()[ 5 ], TEST_LOCATION ); // Called from within OnSceneConnection()
+
+  DALI_TEST_EQUALS( 8, (int)(MasterCallStack.size()), TEST_LOCATION );
+
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",     MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",     MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorC: OnPropertySet",     MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",        MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection", MasterCallStack[ 5 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildRemove",     MasterCallStack[ 6 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildRemove",     MasterCallStack[ 7 ], TEST_LOCATION );
+
+  /* Actors B & C should be removed before the point where they could receive an OnSceneConnection callback
+   * Therefore they shouldn't receive either OnSceneConnection or OnSceneDisconnection
    */
-  DALI_TEST_EQUALS( 0, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( 0, (int)(actorC.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 1, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 1, (int)(actorC.GetMethodsCalled().size()), TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -442,22 +502,22 @@ int UtcDaliCustomActorRemoveDuringOnStageConnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorAddDuringOnStageDisconnection(void)
+int UtcDaliCustomActorAddDuringOnSceneDisconnection(void)
 {
   TestApplication application;
-  tet_infoline("Testing Actor::Add behaviour during Dali::CustomActor::OnStageDisonnection() callback");
+  tet_infoline("Testing Actor::Add behaviour during Dali::CustomActor::OnSceneDisonnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
-  /* The actorA is a special variant which adds a child to itself during OnStageDisconnection()
+  /* The actorA is a special variant which adds a child to itself during OnSceneDisconnection()
    * The actorB is provided as the child
    */
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
 
   Test::TestCustomActor actorA = Test::TestCustomActor::NewVariant3( actorB );
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
   stage.Add( actorA );
 
   // Excercise the message passing to Update thread
@@ -476,15 +536,15 @@ int UtcDaliCustomActorAddDuringOnStageDisconnection(void)
   // Check callback sequence
 
   DALI_TEST_EQUALS( 2, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
-  // Child was added after parent disconnection, so should not receive OnStageConnection()
+  // Child was added after parent disconnection, so should not receive OnSceneConnection()
   DALI_TEST_EQUALS( 0, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
 
   DALI_TEST_EQUALS( 2, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnStageDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 1 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
@@ -495,23 +555,23 @@ int UtcDaliCustomActorAddDuringOnStageDisconnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorRemoveDuringOnStageDisconnection(void)
+int UtcDaliCustomActorRemoveDuringOnSceneDisconnection(void)
 {
   TestApplication application;
-  tet_infoline("Testing Actor::Remove behaviour during Dali::CustomActor::OnStageDisconnection() callback");
+  tet_infoline("Testing Actor::Remove behaviour during Dali::CustomActor::OnSceneDisconnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
-  /* The actorA is a special variant which removes its children during OnStageDisconnection()
+  /* The actorA is a special variant which removes its children during OnSceneDisconnection()
    * The actorB is provided as the child
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::NewVariant4();
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
   stage.Add( actorA );
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
   // Excercise the message passing to Update thread
@@ -530,16 +590,16 @@ int UtcDaliCustomActorRemoveDuringOnStageDisconnection(void)
   // Check callback sequence
 
   DALI_TEST_EQUALS( 2, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "OnChildRemove",        actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 1, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
 
   DALI_TEST_EQUALS( 3, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorB: OnStageDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageDisconnection", MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneDisconnection", MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneDisconnection", MasterCallStack[ 1 ], TEST_LOCATION );
   DALI_TEST_EQUALS( "ActorA: OnChildRemove",        MasterCallStack[ 2 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
@@ -550,45 +610,49 @@ int UtcDaliCustomActorRemoveDuringOnStageDisconnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorRemoveParentDuringOnStageConnection(void)
+int UtcDaliCustomActorRemoveParentDuringOnSceneConnection(void)
 {
   TestApplication application;
-  tet_infoline("Weird test where child removes its own parent from Stage during Dali::CustomActor::OnStageConnection() callback");
+  tet_infoline("Weird test where child removes its own parent from Stage during Dali::CustomActor::OnSceneConnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene scene = application.GetScene();
 
   MasterCallStack.clear();
 
   /* The actorA is the parent of actorB
-   * The actorB is a special variant which removes its own parent during OnStageConnection()
-   * The child actor is interrupting the parent's connection to stage, therefore the parent should not get an OnStageDisconnection()
+   * The actorB is a special variant which removes its own parent during OnSceneConnection()
+   * The child actor is interrupting the parent's connection to stage, therefore the parent should not get an OnSceneDisconnection()
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::New();
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
 
-  Test::TestCustomActor actorB = Test::TestCustomActor::NewVariant5();
-  actorB.SetName( "ActorB" );
+  Test::TestCustomActor actorB = Test::TestCustomActor::NewVariant5(scene);
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
-  stage.Add( actorA );
+  scene.Add( actorA );
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 3, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 4, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 1, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection", actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",     actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection", actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 4, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 6, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection",    MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageDisconnection", MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",        MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",        MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection",    MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection",    MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneDisconnection", MasterCallStack[ 5 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -598,47 +662,51 @@ int UtcDaliCustomActorRemoveParentDuringOnStageConnection(void)
   END_TEST;
 }
 
-int UtcDaliCustomActorAddParentDuringOnStageDisconnection(void)
+int UtcDaliCustomActorAddParentDuringOnSceneDisconnection(void)
 {
   TestApplication application;
-  tet_infoline("Weird test where child adds its own parent to Stage during Dali::CustomActor::OnStageDisconnection() callback");
+  tet_infoline("Weird test where child adds its own parent to Stage during Dali::CustomActor::OnSceneDisconnection() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene scene = application.GetScene();
 
   MasterCallStack.clear();
 
   /* The actorA is the parent of actorB
-   * The actorB is a special variant which (weirdly) adds its own parent during OnStageDisconnection()
-   * The child actor is interrupting the disconnection, such that parent should not get a OnStageDisconnection()
+   * The actorB is a special variant which (weirdly) adds its own parent during OnSceneDisconnection()
+   * The child actor is interrupting the disconnection, such that parent should not get a OnSceneDisconnection()
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::New();
-  actorA.SetName( "ActorA" );
-  stage.Add( actorA );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
+  scene.Add( actorA );
 
-  Test::TestCustomActor actorB = Test::TestCustomActor::NewVariant6();
-  actorB.SetName( "ActorB" );
+  Test::TestCustomActor actorB = Test::TestCustomActor::NewVariant6(scene);
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
-  stage.Remove( actorA );
+  scene.Remove( actorA );
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 2, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 3, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 2, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  // Disconnect was interrupted, so we should only get one OnStageConnection() for actorB
+  DALI_TEST_EQUALS( 3, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  // Disconnect was interrupted, so we should only get one OnSceneConnection() for actorB
 
-  DALI_TEST_EQUALS( 4, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 6, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection",    MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageDisconnection", MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",        MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",        MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection",    MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneDisconnection", MasterCallStack[ 5 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -674,7 +742,7 @@ int UtcDaliCustomActorReparentDuringOnChildAdd(void)
   TestApplication application;
   tet_infoline("Testing Actor:Add (reparenting) behaviour during Dali::CustomActor::OnChildAdd() callback");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   MasterCallStack.clear();
 
@@ -686,7 +754,7 @@ int UtcDaliCustomActorReparentDuringOnChildAdd(void)
   stage.Add( actorA );
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   actorA.Add( actorB );
 
   // Check hierarchy is as follows:
@@ -704,7 +772,7 @@ int UtcDaliCustomActorReparentDuringOnChildAdd(void)
   DALI_TEST_CHECK( container );
   if ( container )
   {
-    DALI_TEST_EQUALS( "Container", container.GetName(), TEST_LOCATION );
+    DALI_TEST_EQUALS( "Container", container.GetProperty< std::string >( Actor::Property::NAME ), TEST_LOCATION );
     DALI_TEST_EQUALS( 1, (int)(container.GetChildCount()), TEST_LOCATION );
     containerChild = container.GetChildAt(0);
   }
@@ -712,33 +780,37 @@ int UtcDaliCustomActorReparentDuringOnChildAdd(void)
   DALI_TEST_CHECK( containerChild );
   if ( containerChild )
   {
-    DALI_TEST_EQUALS( "ActorB", containerChild.GetName(), TEST_LOCATION );
+    DALI_TEST_EQUALS( "ActorB", containerChild.GetProperty< std::string >( Actor::Property::NAME ), TEST_LOCATION );
     DALI_TEST_EQUALS( 0, (int)(containerChild.GetChildCount()), TEST_LOCATION );
   }
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 4, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION ); // The mContainer added to actorA
-  DALI_TEST_EQUALS( "OnStageConnection",    actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION ); // The actorB added to actorA
-  DALI_TEST_EQUALS( "OnChildRemove",        actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 5, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION ); // The mContainer added to actorA
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION ); // The actorB added to actorA
+  DALI_TEST_EQUALS( "OnChildRemove",        actorA.GetMethodsCalled()[ 4 ], TEST_LOCATION );
   // mContainer will then receive OnChildAdd
 
-  DALI_TEST_EQUALS( 3, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageDisconnection", actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 4, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneDisconnection", actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorB.GetMethodsCalled()[ 3 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 7, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 9, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection",    MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 3 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageDisconnection", MasterCallStack[ 4 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildRemove",        MasterCallStack[ 5 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection",    MasterCallStack[ 6 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",        MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection",    MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",        MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection",    MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 5 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneDisconnection", MasterCallStack[ 6 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildRemove",        MasterCallStack[ 7 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection",    MasterCallStack[ 8 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -757,7 +829,7 @@ int UtcDaliCustomActorRemoveDuringOnChildRemove(void)
   TestApplication application;
   tet_infoline("Testing Actor:Remove behaviour during OnChildRemove() callback triggered when reparenting");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   MasterCallStack.clear();
 
@@ -767,15 +839,15 @@ int UtcDaliCustomActorRemoveDuringOnChildRemove(void)
    */
 
   Test::TestCustomActor actorB = Test::TestCustomActor::New();
-  actorB.SetName( "ActorB" );
+  actorB.SetProperty( Actor::Property::NAME, "ActorB" );
   stage.Add( actorB );
 
   Test::TestCustomActor actorA = Test::TestCustomActor::NewVariant8( actorB );
-  actorA.SetName( "ActorA" );
+  actorA.SetProperty( Actor::Property::NAME, "ActorA" );
   stage.Add( actorA );
 
   Actor childActor = Actor::New();
-  childActor.SetName( "Child" );
+  childActor.SetProperty( Actor::Property::NAME, "Child" );
   // Reparent from actorA to actorB
   actorA.Add( childActor );
   actorB.Add( childActor );
@@ -794,32 +866,36 @@ int UtcDaliCustomActorRemoveDuringOnChildRemove(void)
   DALI_TEST_CHECK( child );
   if ( child )
   {
-    DALI_TEST_EQUALS( "Child", child.GetName(), TEST_LOCATION );
+    DALI_TEST_EQUALS( "Child", child.GetProperty< std::string >( Actor::Property::NAME ), TEST_LOCATION );
   }
 
   // Check callback sequence
 
-  DALI_TEST_EQUALS( 3, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION ); // The mContainer added to actorA
-  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildRemove",        actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION ); // The actorB added to actorA
+  DALI_TEST_EQUALS( 4, (int)(actorA.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorA.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorA.GetMethodsCalled()[ 1 ], TEST_LOCATION ); // The mContainer added to actorA
+  DALI_TEST_EQUALS( "OnChildAdd",           actorA.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildRemove",        actorA.GetMethodsCalled()[ 3 ], TEST_LOCATION ); // The actorB added to actorA
   // mContainer will then receive OnChildAdd
 
-  DALI_TEST_EQUALS( 3, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnStageConnection",    actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( 4, (int)(actorB.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet",        actorB.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSceneConnection",    actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
   // The derived class are always notified, no matter the child is successfully removed or not
-  DALI_TEST_EQUALS( "OnChildRemove",        actorB.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnChildAdd",           actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildRemove",        actorB.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnChildAdd",           actorB.GetMethodsCalled()[ 3 ], TEST_LOCATION );
 
-  DALI_TEST_EQUALS( 6, (int)(MasterCallStack.size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 8, (int)(MasterCallStack.size()), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( "ActorB: OnStageConnection",    MasterCallStack[ 0 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnStageConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 2 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorA: OnChildRemove",        MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnPropertySet",        MasterCallStack[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnSceneConnection",    MasterCallStack[ 1 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnPropertySet",        MasterCallStack[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnSceneConnection",    MasterCallStack[ 3 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildAdd",           MasterCallStack[ 4 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorA: OnChildRemove",        MasterCallStack[ 5 ], TEST_LOCATION );
   // The derived class are always notified, no matter the child is successfully removed or not
-  DALI_TEST_EQUALS( "ActorB: OnChildRemove",        MasterCallStack[ 4 ], TEST_LOCATION );
-  DALI_TEST_EQUALS( "ActorB: OnChildAdd",           MasterCallStack[ 5 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnChildRemove",        MasterCallStack[ 6 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "ActorB: OnChildAdd",           MasterCallStack[ 7 ], TEST_LOCATION );
 
   // Excercise the message passing to Update thread
 
@@ -852,15 +928,17 @@ int UtcDaliCustomActorOnSizeSet(void)
   Test::TestCustomActor custom = Test::TestCustomActor::New();
   DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
 
-  custom.SetSize( Vector2( 9.0f, 10.0f ) );
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
+  custom.SetProperty( Actor::Property::SIZE, Vector2( 9.0f, 10.0f ) );
+  DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
   DALI_TEST_EQUALS( "OnSizeSet", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet", custom.GetMethodsCalled()[ 1 ], TEST_LOCATION );
   DALI_TEST_EQUALS( 9.0f, custom.GetSize().width, TEST_LOCATION );
   DALI_TEST_EQUALS( 10.0f, custom.GetSize().height, TEST_LOCATION );
 
-  custom.SetSize( Vector3( 4.0f, 5.0f, 6.0f ) );
-  DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnSizeSet", custom.GetMethodsCalled()[ 1 ], TEST_LOCATION );
+  custom.SetProperty( Actor::Property::SIZE, Vector3( 4.0f, 5.0f, 6.0f ) );
+  DALI_TEST_EQUALS( 4, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSizeSet", custom.GetMethodsCalled()[ 2 ], TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnPropertySet", custom.GetMethodsCalled()[ 3 ], TEST_LOCATION );
   DALI_TEST_EQUALS( 4.0f, custom.GetSize().width, TEST_LOCATION );
   DALI_TEST_EQUALS( 5.0f, custom.GetSize().height, TEST_LOCATION );
   DALI_TEST_EQUALS( 6.0f, custom.GetSize().depth, TEST_LOCATION );
@@ -899,122 +977,25 @@ int UtcDaliCustomActorSizeComponentAnimation(void)
   float intialWidth( 10.0f );
 
   DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  custom.SetSize( intialWidth, 10.0f); // First method
+  custom.SetProperty( Actor::Property::SIZE, Vector2( intialWidth, 10.0f) ); // First method
 
   Animation anim = Animation::New( 1.0f );
 
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
 
   anim.AnimateTo( Property( custom, Actor::Property::SIZE_WIDTH ), 20.0f );
 
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
 
   anim.Play();   // Triggers second method ( OnSizeAnimation )
 
   application.SendNotification();
   application.Render( static_cast<unsigned int>( 1000.0f ) );
 
-  DALI_TEST_EQUALS( 2, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-
-  DALI_TEST_EQUALS( "OnSizeAnimation", custom.GetMethodsCalled()[ 1 ], TEST_LOCATION );
-
-  END_TEST;
-
-}
-
-int UtcDaliCustomActorOnTouchEvent(void)
-{
-  TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnTouchEvent()");
-
-  Test::TestCustomActor custom = Test::TestCustomActor::New();
-  DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-
-  // set size for custom actor
-  custom.SetSize( 100, 100 );
-  // add the custom actor to stage
-  Stage::GetCurrent().Add( custom );
-  custom.ResetCallStack();
-
-  // Render and notify a couple of times
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  // simulate a touch event
-  Dali::Integration::Point point;
-  point.SetState( PointState::DOWN );
-  point.SetScreenPosition( Vector2( 1, 1 ) );
-  Dali::Integration::TouchEvent event;
-  event.AddPoint( point );
-  application.ProcessEvent( event );
-
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnTouchEvent", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  END_TEST;
-}
-
-int UtcDaliCustomActorOnHoverEvent(void)
-{
-  TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnHoverEvent()");
-
-  Test::TestCustomActor custom = Test::TestCustomActor::New();
-  DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-
-  // set size for custom actor
-  custom.SetSize( 100, 100 );
-  // add the custom actor to stage
-  Stage::GetCurrent().Add( custom );
-  custom.ResetCallStack();
-
-  // Render and notify a couple of times
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  // simulate a hover event
-  Dali::Integration::Point point;
-  point.SetState( PointState::MOTION );
-  point.SetScreenPosition( Vector2( 1, 1 ) );
-  Dali::Integration::HoverEvent event;
-  event.AddPoint( point );
-  application.ProcessEvent( event );
-
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnHoverEvent", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
-  END_TEST;
-}
+  DALI_TEST_EQUALS( 3, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
 
-int UtcDaliCustomActorOnWheelEvent(void)
-{
-  TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnWheelEvent()");
-
-  Test::TestCustomActor custom = Test::TestCustomActor::New();
-  DALI_TEST_EQUALS( 0, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
+  DALI_TEST_EQUALS( "OnSizeAnimation", custom.GetMethodsCalled()[ 2 ], TEST_LOCATION );
 
-  // set size for custom actor
-  custom.SetSize( 100, 100 );
-  // add the custom actor to stage
-  Stage::GetCurrent().Add( custom );
-  custom.ResetCallStack();
-
-  // Render and notify a couple of times
-  application.SendNotification();
-  application.Render();
-  application.SendNotification();
-  application.Render();
-
-  // simulate a wheel event
-  Vector2 screenCoordinates( 10.0f, 10.0f );
-  Integration::WheelEvent event( Integration::WheelEvent::MOUSE_WHEEL, 0, 0u, screenCoordinates, 1, 1000u );
-  application.ProcessEvent( event );
-
-  DALI_TEST_EQUALS( 1, (int)(custom.GetMethodsCalled().size()), TEST_LOCATION );
-  DALI_TEST_EQUALS( "OnWheelEvent", custom.GetMethodsCalled()[ 0 ], TEST_LOCATION );
   END_TEST;
 }
 
@@ -1064,8 +1045,8 @@ int UtcDaliCustomActorDoAction(void)
   DALI_TEST_CHECK(customActorObject.DoAction("invalidCommand", attributes) == false);
 
   // Check that the custom actor is visible
-  custom.SetVisible(true);
-  DALI_TEST_CHECK(custom.IsVisible() == true);
+  custom.SetProperty( Actor::Property::VISIBLE,true);
+  DALI_TEST_CHECK(custom.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) == true);
 
   // Check the custom actor performed an action to hide itself
   DALI_TEST_CHECK(customActorObject.DoAction("hide", attributes) == true);
@@ -1075,7 +1056,7 @@ int UtcDaliCustomActorDoAction(void)
   application.Render();
 
   // Check that the custom actor is now invisible
-  DALI_TEST_CHECK(custom.IsVisible() == false);
+  DALI_TEST_CHECK(custom.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) == false);
 
   // Check the custom actor performed an action to show itself
   DALI_TEST_CHECK(customActorObject.DoAction("show", attributes) == true);
@@ -1085,7 +1066,7 @@ int UtcDaliCustomActorDoAction(void)
   application.Render();
 
   // Check that the custom actor is now visible
-  DALI_TEST_CHECK(custom.IsVisible() == true);
+  DALI_TEST_CHECK(custom.GetCurrentProperty< bool >( Actor::Property::VISIBLE ) == true);
   END_TEST;
 }
 
@@ -1106,7 +1087,7 @@ int UtcDaliCustomActorImplRelayoutRequest(void)
   DALI_TEST_CHECK( gOnRelayout == false );
 
   Test::TestCustomActor custom = Test::TestCustomActor::NewNegoSize();
-  Stage::GetCurrent().Add(custom);
+  application.GetScene().Add(custom);
 
   application.SendNotification();
   application.Render();
@@ -1164,7 +1145,7 @@ int UtcDaliCustomActorImplCalculateChildSizeBase(void)
 
   Actor child = Actor::New();
   child.SetResizePolicy(Dali::ResizePolicy::FIXED, Dali::Dimension::ALL_DIMENSIONS);
-  child.SetSize(150, 150);
+  child.SetProperty( Actor::Property::SIZE, Vector2( 150, 150 ) );
 
   application.SendNotification();
   application.Render();
@@ -1230,7 +1211,7 @@ int UtcDaliCustomActorGetExtensionP(void)
 {
   TestApplication application;
 
-  Test::TestCustomActor custom = Test::TestCustomActor::NewVariant5();
+  Test::TestCustomActor custom = Test::TestCustomActor::NewVariant5(application.GetScene());
 
   DALI_TEST_CHECK( NULL == custom.GetImplementation().GetExtension() );
 
@@ -1240,9 +1221,9 @@ int UtcDaliCustomActorGetExtensionP(void)
 int UtcDaliCustomActorOnConnectionDepth(void)
 {
   TestApplication application;
-  tet_infoline("Testing Dali::CustomActor::OnStageConnection() hierarchy depth");
+  tet_infoline("Testing Dali::CustomActor::OnSceneConnection() hierarchy depth");
 
-  Stage stage = Stage::GetCurrent();
+  Integration::Scene stage = application.GetScene();
 
   /* Build tree of actors:
    *
@@ -1254,7 +1235,7 @@ int UtcDaliCustomActorOnConnectionDepth(void)
    *    / \   \
    *   D   E   F            3
    *
-   * OnStageConnection should return 1 for A, 2 for B and C, and 3 for D, E and F.
+   * OnSceneConnection should return 1 for A, 2 for B and C, and 3 for D, E and F.
    */
 
   Test::TestCustomActor actorA = Test::TestCustomActor::New();
@@ -1296,7 +1277,7 @@ int UtcDaliCustomActorSetGetProperty(void)
   TestApplication application; // Need the type registry
 
   Test::TestCustomActor actor = Test::TestCustomActor::New();
-  Stage::GetCurrent().Add( actor );
+  application.GetScene().Add( actor );
 
   actor.SetProperty( Test::TestCustomActor::Property::TEST_PROPERTY1, 0.5f );
   actor.SetProperty( Test::TestCustomActor::Property::TEST_PROPERTY2, Color::WHITE );
@@ -1352,30 +1333,26 @@ namespace Impl
  */
 struct UnregisteredCustomActor : public Dali::CustomActorImpl
 {
-  UnregisteredCustomActor() : CustomActorImpl( ACTOR_BEHAVIOUR_NONE )
+  UnregisteredCustomActor() : CustomActorImpl( ACTOR_BEHAVIOUR_DEFAULT )
   { }
   virtual ~UnregisteredCustomActor()
   { }
-  virtual void OnStageConnection( int32_t depth )
+  virtual void OnSceneConnection( int32_t depth )
   { }
-  virtual void OnStageDisconnection()
+  virtual void OnSceneDisconnection()
   { }
   virtual void OnChildAdd(Actor& child)
   { }
   virtual void OnChildRemove(Actor& child)
   { }
-  virtual void OnPropertySet( Property::Index index, Property::Value propertyValue )
+  virtual void OnPropertySet( Property::Index index, const Property::Value& propertyValue )
   { }
   virtual void OnSizeSet(const Vector3& targetSize)
   { }
   virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize)
   { }
-  virtual bool OnTouchEvent(const TouchEvent& event) DALI_DEPRECATED_API
-  { return false; }
   virtual bool OnHoverEvent(const HoverEvent& event)
   { return false; }
-  virtual bool OnKeyEvent(const KeyEvent& event)
-  { return false; }
   virtual bool OnWheelEvent(const WheelEvent& event)
   { return false; }
   virtual void OnRelayout( const Vector2& size, RelayoutContainer& container )
@@ -1440,18 +1417,18 @@ int UtcDaliCustomActorSetGetActorPropertyActionSignal(void)
   TestApplication application; // Need the type registry
 
   auto custom = UnregisteredCustomActor::New();
-  Stage::GetCurrent().Add( custom );
+  application.GetScene().Add( custom );
 
   // should have all actor properties
   DALI_TEST_EQUALS( custom.GetPropertyType( Actor::Property::COLOR ), Property::VECTOR4, TEST_LOCATION );
   auto actorHandle = Actor::New();
   DALI_TEST_EQUALS( custom.GetPropertyCount(), actorHandle.GetPropertyCount(), TEST_LOCATION );
 
-  DALI_TEST_EQUALS( custom.IsVisible(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS( custom.GetCurrentProperty< bool >( Actor::Property::VISIBLE ), true, TEST_LOCATION );
   custom.SetProperty( Actor::Property::VISIBLE, false );
   application.SendNotification();
   application.Render(); // IsVisible returns scene value
-  DALI_TEST_EQUALS( custom.IsVisible(), false, TEST_LOCATION );
+  DALI_TEST_EQUALS( custom.GetCurrentProperty< bool >( Actor::Property::VISIBLE ), false, TEST_LOCATION );
 
   // should have custom actor typename (as it has not registered itself)
   DALI_TEST_EQUALS( "CustomActor", custom.GetTypeName(), TEST_LOCATION );
@@ -1469,18 +1446,18 @@ int UtcDaliCustomActorSetGetActorPropertyActionSignal(void)
   application.Render(1000.f);
 
   DALI_TEST_EQUALS( Vector3( 100.0f, 150.0f, 200.0f ), custom.GetProperty( Actor::Property::POSITION ).Get<Vector3>(), TEST_LOCATION );
-  DALI_TEST_EQUALS( Vector3( 100.0f, 150.0f, 200.0f ), custom.GetCurrentPosition(), TEST_LOCATION );
+  DALI_TEST_EQUALS( Vector3( 100.0f, 150.0f, 200.0f ), custom.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), TEST_LOCATION );
 
   Dali::WeakHandle<UnregisteredCustomActor> weakRef( custom );
   // should have actor signals
-  custom.ConnectSignal( &application, "offStage",
+  custom.ConnectSignal( &application, "offScene",
     [weakRef]()
       {
-        DALI_TEST_EQUALS( weakRef.GetHandle().OnStage(), false, TEST_LOCATION );
+        DALI_TEST_EQUALS( weakRef.GetHandle().GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ), false, TEST_LOCATION );
       } );
 
-  Stage::GetCurrent().Remove( custom );
-  Stage::GetCurrent().Add( custom );
+  application.GetScene().Remove( custom );
+  application.GetScene().Add( custom );
 
   END_TEST;
 }
@@ -1523,7 +1500,7 @@ int UtcDaliCustomActorPropertyRegistrationDefaultValue(void)
   Dali::TypeRegistration typeRegistration( typeid( UnregisteredCustomActor ), typeid( Dali::CustomActor ), nullptr );
 
   auto derived = DerivedCustomActor::New();
-  Stage::GetCurrent().Add( derived );
+  application.GetScene().Add( derived );
 
   // should have all actor properties
   DALI_TEST_EQUALS( derived.GetPropertyType( Actor::Property::WORLD_MATRIX ), Property::MATRIX, TEST_LOCATION );
@@ -1542,4 +1519,3 @@ int UtcDaliCustomActorPropertyRegistrationDefaultValue(void)
 
   END_TEST;
 }
-