Removed SetOnStage/SetOffStage from visual-base.h
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-VisualFactory.cpp
index b6b42e3..7d36ae6 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/devel-api/images/nine-patch-image.h>
 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
 #include <dali-toolkit/dali-toolkit.h>
+#include "dummy-control.h"
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -181,12 +182,15 @@ Integration::ResourcePointer CustomizeNinePatch( TestApplication& application,
 }
 
 void TestVisualRender( ToolkitTestApplication& application,
-                                Actor& actor,
-                                Visual::Base& visual,
-                                std::size_t expectedSamplers = 0,
-                                ImageDimensions imageDimensions = ImageDimensions(),
-                                Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
+                       DummyControl& actor,
+                       Visual::Base& visual,
+                       std::size_t expectedSamplers = 0,
+                       ImageDimensions imageDimensions = ImageDimensions(),
+                       Integration::ResourcePointer resourcePtr = Integration::ResourcePointer())
 {
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+
   if( resourcePtr )
   {
     // set the image size, for test case, this needs to be set before loading started
@@ -194,11 +198,9 @@ void TestVisualRender( ToolkitTestApplication& application,
   }
 
   actor.SetSize( 200.f, 200.f );
-  Stage::GetCurrent().Add( actor );
-  visual.SetSize( Vector2(200.f, 200.f) );
-  visual.SetOnStage( actor );
+  DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
 
-  DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
+  Stage::GetCurrent().Add( actor );
 
   application.SendNotification();
   application.Render();
@@ -217,11 +219,11 @@ void TestVisualRender( ToolkitTestApplication& application,
 
   if( resourcePtr )
   {
-    DALI_TEST_CHECK( application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceFunc) ||
-                     application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceSynchronouslyFunc ));
+    DALI_TEST_EQUALS( application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceFunc) ||
+                      application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceSynchronouslyFunc ), true, TEST_LOCATION);
   }
 
-  DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
+  DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
 
 }
 
@@ -307,7 +309,7 @@ int UtcDaliVisualFactoryGetColorVisual1(void)
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual );
 
   Vector4 actualValue(Vector4::ZERO);
@@ -333,7 +335,7 @@ int UtcDaliVisualFactoryGetColorVisual2(void)
   Visual::Base visual = factory.CreateVisual( map );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual );
 
   Vector4 actualValue(Vector4::ZERO);
@@ -341,7 +343,7 @@ int UtcDaliVisualFactoryGetColorVisual2(void)
   DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "mixColor", actualValue ) );
   DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION );
 
-  visual.SetOffStage( actor );
+  Stage::GetCurrent().Remove(actor);
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -365,11 +367,12 @@ int UtcDaliVisualFactoryGetBorderVisual1(void)
   Visual::Base visual = factory.CreateVisual(propertyMap);
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetSize(Vector2(200.f, 200.f));
-  visual.SetOnStage( actor );
 
   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
   int blendMode = actor.GetRendererAt(0u).GetProperty<int>( Renderer::Property::BLEND_MODE );
@@ -388,7 +391,7 @@ int UtcDaliVisualFactoryGetBorderVisual1(void)
   DALI_TEST_CHECK( gl.GetUniformValue<float>( "borderSize", actualSize ) );
   DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION );
 
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -412,11 +415,12 @@ int UtcDaliVisualFactoryGetBorderVisual2(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize(200.f, 200.f);
   Stage::GetCurrent().Add( actor );
   visual.SetSize(Vector2(200.f, 200.f));
-  visual.SetOnStage( actor );
 
   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
 
@@ -436,7 +440,7 @@ int UtcDaliVisualFactoryGetBorderVisual2(void)
   DALI_TEST_CHECK( gl.GetUniformValue<float>( "borderSize", actualSize ) );
   DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION );
 
-  visual.SetOffStage( actor );
+  actor.Unparent();
 
   // enable the anti-aliasing
   Dali::Property::Map map;
