X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ImageView.cpp;h=1cd3de5ca2c4bc848c1f7577db21dd6d07f022bc;hb=0a6073b11b32d2153deb0e4a581a9314eef8ab10;hp=29faa6d7745d4de0836cc917a1dd7b765dc6830a;hpb=9898539d73faa8f3eebc454f0084727479ef8ba9;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 29faa6d..1cd3de5 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -2743,7 +2743,7 @@ namespace static int gResourceReadySignalCounter = 0; -void OnResourceReadySignal( Control control ) +void OnResourceReadySignal01( Control control ) { gResourceReadySignalCounter++; @@ -2764,7 +2764,7 @@ void OnResourceReadySignal( Control control ) } } -void OnResourceReadySignal01( Control control ) +void OnResourceReadySignal02( Control control ) { if(++gResourceReadySignalCounter == 1) { @@ -2776,6 +2776,34 @@ void OnResourceReadySignal01( Control control ) } } +ImageView gImageView1; +ImageView gImageView2; +ImageView gImageView3; + +void OnResourceReadySignal03( Control control ) +{ + if(gResourceReadySignalCounter == 0) + { + // Queue loading + // 1. Use cached image, then UploadComplete will be called right after OnResourceReadySignal03. + gImageView2[ImageView::Property::IMAGE] = gImage_34_RGBA; + + // 2. Load a new image + gImageView3[ImageView::Property::IMAGE] = TEST_IMAGE_1; + + // 3. Use the new image again + gImageView1[ImageView::Property::IMAGE] = TEST_IMAGE_1; + gImageView1.ResourceReadySignal().Connect(&OnResourceReadySignal03); + } + else if(gResourceReadySignalCounter == 1) + { + // This is called from TextureManager::ProcessQueuedTextures(). + gImageView1.Unparent(); + gImageView1.Reset(); + } + gResourceReadySignalCounter++; +} + } int UtcDaliImageViewSetImageOnResourceReadySignal01(void) @@ -2787,7 +2815,7 @@ int UtcDaliImageViewSetImageOnResourceReadySignal01(void) gResourceReadySignalCounter = 0; ImageView imageView = ImageView::New( gImage_34_RGBA ); - imageView.ResourceReadySignal().Connect( &OnResourceReadySignal ); + imageView.ResourceReadySignal().Connect( &OnResourceReadySignal01 ); application.GetScene().Add( imageView ); @@ -2829,7 +2857,7 @@ int UtcDaliImageViewSetImageOnResourceReadySignal02(void) gResourceReadySignalCounter = 0; ImageView imageView = ImageView::New( gImage_34_RGBA ); - imageView.ResourceReadySignal().Connect( &OnResourceReadySignal01 ); + imageView.ResourceReadySignal().Connect( &OnResourceReadySignal02 ); application.GetScene().Add( imageView ); @@ -2847,3 +2875,32 @@ int UtcDaliImageViewSetImageOnResourceReadySignal02(void) END_TEST; } + +int UtcDaliImageViewSetImageOnResourceReadySignal03(void) +{ + tet_infoline("Test setting image from within signal handler."); + + ToolkitTestApplication application; + + gResourceReadySignalCounter = 0; + + gImageView1 = ImageView::New(gImage_34_RGBA); + application.GetScene().Add(gImageView1); + + // Wait for loading + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + + gImageView2 = ImageView::New(gImage_600_RGB); + gImageView2.ResourceReadySignal().Connect(&OnResourceReadySignal03); + application.GetScene().Add(gImageView2); + + gImageView3 = ImageView::New(); + application.GetScene().Add(gImageView3); + + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + application.SendNotification(); + application.Render(); + + END_TEST; +}