X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-RendererFactory.cpp;h=45550c24cc20faaa417170b32669bd1c424d1f1d;hp=9a66d4b24e5a939c07d85442e916b24078a786b8;hb=eb52cb9cbb74e37ebdc1c18619af597e2b595b08;hpb=ae4ebe4de0eaea7942295160d310b9818969b3e7 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp index 9a66d4b..45550c2 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp @@ -17,8 +17,9 @@ #include #include #include +#include #include -#include +#include #include #include @@ -32,6 +33,8 @@ typedef NinePatchImage::StretchRanges StretchRanges; const char* TEST_IMAGE_FILE_NAME = "gallery_image_01.jpg"; const char* TEST_NPATCH_FILE_NAME = "gallery_image_01.9.jpg"; +const char* TEST_SVG_FILE_NAME = TEST_RESOURCE_DIR "/svg1.svg"; + Integration::Bitmap* CreateBitmap( unsigned int imageWidth, unsigned int imageHeight, unsigned int initialColor, Pixel::Format pixelFormat ) { Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_RETAIN ); @@ -184,7 +187,6 @@ void TestControlRendererRender( ToolkitTestApplication& application, controlRenderer.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - DALI_TEST_CHECK( actor.GetRendererAt(0u).GetMaterial().GetNumberOfTextures() == expectedSamplers ); application.SendNotification(); application.Render(); @@ -286,7 +288,7 @@ int UtcDaliRendererFactoryGetColorRenderer1(void) Property::Map propertyMap; Vector4 testColor( 1.f, 0.5f, 0.3f, 0.2f ); - propertyMap.Insert("rendererType", "colorRenderer"); + propertyMap.Insert("rendererType", "color"); propertyMap.Insert("blendColor", testColor); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); @@ -340,7 +342,7 @@ int UtcDaliRendererFactoryGetBorderRenderer1(void) Property::Map propertyMap; Vector4 testColor( 1.f, 0.5f, 0.3f, 0.2f ); float testSize = 5.f; - propertyMap.Insert("rendererType", "borderRenderer"); + propertyMap.Insert("rendererType", "border"); propertyMap.Insert("borderColor", testColor); propertyMap.Insert("borderSize", testSize); @@ -354,7 +356,8 @@ int UtcDaliRendererFactoryGetBorderRenderer1(void) controlRenderer.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::ON, TEST_LOCATION ); + int blendMode = actor.GetRendererAt(0u).GetProperty( Renderer::Property::BLENDING_MODE ); + DALI_TEST_EQUALS( static_cast(blendMode), BlendingMode::ON, TEST_LOCATION ); TestGlAbstraction& gl = application.GetGlAbstraction(); @@ -402,7 +405,8 @@ int UtcDaliRendererFactoryGetBorderRenderer2(void) application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::AUTO, TEST_LOCATION ); + int blendMode = actor.GetRendererAt(0u).GetProperty( Renderer::Property::BLENDING_MODE ); + DALI_TEST_EQUALS( static_cast(blendMode), BlendingMode::AUTO, TEST_LOCATION ); Vector4 actualColor(Vector4::ZERO); DALI_TEST_CHECK( gl.GetUniformValue( "borderColor", actualColor ) ); @@ -420,8 +424,8 @@ int UtcDaliRendererFactoryGetBorderRenderer2(void) application.SendNotification(); application.Render(0); - DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::ON, TEST_LOCATION ); - + blendMode = actor.GetRendererAt(0u).GetProperty( Renderer::Property::BLENDING_MODE ); + DALI_TEST_EQUALS( static_cast(blendMode), BlendingMode::ON, TEST_LOCATION ); END_TEST; } @@ -435,23 +439,23 @@ int UtcDaliRendererFactoryGetLinearGradientRenderer(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("rendererType", "gradientRenderer"); + propertyMap.Insert("rendererType", "gradient"); Vector2 start(-1.f, -1.f); Vector2 end(1.f, 1.f); - propertyMap.Insert("gradientStartPosition", start); - propertyMap.Insert("gradientEndPosition", end); - propertyMap.Insert("gradientSpreadMethod", "repeat"); + propertyMap.Insert("startPosition", start); + propertyMap.Insert("endPosition", end); + propertyMap.Insert("spreadMethod", "repeat"); Property::Array stopOffsets; stopOffsets.PushBack( 0.2f ); stopOffsets.PushBack( 0.8f ); - propertyMap.Insert("gradientStopOffset", stopOffsets); + propertyMap.Insert("stopOffset", stopOffsets); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("gradientStopColor", stopColors); + propertyMap.Insert("stopColor", stopColors); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); @@ -475,23 +479,23 @@ int UtcDaliRendererFactoryGetRadialGradientRenderer(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("rendererType", "gradientRenderer"); + propertyMap.Insert("rendererType", "gradient"); Vector2 center(100.f, 100.f); float radius = 100.f; - propertyMap.Insert("gradientUnits", "userSpace"); - propertyMap.Insert("gradientCenter", center); - propertyMap.Insert("gradientRadius", radius); + propertyMap.Insert("units", "userSpace"); + propertyMap.Insert("center", center); + propertyMap.Insert("radius", radius); Property::Array stopOffsets; stopOffsets.PushBack( 0.0f ); stopOffsets.PushBack( 1.f ); - propertyMap.Insert("gradientStopOffset", stopOffsets); + propertyMap.Insert("stopOffset", stopOffsets); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("gradientStopColor", stopColors); + propertyMap.Insert("stopColor", stopColors); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); @@ -511,6 +515,41 @@ int UtcDaliRendererFactoryGetRadialGradientRenderer(void) END_TEST; } +int UtcDaliRendererFactoryDefaultOffsetsGradientRenderer(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliRendererFactoryGetRadialGradientRenderer"); + + RendererFactory factory = RendererFactory::Get(); + DALI_TEST_CHECK( factory ); + + Property::Map propertyMap; + propertyMap.Insert("rendererType", "gradient"); + + Vector2 start(-1.f, -1.f); + Vector2 end(1.f, 1.f); + propertyMap.Insert("startPosition", start); + propertyMap.Insert("endPosition", end); + propertyMap.Insert("spreadMethod", "repeat"); + + Property::Array stopColors; + stopColors.PushBack( Color::RED ); + stopColors.PushBack( Color::GREEN ); + propertyMap.Insert("stopColor", stopColors); + + ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); + DALI_TEST_CHECK( controlRenderer ); + + // A lookup texture is generated and pass to shader as sampler + Actor actor = Actor::New(); + TestControlRendererRender( application, actor, controlRenderer, 1u ); + + controlRenderer.SetOffStage( actor ); + DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + + END_TEST; +} + int UtcDaliRendererFactoryGetImageRenderer1(void) { ToolkitTestApplication application; @@ -520,7 +559,7 @@ int UtcDaliRendererFactoryGetImageRenderer1(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "imageRenderer" ); + propertyMap.Insert( "rendererType", "image" ); propertyMap.Insert( "imageUrl", TEST_IMAGE_FILE_NAME ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); @@ -529,14 +568,21 @@ int UtcDaliRendererFactoryGetImageRenderer1(void) 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. - TestControlRendererRender( application, actor, controlRenderer, 1u, - ImageDimensions(512, 513), - Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD))); + const int width=512; + const int height=513; TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + + Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD ); + bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, width, height,width, height ); + + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(width, height), + Integration::ResourcePointer( bitmap ) ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); controlRenderer.SetOffStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -558,14 +604,22 @@ int UtcDaliRendererFactoryGetImageRenderer2(void) 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. - TestControlRendererRender( application, actor, controlRenderer, 1u, - ImageDimensions(512, 513), - Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); + + const int width=512; + const int height=513; + + Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD ); + bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, width, height,width, height ); TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(width, height), + Integration::ResourcePointer(bitmap) ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); END_TEST; } @@ -587,7 +641,7 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void) Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY ); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "rendererType", "nPatch" ); propertyMap.Insert( "imageUrl", TEST_NPATCH_FILE_NAME ); { tet_infoline( "whole grid" ); @@ -595,14 +649,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); } propertyMap.Insert( "borderOnly", true ); @@ -612,14 +668,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); } END_TEST; @@ -647,21 +705,23 @@ int UtcDaliRendererFactoryGetNPatchRenderer2(void) Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY ); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "rendererType", "nPatch" ); propertyMap.Insert( "imageUrl", TEST_NPATCH_FILE_NAME ); { ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); controlRenderer.SetOffStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -673,15 +733,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer2(void) ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); Actor actor = Actor::New(); TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); controlRenderer.SetOffStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -710,14 +771,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer3(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); END_TEST; } @@ -747,14 +810,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer4(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), ninePatchResource ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); END_TEST; } @@ -773,15 +838,20 @@ int UtcDaliRendererFactoryGetNPatchRendererN1(void) DALI_TEST_CHECK( controlRenderer ); 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 ); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(), - Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); + Integration::ResourcePointer(bitmap) ); - TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); END_TEST; } @@ -797,22 +867,67 @@ int UtcDaliRendererFactoryGetNPatchRendererN2(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "rendererType", "nPatch" ); propertyMap.Insert( "imageUrl", 111 ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); 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 ); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + TestControlRendererRender( application, actor, controlRenderer, 1u, ImageDimensions(), - Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); + Integration::ResourcePointer(bitmap) ); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliRendererFactoryGetSvgRenderer(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliRendererFactoryGetSvgRenderer: Request svg renderer with a svg url" ); + + RendererFactory factory = RendererFactory::Get(); + ControlRenderer controlRenderer = factory.GetControlRenderer( TEST_SVG_FILE_NAME ); + DALI_TEST_CHECK( controlRenderer ); TestGlAbstraction& gl = application.GetGlAbstraction(); - int textureUnit = -1; - DALI_TEST_CHECK( gl.GetUniformValue< int >( "sTexture", textureUnit ) ); - DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + + Actor actor = Actor::New(); + actor.SetSize( 200.f, 200.f ); + Stage::GetCurrent().Add( actor ); + controlRenderer.SetSize( Vector2(200.f, 200.f) ); + controlRenderer.SetOnStage( actor ); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + EventThreadCallback* eventTrigger = EventThreadCallback::Get(); + CallbackBase* callback = eventTrigger->GetCallback(); + + eventTrigger->WaitingForTrigger( 1 );// waiting until the svg image is rasterized. + CallbackBase::Execute( *callback ); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + // waiting for the resource uploading + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); END_TEST; } @@ -898,3 +1013,41 @@ int UtcDaliRendererFactoryResetRenderer2(void) END_TEST; } + +int UtcDaliRendererFactoryResetRenderer3(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliRendererFactoryResetRenderer3" ); + + Actor actor = Actor::New(); + actor.SetSize(200.f, 200.f); + Stage::GetCurrent().Add( actor ); + RendererFactory factory = RendererFactory::Get(); + DALI_TEST_CHECK( factory ); + + // Get renderer for rendering a resource image + Image resourceImage = ResourceImage::New(TEST_IMAGE_FILE_NAME); + ControlRenderer controlRenderer = factory.GetControlRenderer( resourceImage ); + DALI_TEST_CHECK( controlRenderer ); + controlRenderer.SetSize(Vector2(200.f, 200.f)); + controlRenderer.SetOnStage( actor ); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + // reset the renderer to renderer a svg image + factory.ResetRenderer( controlRenderer, actor, TEST_SVG_FILE_NAME, ImageDimensions( 100, 100 ) ); + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + + EventThreadCallback* eventTrigger = EventThreadCallback::Get(); + CallbackBase* callback = eventTrigger->GetCallback(); + + eventTrigger->WaitingForTrigger( 1 );// waiting until the svg image is rasterized. + CallbackBase::Execute( *callback ); + + END_TEST; +}