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-ImageVisual.cpp;h=25779d574feeda9b8121a0dbcef3744f20db4d21;hp=16f9fef06dfff7cf0f02a135da342b73d85237d9;hb=de0c0ef70719409ce6accc801ff664612a96495e;hpb=c4ae93ec0b30096655d57b79c4da2043b11c382e diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp index 16f9fef..25779d5 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp @@ -842,6 +842,58 @@ int UtcDaliImageVisualTextureCancelRemoteLoad(void) END_TEST; } +int UtcDaliImageVisualTextureCancelAsyncLoad(void) +{ + ToolkitTestApplication application; + tet_infoline( "Load image asynchronosly, cancel loading, then load again" ); + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + + Visual::Base visual = factory.CreateVisual( propertyMap ); + DALI_TEST_CHECK( visual ); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable( true ); + TraceCallStack& drawTrace = gl.GetDrawTrace(); + drawTrace.Enable( true ); + + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast< DummyControlImpl& >( actor.GetImplementation() ); + dummyImpl.RegisterVisual( Control::Property::BACKGROUND, visual ); + + Stage::GetCurrent().Add( actor ); + + // Cancel loading + Stage::GetCurrent().Remove( actor ); + + Stage::GetCurrent().Add( actor ); + + // Create another visual with the same image + visual = factory.CreateVisual( propertyMap ); + DALI_TEST_CHECK( visual ); + + dummyImpl.RegisterVisual( Control::Property::BACKGROUND, visual ); + + application.SendNotification(); + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("GenTextures"), true, TEST_LOCATION ); + DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); + DALI_TEST_EQUALS( drawTrace.FindMethod("DrawArrays"), true, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliImageVisualSetInvalidAsyncImage(void) { ToolkitTestApplication application;