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-ImageView.cpp;h=709282a88628cb60dafcd72eaf7e898d7385b773;hp=36a42dd8dfe0c7f6ab865ea80fc3d541e8cac9e6;hb=b0afc347abc84d3ed5f02fc0f037ebf8dc223b6a;hpb=1acdb36279de888dcef999e0e0e1460babdd983a diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp index 36a42dd..709282a 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -18,6 +18,8 @@ // Need to override adaptor classes for toolkit test harness, so include // test harness headers before dali headers. #include +#include +#include #include #include @@ -73,6 +75,11 @@ const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER( const char* TEST_IMAGE_FILE_NAME = "gallery_image_01.jpg"; const char* TEST_IMAGE_FILE_NAME2 = "gallery_image_02.jpg"; +// resolution: 34*34, pixel format: RGBA8888 +static const char* gImage_34_RGBA = TEST_RESOURCE_DIR "/icon-edit.png"; +// resolution: 600*600, pixel format: RGB888 +static const char* gImage_600_RGB = TEST_RESOURCE_DIR "/test-image-600.jpg"; + void TestImage( ImageView imageView, BufferImage image ) { Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) ); @@ -328,18 +335,8 @@ int UtcDaliImageViewSetGetProperty03(void) application.SendNotification(); application.Render(); - // conventional alpha blending + // conventional alpha blending Renderer renderer = imageView.GetRendererAt( 0 ); - BlendingFactor::Type srcFactorRgb; - BlendingFactor::Type destFactorRgb; - BlendingFactor::Type srcFactorAlpha; - BlendingFactor::Type destFactorAlpha; - renderer.GetBlendFunc(srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha); - DALI_TEST_CHECK( srcFactorRgb == BlendingFactor::SRC_ALPHA ); - DALI_TEST_CHECK( destFactorRgb == BlendingFactor::ONE_MINUS_SRC_ALPHA ); - DALI_TEST_CHECK( srcFactorAlpha == BlendingFactor::ONE ); - DALI_TEST_CHECK( destFactorAlpha == BlendingFactor::ONE_MINUS_SRC_ALPHA ); - Property::Value value = renderer.GetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA ); bool enable; DALI_TEST_CHECK( value.Get( enable ) ); @@ -350,7 +347,10 @@ int UtcDaliImageViewSetGetProperty03(void) application.SendNotification(); application.Render(); - renderer.GetBlendFunc(srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha); + int srcFactorRgb = renderer.GetProperty( Renderer::Property::BLEND_FACTOR_SRC_RGB ); + int destFactorRgb = renderer.GetProperty( Renderer::Property::BLEND_FACTOR_DEST_RGB ); + int srcFactorAlpha = renderer.GetProperty( Renderer::Property::BLEND_FACTOR_SRC_ALPHA ); + int destFactorAlpha = renderer.GetProperty( Renderer::Property::BLEND_FACTOR_DEST_ALPHA ); DALI_TEST_CHECK( srcFactorRgb == BlendingFactor::ONE ); DALI_TEST_CHECK( destFactorRgb == BlendingFactor::ONE_MINUS_SRC_ALPHA ); DALI_TEST_CHECK( srcFactorAlpha == BlendingFactor::ONE ); @@ -363,6 +363,131 @@ int UtcDaliImageViewSetGetProperty03(void) END_TEST; } +int UtcDaliImageViewAsyncLoadingWithoutAltasing(void) +{ + ToolkitTestApplication application; + + // Async loading, no atlasing for big size image + ImageView imageView = ImageView::New( gImage_600_RGB ); + + // By default, Aysnc loading is used + Stage::GetCurrent().Add( imageView ); + application.SendNotification(); + application.Render(16); + application.Render(16); + application.SendNotification(); + + // BitmapLoader is not used + BitmapLoader loader = BitmapLoader::GetLatestCreated(); + DALI_TEST_CHECK( !loader ); + + END_TEST; +} + +int UtcDaliImageViewAsyncLoadingWithAltasing(void) +{ + ToolkitTestApplication application; + + //Async loading, automatic atlasing for small size image + TraceCallStack& callStack = application.GetGlAbstraction().GetTextureTrace(); + callStack.Reset(); + callStack.Enable(true); + + ImageView imageView = ImageView::New( gImage_34_RGBA, ImageDimensions( 34, 34 ) ); + + // By default, Aysnc loading is used + // loading is not started if the actor is offStage + BitmapLoader loader = BitmapLoader::GetLatestCreated(); + DALI_TEST_CHECK( !loader ); + + Stage::GetCurrent().Add( imageView ); + application.SendNotification(); + application.Render(16); + application.Render(16); + application.SendNotification(); + + // loading started + loader = BitmapLoader::GetLatestCreated(); + DALI_TEST_CHECK( loader ); + + // worker thread is created + EventThreadCallback* eventTrigger = EventThreadCallback::Get(); + DALI_TEST_CHECK( eventTrigger ); + + loader.WaitForLoading();// waiting until the image to be loaded + DALI_TEST_CHECK( loader.IsLoaded() ); + + CallbackBase* callback = eventTrigger->GetCallback(); + CallbackBase::Execute( *callback ); + + application.SendNotification(); + application.Render(16); + + callStack.Enable(false); + + TraceCallStack::NamedParams params; + params["width"] = ToString(34); + params["height"] = ToString(34); + DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliImageViewSyncLoading(void) +{ + ToolkitTestApplication application; + + Property::Map syncLoadingMap; + syncLoadingMap[ "synchronousLoading" ] = true; + + // Sync loading, no atlasing for big size image + { + ImageView imageView = ImageView::New(); + + // Sync loading is used + syncLoadingMap[ "url" ] = gImage_600_RGB; + imageView.SetProperty( ImageView::Property::IMAGE, syncLoadingMap ); + + // BitmapLoader is used, and the loading is started immediately even the actor is not on stage. + BitmapLoader loader = BitmapLoader::GetLatestCreated(); + DALI_TEST_CHECK( loader ); + } + + // Sync loading, automatic atlasing for small size image + { + BitmapLoader::ResetLatestCreated(); + TraceCallStack& callStack = application.GetGlAbstraction().GetTextureTrace(); + callStack.Reset(); + callStack.Enable(true); + + ImageView imageView = ImageView::New( ); + // Sync loading is used + syncLoadingMap[ "url" ] = gImage_34_RGBA; + syncLoadingMap[ "desiredHeight" ] = 34; + syncLoadingMap[ "desiredWidth" ] = 34; + imageView.SetProperty( ImageView::Property::IMAGE, syncLoadingMap ); + + // loading is started even if the actor is offStage + BitmapLoader loader = BitmapLoader::GetLatestCreated(); + DALI_TEST_CHECK( loader ); + + loader.WaitForLoading(); + + DALI_TEST_CHECK( loader.IsLoaded() ); + + Stage::GetCurrent().Add( imageView ); + application.SendNotification(); + application.Render(16); + + TraceCallStack::NamedParams params; + params["width"] = ToString(34); + params["height"] = ToString(34); + DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), + true, TEST_LOCATION ); + } + END_TEST; +} + int UtcDaliImageViewSizeWithBackground(void) { ToolkitTestApplication application; @@ -869,7 +994,6 @@ int UtcDaliImageViewSetImageNativeImageWithCustomShader(void) customShader.Insert( "hints", shaderHints ); Property::Map map; - map.Insert( "rendererType", "image" ); map.Insert( "shader", customShader ); TestNativeImagePointer nativeImageInterface = TestNativeImage::New( width, height ); @@ -879,8 +1003,6 @@ int UtcDaliImageViewSetImageNativeImageWithCustomShader(void) imageView.SetProperty( ImageView::Property::IMAGE, map ); Stage::GetCurrent().Add( imageView ); - imageView.SetProperty( ImageView::Property::IMAGE, map ); - TestGlAbstraction& gl = application.GetGlAbstraction(); gl.EnableTextureCallTrace( true ); @@ -921,7 +1043,6 @@ int UtcDaliImageViewSetImageBufferImageWithCustomShaderToNativeImage(void) customShader.Insert( "hints", shaderHints ); Property::Map map; - map.Insert( "rendererType", "image" ); map.Insert( "shader", customShader ); BufferImage image = CreateBufferImage( width, height, Color::WHITE ); @@ -930,8 +1051,6 @@ int UtcDaliImageViewSetImageBufferImageWithCustomShaderToNativeImage(void) imageView.SetProperty( ImageView::Property::IMAGE, map ); Stage::GetCurrent().Add( imageView ); - imageView.SetProperty( ImageView::Property::IMAGE, map ); - TestGlAbstraction& gl = application.GetGlAbstraction(); gl.EnableTextureCallTrace( true ); @@ -968,3 +1087,45 @@ int UtcDaliImageViewSetImageBufferImageWithCustomShaderToNativeImage(void) END_TEST; } + +int UtcDaliImageViewGetImageP1(void) +{ + ToolkitTestApplication application; + + ImageView imageView = ImageView::New(); + DALI_TEST_CHECK( ! imageView.GetImage() ); + + Image image = CreateBufferImage(); + imageView.SetImage( image ); + DALI_TEST_CHECK( imageView.GetImage() == image ); + + END_TEST; +} + +int UtcDaliImageViewGetImageP2(void) +{ + ToolkitTestApplication application; + + BufferImage image = CreateBufferImage(); + ImageView imageView = ImageView::New( image ); + DALI_TEST_CHECK( imageView.GetImage() == image ); + + END_TEST; +} + +int UtcDaliImageViewGetImageN(void) +{ + ToolkitTestApplication application; + + ImageView imageView = ImageView::New( TEST_IMAGE_FILE_NAME ); + DALI_TEST_CHECK( ! imageView.GetImage() ); + + Image image = CreateBufferImage(); + imageView.SetImage( image ); + DALI_TEST_CHECK( imageView.GetImage() == image ); + + imageView.SetImage( TEST_IMAGE_FILE_NAME ); + DALI_TEST_CHECK( ! imageView.GetImage() ); + + END_TEST; +}