@@ -445,10 +449,10 @@ int UtcDaliVisualFactoryGetBorderVisual2(void)
   map[ BorderVisual::Property::SIZE   ] = testSize;
   map[ BorderVisual::Property::ANTI_ALIASING   ] = true;
   visual = factory.CreateVisual( map );
-  visual.SetOnStage( actor );
 
-  application.SendNotification();
-  application.Render(0);
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  Stage::GetCurrent().Add( actor );
+
   blendMode = actor.GetRendererAt(0u).GetProperty<int>( Renderer::Property::BLEND_MODE );
   DALI_TEST_EQUALS( static_cast<BlendMode::Type>(blendMode), BlendMode::ON, TEST_LOCATION );
 
@@ -486,11 +490,8 @@ int UtcDaliVisualFactoryGetLinearGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  Actor actor = Actor::New();
-  TestVisualRender( application, actor, visual, 1u );
-
-  visual.SetOffStage( actor );
-  DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
+  DummyControl actor = DummyControl::New();
+  TestVisualRender( application, actor, visual, 1u);
 
   END_TEST;
 }
@@ -526,7 +527,7 @@ int UtcDaliVisualFactoryGetRadialGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u );
 
   Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f );
@@ -566,10 +567,10 @@ int UtcDaliVisualFactoryDefaultOffsetsGradientVisual(void)
   DALI_TEST_CHECK( visual );
 
   // A lookup texture is generated and pass to shader as sampler
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u );
 
-  visual.SetOffStage( actor );
+  Stage::GetCurrent().Remove( actor );
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -590,7 +591,6 @@ int UtcDaliVisualFactoryGetImageVisual1(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
   // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied.
   // Image with a size smaller than 512*512 will be uploaded as a part of the atlas.
 
@@ -603,13 +603,14 @@ int UtcDaliVisualFactoryGetImageVisual1(void)
   Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD );
   bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, width, height,width, height );
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(width, height),
-                             Integration::ResourcePointer( bitmap ) );
+                    ImageDimensions(width, height),
+                    Integration::ResourcePointer( bitmap ) );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
-  visual.SetOffStage( actor );
+  Stage::GetCurrent().Remove( actor );
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -626,7 +627,6 @@ int UtcDaliVisualFactoryGetImageVisual2(void)
   Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME);
   Visual::Base visual = factory.CreateVisual( image );
 
-  Actor actor = Actor::New();
   // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied.
   // Image with a size smaller than 512*512 will be uploaded as a part of the atlas.
 
@@ -640,12 +640,12 @@ int UtcDaliVisualFactoryGetImageVisual2(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(width, height),
-                             Integration::ResourcePointer(bitmap) );
+                    ImageDimensions(width, height),
+                    Integration::ResourcePointer(bitmap) );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
-
   END_TEST;
 }
 
@@ -675,16 +675,18 @@ int UtcDaliVisualFactoryGetImageVisual3(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
   TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
   texParameterTrace.Enable( true );
 
-  actor.SetSize( 200.f, 200.f );
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  actor.SetSize(2000, 2000);
+  actor.SetParentOrigin(ParentOrigin::CENTER);
   Stage::GetCurrent().Add( actor );
-  visual.SetOnStage( actor );
 
   // loading started
   application.SendNotification();
@@ -725,7 +727,7 @@ int UtcDaliVisualFactoryGetImageVisual3(void)
   DALI_TEST_CHECK( gl.GetUniformValue<Vector2>( "wrapMode", wrapModeUniform ) );
   DALI_TEST_EQUALS( wrapMode, wrapModeUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION );
 
-  visual.SetOffStage( actor );
+  actor.Unparent( );
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -757,16 +759,18 @@ int UtcDaliVisualFactoryGetImageVisual4(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
   TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
   texParameterTrace.Enable( true );
 
-  actor.SetSize( 200.f, 200.f );
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+  actor.SetSize(2000, 2000);
+  actor.SetParentOrigin(ParentOrigin::CENTER);
   Stage::GetCurrent().Add( actor );
-  visual.SetOnStage( actor );
 
   // loading started
   application.SendNotification();
@@ -803,7 +807,7 @@ int UtcDaliVisualFactoryGetImageVisual4(void)
   Property::Index wrapModeIndex = renderer.GetPropertyIndex( "wrapMode" );
   DALI_TEST_CHECK(wrapModeIndex == Property::INVALID_INDEX);
 
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -833,15 +837,15 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void)
     Visual::Base visual = factory.CreateVisual( propertyMap );
     DALI_TEST_CHECK( visual );
 
-    Actor actor = Actor::New();
 
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
+    DummyControl actor = DummyControl::New();
     TestVisualRender( application, actor, visual, 1u,
-                               ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                               ninePatchResource );
+                      ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                      ninePatchResource );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
   }
