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-GaussianBlurView.cpp;h=874699f25217081b389bbaaae067079d0e2061b7;hp=d4b6e4a1c66fb7b7bce81cd4b8cb0acd7acfbb5f;hb=HEAD;hpb=214fe01378440e2ae1f953c61d68e2793184cc16 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-GaussianBlurView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-GaussianBlurView.cpp index d4b6e4a..41393d8 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-GaussianBlurView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-GaussianBlurView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -15,17 +15,20 @@ * */ -#include #include +#include + #include + #include +#include using namespace Dali; using namespace Dali::Toolkit; namespace { -const char* TEST_IMAGE_FILE_NAME = "gallery_image_01.jpg"; +const char* TEST_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/gallery-small-1.jpg"; } // namespace void utc_gaussian_blur_view_startup(void) @@ -38,7 +41,28 @@ void utc_gaussian_blur_view_cleanup(void) test_return_value = TET_PASS; } +class TestCallback : public ConnectionTracker +{ +public: + TestCallback(Dali::Toolkit::GaussianBlurView& blurView) + : mBlurView(blurView) + { + mFinished = false; + } + void Connect() + { + mBlurView.FinishedSignal().Connect(this, &TestCallback::OnFinished); + } + + void OnFinished(Dali::Toolkit::GaussianBlurView source) + { + mFinished = true; + } + + bool mFinished; + Dali::Toolkit::GaussianBlurView& mBlurView; +}; // Negative test case for a method int UtcDaliGaussianBlurViewUninitialized(void) @@ -52,13 +76,13 @@ int UtcDaliGaussianBlurViewUninitialized(void) { // New() must be called to create a GaussianBlurView or it wont be valid. Actor a = Actor::New(); - view.Add( a ); - DALI_TEST_CHECK( false ); + view.Add(a); + DALI_TEST_CHECK(false); } - catch (Dali::DaliException& e) + catch(Dali::DaliException& e) { // Tests that a negative test of an assertion succeeds - DALI_TEST_PRINT_ASSERT( e ); + DALI_TEST_PRINT_ASSERT(e); DALI_TEST_CHECK(!view); } END_TEST; @@ -71,10 +95,10 @@ int UtcDaliGaussianBlurViewNew(void) tet_infoline("UtcDaliGaussianBlurViewNew"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); Toolkit::GaussianBlurView view2 = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, false); - DALI_TEST_CHECK( view2 ); + DALI_TEST_CHECK(view2); END_TEST; } @@ -85,16 +109,15 @@ int UtcDaliGaussianBlurViewDownCast(void) tet_infoline("UtcDaliGaussianBlurViewDownCast"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - BaseHandle handle(view); + BaseHandle handle(view); - Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast( handle ); - DALI_TEST_CHECK( view ); - DALI_TEST_CHECK( gaussianBlurView ); - DALI_TEST_CHECK( gaussianBlurView == view ); + Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast(handle); + DALI_TEST_CHECK(view); + DALI_TEST_CHECK(gaussianBlurView); + DALI_TEST_CHECK(gaussianBlurView == view); END_TEST; } - // Positive test case for a method int UtcDaliGaussianBlurViewPropertyNames(void) { @@ -102,11 +125,11 @@ int UtcDaliGaussianBlurViewPropertyNames(void) tet_infoline("UtcDaliGaussianBlurViewPropertyNames"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); // Check the names, this names are used in the shader code, // if they change in the shader code, then it has to be updated here. - DALI_TEST_EQUALS( view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION ); + DALI_TEST_EQUALS(view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION); END_TEST; } @@ -117,22 +140,21 @@ int UtcDaliGaussianBlurViewAddRemove(void) tet_infoline("UtcDaliGaussianBlurViewAddRemove"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); Actor actor = Actor::New(); - DALI_TEST_CHECK( !actor.OnStage() ); + DALI_TEST_CHECK(!actor.GetProperty(Actor::Property::CONNECTED_TO_SCENE)); - - view.SetParentOrigin(ParentOrigin::CENTER); - view.SetSize(Stage::GetCurrent().GetSize()); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); view.Add(actor); - Stage::GetCurrent().Add(view); + application.GetScene().Add(view); - DALI_TEST_CHECK( actor.OnStage() ); + DALI_TEST_CHECK(actor.GetProperty(Actor::Property::CONNECTED_TO_SCENE)); view.Remove(actor); - DALI_TEST_CHECK( !actor.OnStage() ); + DALI_TEST_CHECK(!actor.GetProperty(Actor::Property::CONNECTED_TO_SCENE)); END_TEST; } @@ -143,24 +165,66 @@ int UtcDaliGaussianBlurActivateDeactivate(void) tet_infoline("UtcDaliGaussianBlurActivateDeactivate"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); - RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); - DALI_TEST_CHECK( 1u == taskList.GetTaskCount() ); + RenderTaskList taskList = application.GetScene().GetRenderTaskList(); + DALI_TEST_CHECK(1u == taskList.GetTaskCount()); - view.SetParentOrigin(ParentOrigin::CENTER); - view.SetSize(Stage::GetCurrent().GetSize()); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); view.Add(Actor::New()); - Stage::GetCurrent().Add(view); + application.GetScene().Add(view); view.Activate(); - RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList(); - DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() ); + RenderTaskList taskList2 = application.GetScene().GetRenderTaskList(); + DALI_TEST_CHECK(1u != taskList2.GetTaskCount()); + DALI_TEST_CHECK(2u == view.GetChildCount()); view.Deactivate(); - RenderTaskList taskList3 = Stage::GetCurrent().GetRenderTaskList(); - DALI_TEST_CHECK( 1u == taskList3.GetTaskCount() ); + RenderTaskList taskList3 = application.GetScene().GetRenderTaskList(); + DALI_TEST_CHECK(1u == taskList3.GetTaskCount()); + DALI_TEST_CHECK(1u == view.GetChildCount()); + + END_TEST; +} + +// Positive test case for a method +int UtcDaliGaussianBlurActivateDeactivateRepeat(void) +{ + ToolkitTestApplication application; + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + tet_infoline("UtcDaliGaussianBlurActivateDeactivateRepeat"); + + Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); + DALI_TEST_CHECK(view); + + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); + view.Add(Actor::New()); + application.GetScene().Add(view); + view.Activate(); + + application.SendNotification(); + application.Render(20); + + DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 3, TEST_LOCATION); + + view.Deactivate(); + + application.SendNotification(); + application.Render(20); + + DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 3, TEST_LOCATION); + + view.Activate(); + + application.SendNotification(); + application.Render(20); + + DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 6, TEST_LOCATION); END_TEST; } @@ -171,11 +235,11 @@ int UtcDaliGaussianBlurViewSetGetBackgroundColor(void) tet_infoline("UtcDaliGaussianBlurViewSetGetBackgroundColor"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); view.SetBackgroundColor(Dali::Color::RED); Vector4 color = view.GetBackgroundColor(); - DALI_TEST_CHECK( color == Dali::Color::RED ); + DALI_TEST_CHECK(color == Dali::Color::RED); END_TEST; } @@ -186,16 +250,105 @@ int UtcDaliGaussianBlurViewSetGetRenderTarget(void) tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget"); Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true); - DALI_TEST_CHECK( view ); + DALI_TEST_CHECK(view); + + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); + view.Add(Actor::New()); + application.GetScene().Add(view); + view.Activate(); + + PixelData pixels = Toolkit::SyncImageLoader::Load(TEST_IMAGE_FILE_NAME); + Texture texture = Texture::New(TextureType::TEXTURE_2D, pixels.GetPixelFormat(), pixels.GetWidth(), pixels.GetHeight()); + texture.Upload(pixels, 0, 0, 0, 0, pixels.GetWidth(), pixels.GetHeight()); + + FrameBuffer renderTarget = FrameBuffer::New(480, 800, FrameBuffer::Attachment::NONE); + view.SetUserImageAndOutputRenderTarget(texture, renderTarget); + DALI_TEST_CHECK(view.GetBlurredRenderTarget() == renderTarget); + END_TEST; +} + +int UtcDaliGaussianBlurViewActivateOnce1(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliGaussianBlurActivateOnce1"); + + Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true); + DALI_TEST_CHECK(view); + + RenderTaskList taskList = application.GetScene().GetRenderTaskList(); + DALI_TEST_CHECK(1u == taskList.GetTaskCount()); + + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); + view.Add(Actor::New()); + application.GetScene().Add(view); + view.ActivateOnce(); + + RenderTaskList taskList2 = application.GetScene().GetRenderTaskList(); + DALI_TEST_CHECK(1u != taskList2.GetTaskCount()); + application.Render(); + + END_TEST; +} + +// Positive test case for a method +int UtcDaliGaussianBlurActivateOnce2(void) +{ + ToolkitTestApplication application; + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + tet_infoline("UtcDaliGaussianBlurActivateOnce2"); + + Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(); + DALI_TEST_CHECK(view); - view.SetParentOrigin(ParentOrigin::CENTER); - view.SetSize(Stage::GetCurrent().GetSize()); + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); view.Add(Actor::New()); - Stage::GetCurrent().Add(view); + application.GetScene().Add(view); + view.ActivateOnce(); + + application.SendNotification(); + application.Render(20); + + DALI_TEST_CHECK(gl.GetLastGenTextureId() == 3); + + view.ActivateOnce(); + + application.SendNotification(); + application.Render(20); + + DALI_TEST_CHECK(gl.GetLastGenTextureId() == 6); + + END_TEST; +} + +int UtcDaliGaussianBlurViewFinishedSignalN(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliGaussianBlurViewFinishedSignalN"); + + Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true); + DALI_TEST_CHECK(view); + + view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize()); + view.Add(Actor::New()); + application.GetScene().Add(view); view.Activate(); - FrameBufferImage renderTarget = FrameBufferImage::New( 480.0f, 800.0f, Pixel::RGB888 ); - view.SetUserImageAndOutputRenderTarget(Image::New(TEST_IMAGE_FILE_NAME), renderTarget); - DALI_TEST_CHECK( view.GetBlurredRenderTarget() == renderTarget ); + TestCallback callback(view); + DALI_TEST_CHECK(callback.mFinished == false); + + callback.Connect(); + + view.Deactivate(); + application.SendNotification(); + + // FinishedSignal is only for ActivateOnce() + DALI_TEST_CHECK(callback.mFinished == false); + END_TEST; }