X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ImageView.cpp;h=4ff9b134ce5c368c6b72ec6f87e5c772b6c2e319;hb=d98f67ed625722368682b8a3d04d01f8180025e5;hp=c8cf88f8fe28d9cef5c379bd09c7877909417630;hpb=7d7b84a16b36c89cc171c48bc5f2527eee5674b4;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 c8cf88f..4ff9b13 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -488,6 +489,12 @@ int UtcDaliImageViewAsyncLoadingWithAtlasing(void) application.Render(16); application.SendNotification(); + imageView.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT ); + application.SendNotification(); + application.Render(16); + application.Render(16); + application.SendNotification(); + // loading started, this waits for the loader thread for max 30 seconds DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); @@ -1507,3 +1514,108 @@ int UtcDaliImageViewReplaceImageAndGetNaturalSize(void) END_TEST; } + +int UtcDaliImageViewResourceReadySignalWithImmediateLoad(void) +{ + tet_infoline("Test Setting Image with IMMEDIATE load and receving ResourceReadySignal before staged."); + + ToolkitTestApplication application; + + gResourceReadySignalFired = false; + + Property::Map imageMap; + + imageMap[ ImageVisual::Property::URL ] = gImage_34_RGBA; + imageMap[ ImageVisual::Property::LOAD_POLICY ] = ImageVisual::LoadPolicy::IMMEDIATE; + + tet_infoline("Creating ImageView without URL so image does not start loading"); + ImageView imageView = ImageView::New(); + tet_infoline("Connect to image loaded signal before setting image"); + imageView.ResourceReadySignal().Connect( &ResourceReadySignal); + tet_infoline("Setting Image with IMMEDIATE load, signal already connected so will be triggered."); + imageView.SetProperty( ImageView::Property::IMAGE, imageMap ); + + // loading started, this waits for the loader thread + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(16); + + DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliImageViewResourceReadySignalWithReusedImage(void) +{ + tet_infoline("Test Setting Image that was already loaded by another ImageView and still getting ResourceReadySignal."); + + ToolkitTestApplication application; + + gResourceReadySignalFired = false; + + Property::Map imageMap; + + imageMap[ ImageVisual::Property::URL ] = gImage_34_RGBA; + imageMap[ ImageVisual::Property::LOAD_POLICY ] = ImageVisual::LoadPolicy::IMMEDIATE; + + ImageView imageView = ImageView::New(); + imageView.ResourceReadySignal().Connect( &ResourceReadySignal); + imageView.SetProperty( ImageView::Property::IMAGE, imageMap ); + + // loading started, this waits for the loader thread + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(16); + + DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION ); + gResourceReadySignalFired = false; + + ImageView imageViewWithExistingImage = ImageView::New(); + imageViewWithExistingImage.ResourceReadySignal().Connect( &ResourceReadySignal); + imageViewWithExistingImage.SetProperty( ImageView::Property::IMAGE, imageMap ); + + DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliImageViewResourceReadySignalWithReusedImage02(void) +{ + tet_infoline("Test Setting Image that was already loaded by another ImageView and still getting ResourceReadySignal when staged."); + + ToolkitTestApplication application; + + gResourceReadySignalFired = false; + + Property::Map imageImmediateLoadingMap; + imageImmediateLoadingMap[ ImageVisual::Property::URL ] = gImage_34_RGBA; + imageImmediateLoadingMap[ ImageVisual::Property::LOAD_POLICY ] = ImageVisual::LoadPolicy::IMMEDIATE; + + tet_infoline("Immediate load an image"); + ImageView imageView = ImageView::New(); + imageView.ResourceReadySignal().Connect( &ResourceReadySignal); + imageView.SetProperty( ImageView::Property::IMAGE, imageImmediateLoadingMap ); + + // loading started, this waits for the loader thread + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(16); + + tet_infoline("Check image loaded"); + DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION ); + gResourceReadySignalFired = false; + + tet_infoline("Create another ImageView with the same URL"); + ImageView imageViewWithExistingImage = ImageView::New( gImage_34_RGBA ); + tet_infoline("Connect to ResourceReady signal for second ImageView, it should still fire as resource is ready"); + imageViewWithExistingImage.ResourceReadySignal().Connect( &ResourceReadySignal); + + Stage::GetCurrent().Add( imageViewWithExistingImage ); + + DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION ); + + END_TEST; +}