X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ImageView.cpp;h=6348940f5be6a35a69183fc8dc079571677ab826;hb=4ee66864e6f96d6de8c4f0b8beed439c0f3508d1;hp=67f054cc8e117ea8cb8fd9eca143d93fe7de25ad;hpb=6991753931a9a5b8a6b253c5e9e1541556239d1b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp index 67f054c..6348940 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -18,10 +18,12 @@ // Need to override adaptor classes for toolkit test harness, so include // test harness headers before dali headers. #include +#include +#include #include #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" ) ); @@ -356,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; @@ -862,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 ); @@ -872,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 ); @@ -914,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 ); @@ -923,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 ); @@ -1003,4 +1129,3 @@ int UtcDaliImageViewGetImageN(void) END_TEST; } -