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-ImageView.cpp;h=c12f8cc796b8efef4b6114c4036414709d43bba1;hp=7b0b54d7abee2f4bd672bbce3ac5c484576459bb;hb=0e72d018e3fcf80e7ea319b0b888915b8d04e5c4;hpb=5359a575636e678baf178dab5209b587be1a7551 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp index 7b0b54d..c12f8cc 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) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -575,9 +575,9 @@ int UtcDaliImageViewAsyncLoadingWithAtlasing(void) callStack.Enable(false); TraceCallStack::NamedParams params; - params["width"] = ToString(34); - params["height"] = ToString(34); - DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); + params["width"] << 34; + params["height"] << 34; +DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); END_TEST; } @@ -616,8 +616,8 @@ int UtcDaliImageViewAsyncLoadingWithAtlasing02(void) callStack.Enable(false); TraceCallStack::NamedParams params; - params["width"] = ToString(34); - params["height"] = ToString(34); + params["width"] << 34; + params["height"] << 34; DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); END_TEST; @@ -661,8 +661,8 @@ int UtcDaliImageViewSyncLoading(void) application.Render(16); TraceCallStack::NamedParams params; - params["width"] = ToString(34); - params["height"] = ToString(34); + params["width"] << 34; + params["height"] << 34; DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); } @@ -697,8 +697,8 @@ int UtcDaliImageViewSyncLoading02(void) application.Render(16); TraceCallStack::NamedParams params; - params["width"] = ToString(34); - params["height"] = ToString(34); + params["width"] << 34; + params["height"] << 34; DALI_TEST_EQUALS( callStack.FindMethodAndParams( "TexSubImage2D", params ), true, TEST_LOCATION ); } @@ -2627,11 +2627,6 @@ int UtcDaliImageViewSvgLoadingFailure(void) application.GetScene().Add( imageView ); application.SendNotification(); - - // 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 ); @@ -2652,11 +2647,6 @@ int UtcDaliImageViewSvgLoadingFailure(void) application.GetScene().Add( imageView ); application.SendNotification(); - - // 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 ); @@ -2749,17 +2739,38 @@ void OnResourceReadySignal( Control control ) { gResourceReadySignalCounter++; - if( gResourceReadySignalCounter == 1 ) + if(control.GetVisualResourceStatus(ImageView::Property::IMAGE) == Visual::ResourceStatus::READY) + { + 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) { - // Set image twice - ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); - ImageView::DownCast( control ).SetImage( gImage_34_RGBA ); + // 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 +2792,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; }