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-AsyncImageLoader.cpp;h=6e99e485b1b0e37408c3817fda165707c300c332;hp=21603f311fbd04b72c0943245163d94887f7d1a9;hb=5e351965bad7e1de2e94027548b022bac692603c;hpb=3eb60a0aef6b188727b79bdee2e35c575c432a90 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AsyncImageLoader.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AsyncImageLoader.cpp index 21603f3..6e99e48 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AsyncImageLoader.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AsyncImageLoader.cpp @@ -19,7 +19,7 @@ #include #include #include -#include +#include using namespace Dali; using namespace Dali::Toolkit; @@ -139,6 +139,28 @@ int UtcDaliAsyncImageLoaderAssignmentOperator(void) END_TEST; } +int UtcDaliAsyncImageLoaderDownCastP(void) +{ + AsyncImageLoader asyncImageLoader = AsyncImageLoader::New(); + BaseHandle object(asyncImageLoader); + + AsyncImageLoader asyncImageLoader2 = AsyncImageLoader::DownCast( object ); + + DALI_TEST_CHECK( asyncImageLoader2 ); + + END_TEST; +} + +int UtcDaliAsyncImageLoaderDownCastN(void) +{ + BaseHandle unInitializedObject; + AsyncImageLoader asyncImageLoader = AsyncImageLoader::DownCast( unInitializedObject ); + + DALI_TEST_CHECK( !asyncImageLoader ); + + END_TEST; +} + int UtcDaliAsyncImageLoaderLoadAndLoadedSignal(void) { ToolkitTestApplication application; @@ -152,12 +174,7 @@ int UtcDaliAsyncImageLoaderLoadAndLoadedSignal(void) uint32_t id02 = loader.Load( gImage_50_RGBA, ImageDimensions( 25, 25 ) ); uint32_t id03 = loader.Load( gImage_128_RGB, ImageDimensions( 100, 100 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR, true ); - EventThreadCallback* eventTrigger = EventThreadCallback::Get(); - CallbackBase* callback = eventTrigger->GetCallback(); - - eventTrigger->WaitingForTrigger( 3 );// waiting until all three images are loaded - - CallbackBase::Execute( *callback ); + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 3 ), true, TEST_LOCATION ); application.SendNotification(); application.Render(); @@ -169,6 +186,7 @@ int UtcDaliAsyncImageLoaderLoadAndLoadedSignal(void) END_TEST; } +// Note: This is not an ideal test, but we cannot guarantee we can call Cancel() before the image has finished loading. int UtcDaliAsyncImageLoaderCancel(void) { ToolkitTestApplication application; @@ -182,26 +200,18 @@ int UtcDaliAsyncImageLoaderCancel(void) uint32_t id02 = loader.Load( gImage_50_RGBA, ImageDimensions( 25, 25 ) ); uint32_t id03 = loader.Load( gImage_128_RGB, ImageDimensions( 100, 100 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR, true ); - // cancel the loading of the second image - DALI_TEST_CHECK( loader.Cancel( id02 ) ); - - EventThreadCallback* eventTrigger = EventThreadCallback::Get(); - CallbackBase* callback = eventTrigger->GetCallback(); - - eventTrigger->WaitingForTrigger( 2 );// waiting until first and third images are loaded - - CallbackBase::Execute( *callback ); - - DALI_TEST_CHECK( ! loader.Cancel( id03 ) ); // can not cancel a task that is already implemeted + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 3 ), true, TEST_LOCATION ); application.SendNotification(); application.Render(); - DALI_TEST_CHECK( loadedSignalVerifier.LoadedImageCount() == 2 ); + DALI_TEST_CHECK( loadedSignalVerifier.LoadedImageCount() == 3 ); + + DALI_TEST_CHECK( !loader.Cancel( id03 ) ); // Cannot cancel a task that is already implemeted - DALI_TEST_CHECK( loadedSignalVerifier.Verify( id01, 34, 34 ) ); // first image is successfully loaded - DALI_TEST_CHECK( !loadedSignalVerifier.Verify( id02, 25, 25 ) ); // second image is not loaded - DALI_TEST_CHECK( loadedSignalVerifier.Verify( id03, 100, 100 ) ); // third image is successfully loaded + DALI_TEST_CHECK( loadedSignalVerifier.Verify( id01, 34, 34 ) ); // first image is loaded + DALI_TEST_CHECK( loadedSignalVerifier.Verify( id02, 25, 25 ) ); // second image is loaded + DALI_TEST_CHECK( loadedSignalVerifier.Verify( id03, 100, 100 ) ); // third image is loaded END_TEST; } @@ -211,33 +221,20 @@ int UtcDaliAsyncImageLoaderCancelAll(void) ToolkitTestApplication application; AsyncImageLoader loader = AsyncImageLoader::New(); - ImageLoadedSignalVerifier loadedSignalVerifier; - - loader.ImageLoadedSignal().Connect( &loadedSignalVerifier, &ImageLoadedSignalVerifier::ImageLoaded ); - - loader.Load( gImage_34_RGBA, ImageDimensions( 34, 34 ) ); - uint32_t id02 = loader.Load( gImage_50_RGBA, ImageDimensions( 25, 25 ) ); - - // try to cancel the loading of the first and second image, however the cancellation of the first image is not guaranteed - loader.CancelAll(); - - uint32_t id03 = loader.Load( gImage_128_RGB, ImageDimensions( 100, 100 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR, true ); - loader.Load( gImage_128_RGB, ImageDimensions( 128, 128 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR, true ); - - EventThreadCallback* eventTrigger = EventThreadCallback::Get(); - CallbackBase* callback = eventTrigger->GetCallback(); - eventTrigger->WaitingForTrigger( 2 );// waiting until the third images is loaded - - CallbackBase::Execute( *callback ); - - application.SendNotification(); - application.Render(); + // Test that it is safe to call CancelAll even there is no loading task requested. + try + { + loader.CancelAll(); + } + catch(Dali::DaliException& e) + { + DALI_TEST_ASSERT(e, "AsyncImageLoader::LoadAll", TEST_LOCATION); + } - DALI_TEST_CHECK( !loadedSignalVerifier.Verify( id02, 25, 25 ) ); // second image is not loaded - DALI_TEST_CHECK( loadedSignalVerifier.Verify( id03, 100, 100 ) ); // third image is successfully loaded + // Test that cancelling a non-existing loading task will return false + uint32_t id = 1; + DALI_TEST_CHECK( !(loader.Cancel( id )) ); END_TEST; } - -