@@ -852,15 +856,14 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void)
     Visual::Base visual = factory.CreateVisual( propertyMap );
     DALI_TEST_CHECK( visual );
 
-    Actor actor = Actor::New();
-
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
+    DummyControl actor = DummyControl::New();
     TestVisualRender( application, actor, visual, 1u,
-                               ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                               ninePatchResource );
+                      ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                      ninePatchResource );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
   }
@@ -896,19 +899,18 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void)
     Visual::Base visual = factory.CreateVisual( propertyMap );
     DALI_TEST_CHECK( visual );
 
-    Actor actor = Actor::New();
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
 
+    DummyControl actor = DummyControl::New();
     TestVisualRender( application, actor, visual, 1u,
-                               ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                               ninePatchResource );
-
+                      ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                      ninePatchResource );
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
-    visual.SetOffStage( actor );
+    Stage::GetCurrent().Remove( actor );
     DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
   }
 
@@ -921,15 +923,15 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void)
     TestGlAbstraction& gl = application.GetGlAbstraction();
     TraceCallStack& textureTrace = gl.GetTextureTrace();
     textureTrace.Enable(true);
-    Actor actor = Actor::New();
+    DummyControl actor = DummyControl::New();
     TestVisualRender( application, actor, visual, 1u,
-                               ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                               ninePatchResource );
+                      ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                      ninePatchResource );
 
 
     DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
-    visual.SetOffStage( actor );
+    Stage::GetCurrent().Remove( actor );
     DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
   }
 
@@ -955,15 +957,14 @@ int UtcDaliVisualFactoryGetNPatchVisual3(void)
   Visual::Base visual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
-
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                             ninePatchResource );
+                    ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                    ninePatchResource );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
@@ -1003,15 +1004,14 @@ int UtcDaliVisualFactoryGetNPatchVisual4(void)
   Visual::Base visual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
-
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
-                             ninePatchResource );
+                    ImageDimensions(ninePatchImageWidth, ninePatchImageHeight),
+                    ninePatchResource );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
@@ -1031,8 +1031,6 @@ int UtcDaliVisualFactoryGetNPatchVisualN1(void)
   Visual::Base visual = factory.CreateVisual( "ERROR.9.jpg", ImageDimensions() );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
-
   //The testkit still has to load a bitmap for the broken renderer image
   Integration::Bitmap* bitmap = Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD);
   bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, 100, 100, 100, 100 );
@@ -1041,9 +1039,10 @@ int UtcDaliVisualFactoryGetNPatchVisualN1(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(),
-                             Integration::ResourcePointer(bitmap) );
+                    ImageDimensions(),
+                    Integration::ResourcePointer(bitmap) );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
@@ -1067,8 +1066,6 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
-
   //The testkit still has to load a bitmap for the broken renderer image
   Integration::Bitmap* bitmap = Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD);
   bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, 100, 100, 100, 100 );
@@ -1076,10 +1073,13 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void)
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
+  TraceCallStack& drawTrace = gl.GetDrawTrace();
+  drawTrace.Enable(true);
 
+  DummyControl actor = DummyControl::New();
   TestVisualRender( application, actor, visual, 1u,
-                             ImageDimensions(),
-                             Integration::ResourcePointer(bitmap) );
+                    ImageDimensions(),
+                    Integration::ResourcePointer(bitmap) );
 
   DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION );
 
