X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ImageView.cpp;h=2be7c5a76232a09d3ac4be7e61e2aa77261c598a;hb=6b38c6c213808ada74270118045e7e23d8b4910d;hp=7b0b54d7abee2f4bd672bbce3ac5c484576459bb;hpb=5359a575636e678baf178dab5209b587be1a7551;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 7b0b54d..2be7c5a 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -2749,17 +2749,38 @@ void OnResourceReadySignal( Control control ) { gResourceReadySignalCounter++; - if( gResourceReadySignalCounter == 1 ) + if(control.GetVisualResourceStatus(ImageView::Property::IMAGE) == Visual::ResourceStatus::READY) { - // Set image twice - ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); - ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); + if( gResourceReadySignalCounter == 1 ) + { + // Set image twice + // It makes the first new visual be deleted immediately + ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); + ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); + } + } + else if(control.GetVisualResourceStatus(ImageView::Property::IMAGE) == Visual::ResourceStatus::FAILED) + { + // Make the resource ready immediately + control[ImageView::Property::IMAGE] = TEST_RESOURCE_DIR "/svg1.svg"; + } +} + +void OnResourceReadySignal01( Control control ) +{ + if(++gResourceReadySignalCounter == 1) + { + // It makes the first new visual be deleted immediately + // The first image will not be loaded. + control[ImageView::Property::IMAGE] = Property::Map().Add(ImageVisual::Property::URL, gImage_600_RGB) + .Add(ImageVisual::Property::RELEASE_POLICY, ImageVisual::ReleasePolicy::NEVER); + control[ImageView::Property::IMAGE] = TEST_IMAGE_1; } } } -int UtcDaliImageViewSetImageOnResourceReadySignal(void) +int UtcDaliImageViewSetImageOnResourceReadySignal01(void) { tet_infoline("Test setting image from within signal handler."); @@ -2781,5 +2802,50 @@ int UtcDaliImageViewSetImageOnResourceReadySignal(void) DALI_TEST_EQUALS( imageView.IsResourceReady(), true, TEST_LOCATION ); + // Reset count + gResourceReadySignalCounter = 0; + + imageView[ImageView::Property::IMAGE] = "invalid.jpg"; + + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + // Run idle callback + application.RunIdles(); + + DALI_TEST_EQUALS( gResourceReadySignalCounter, 2, TEST_LOCATION ); + + DALI_TEST_EQUALS( imageView.IsResourceReady(), true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliImageViewSetImageOnResourceReadySignal02(void) +{ + tet_infoline("Test setting image from within signal handler."); + + ToolkitTestApplication application; + + gResourceReadySignalCounter = 0; + + ImageView imageView = ImageView::New( gImage_34_RGBA ); + imageView.ResourceReadySignal().Connect( &OnResourceReadySignal01 ); + + application.GetScene().Add( imageView ); + + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + // Wait for loading an image + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + DALI_TEST_EQUALS( gResourceReadySignalCounter, 2, TEST_LOCATION ); + + DALI_TEST_EQUALS( imageView.IsResourceReady(), true, TEST_LOCATION ); + END_TEST; }