@@ -1119,11 +1119,13 @@ int UtcDaliVisualFactoryGetSvgVisual(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2(200.f, 200.f) );
-  visual.SetOnStage( actor );
+
   application.SendNotification();
   application.Render();
 
@@ -1161,9 +1163,11 @@ int UtcDaliVisualFactoryGetSvgVisualLarge(void)
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   Stage::GetCurrent().Add( actor );
-  visual.SetOnStage( actor );
+
   application.SendNotification();
   application.Render();
 
@@ -1200,11 +1204,12 @@ void MeshVisualLoadsCorrectlyTest( Property::Map& propertyMap, ToolkitTestApplic
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2( 200.f, 200.f ) );
-  visual.SetOnStage( actor );
 
   //Ensure set on stage.
   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
@@ -1230,7 +1235,7 @@ void MeshVisualLoadsCorrectlyTest( Property::Map& propertyMap, ToolkitTestApplic
   DALI_TEST_EQUALS( actualScaleMatrix, testScaleMatrix, Math::MACHINE_EPSILON_100, TEST_LOCATION );
 
   //Finish by setting off stage, and ensuring this was successful.
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
 }
 
@@ -1246,11 +1251,12 @@ void MeshVisualDoesNotLoadCorrectlyTest( Property::Map& propertyMap, ToolkitTest
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2( 200.f, 200.f ) );
-  visual.SetOnStage( actor );
 
   //Ensure set on stage.
   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
@@ -1272,7 +1278,7 @@ void MeshVisualDoesNotLoadCorrectlyTest( Property::Map& propertyMap, ToolkitTest
   DALI_TEST_CHECK( !application.GetGlAbstraction().GetUniformValue<Matrix>( "uObjectMatrix", scaleMatrix ) );
 
   //Finish by setting off stage, and ensuring this was successful.
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
 }
 
@@ -1526,11 +1532,13 @@ void TestPrimitiveVisualWithProperties( Property::Map& propertyMap, ToolkitTestA
   DALI_TEST_CHECK( visual );
 
   //Create an actor on stage to house the visual.
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
+
   actor.SetSize( 200.f, 200.f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2( 200.f, 200.f ) );
-  visual.SetOnStage( actor );
 
   //Ensure set on stage.
   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
@@ -1548,7 +1556,7 @@ void TestPrimitiveVisualWithProperties( Property::Map& propertyMap, ToolkitTestA
   DALI_TEST_EQUALS( actualScaleMatrix, testScaleMatrix, Math::MACHINE_EPSILON_100, TEST_LOCATION );
 
   //Finish by setting off stage, and ensuring this was successful.
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
 }
 
@@ -1945,21 +1953,22 @@ int UtcDaliVisualFactoryGetBatchImageVisual1(void)
   Visual::Base visual = factory.CreateVisual( propertyMap );
   DALI_TEST_CHECK( visual );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
 
   actor.SetSize( 200.0f, 200.0f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2( 200.0f, 200.0f ) );
 
   // Test SetOnStage().
-  visual.SetOnStage( actor );
   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
 
   application.SendNotification();
   application.Render();
 
   // Test SetOffStage().
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;
@@ -1993,21 +2002,22 @@ int UtcDaliVisualFactoryGetBatchImageVisual2(void)
   DALI_TEST_CHECK( value );
   DALI_TEST_EQUALS( value->Get<int>(), (int)Visual::IMAGE, TEST_LOCATION );
 
-  Actor actor = Actor::New();
+  DummyControl actor = DummyControl::New();
+  DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
+  dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual );
 
   actor.SetSize( 200.0f, 200.0f );
   Stage::GetCurrent().Add( actor );
   visual.SetSize( Vector2( 200.0f, 200.0f ) );
 
   // Test SetOnStage().
-  visual.SetOnStage( actor );
   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
 
   application.SendNotification();
   application.Render();
 
   // Test SetOffStage().
-  visual.SetOffStage( actor );
+  actor.Unparent();
   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
 
   END_TEST;