2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
24 using namespace Dali::Toolkit;
28 const char* TEST_IMAGE_FILE_NAME = "gallery_image_01.jpg";
31 void utc_gaussian_blur_view_startup(void)
33 test_return_value = TET_UNDEF;
36 void utc_gaussian_blur_view_cleanup(void)
38 test_return_value = TET_PASS;
41 class TestCallback : public ConnectionTracker
44 TestCallback( Dali::Toolkit::GaussianBlurView& blurView )
45 : mBlurView( blurView )
52 mBlurView.FinishedSignal().Connect( this, &TestCallback::OnFinished );
55 void OnFinished( Dali::Toolkit::GaussianBlurView source )
61 Dali::Toolkit::GaussianBlurView& mBlurView;
64 // Negative test case for a method
65 int UtcDaliGaussianBlurViewUninitialized(void)
67 ToolkitTestApplication application;
68 tet_infoline("UtcDaliGaussianBlurViewUninitialized");
70 Toolkit::GaussianBlurView view;
74 // New() must be called to create a GaussianBlurView or it wont be valid.
75 Actor a = Actor::New();
77 DALI_TEST_CHECK( false );
79 catch (Dali::DaliException& e)
81 // Tests that a negative test of an assertion succeeds
82 DALI_TEST_PRINT_ASSERT( e );
83 DALI_TEST_CHECK(!view);
88 // Positive test case for a method
89 int UtcDaliGaussianBlurViewNew(void)
91 ToolkitTestApplication application;
92 tet_infoline("UtcDaliGaussianBlurViewNew");
94 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
95 DALI_TEST_CHECK( view );
97 Toolkit::GaussianBlurView view2 = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, false);
98 DALI_TEST_CHECK( view2 );
102 // Positive test case for a method
103 int UtcDaliGaussianBlurViewDownCast(void)
105 ToolkitTestApplication application;
106 tet_infoline("UtcDaliGaussianBlurViewDownCast");
108 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
109 BaseHandle handle(view);
111 Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast( handle );
112 DALI_TEST_CHECK( view );
113 DALI_TEST_CHECK( gaussianBlurView );
114 DALI_TEST_CHECK( gaussianBlurView == view );
119 // Positive test case for a method
120 int UtcDaliGaussianBlurViewPropertyNames(void)
122 ToolkitTestApplication application;
123 tet_infoline("UtcDaliGaussianBlurViewPropertyNames");
125 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
126 DALI_TEST_CHECK( view );
128 // Check the names, this names are used in the shader code,
129 // if they change in the shader code, then it has to be updated here.
130 DALI_TEST_EQUALS( view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION );
134 // Positive test case for a method
135 int UtcDaliGaussianBlurViewAddRemove(void)
137 ToolkitTestApplication application;
138 tet_infoline("UtcDaliGaussianBlurViewAddRemove");
140 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
141 DALI_TEST_CHECK( view );
143 Actor actor = Actor::New();
144 DALI_TEST_CHECK( !actor.OnStage() );
147 view.SetParentOrigin(ParentOrigin::CENTER);
148 view.SetSize(Stage::GetCurrent().GetSize());
150 Stage::GetCurrent().Add(view);
152 DALI_TEST_CHECK( actor.OnStage() );
156 DALI_TEST_CHECK( !actor.OnStage() );
160 // Positive test case for a method
161 int UtcDaliGaussianBlurActivateDeactivate(void)
163 ToolkitTestApplication application;
164 tet_infoline("UtcDaliGaussianBlurActivateDeactivate");
166 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
167 DALI_TEST_CHECK( view );
169 RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
170 DALI_TEST_CHECK( 1u == taskList.GetTaskCount() );
172 view.SetParentOrigin(ParentOrigin::CENTER);
173 view.SetSize(Stage::GetCurrent().GetSize());
174 view.Add(Actor::New());
175 Stage::GetCurrent().Add(view);
178 RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList();
179 DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() );
183 RenderTaskList taskList3 = Stage::GetCurrent().GetRenderTaskList();
184 DALI_TEST_CHECK( 1u == taskList3.GetTaskCount() );
188 // Positive test case for a method
189 int UtcDaliGaussianBlurViewSetGetBackgroundColor(void)
191 ToolkitTestApplication application;
192 tet_infoline("UtcDaliGaussianBlurViewSetGetBackgroundColor");
194 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
195 DALI_TEST_CHECK( view );
197 view.SetBackgroundColor(Dali::Color::RED);
198 Vector4 color = view.GetBackgroundColor();
199 DALI_TEST_CHECK( color == Dali::Color::RED );
203 // Positive test case for a method
204 int UtcDaliGaussianBlurViewSetGetRenderTarget(void)
206 ToolkitTestApplication application;
207 tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget");
209 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
210 DALI_TEST_CHECK( view );
212 view.SetParentOrigin(ParentOrigin::CENTER);
213 view.SetSize(Stage::GetCurrent().GetSize());
214 view.Add(Actor::New());
215 Stage::GetCurrent().Add(view);
218 FrameBufferImage renderTarget = FrameBufferImage::New( 480.0f, 800.0f, Pixel::RGB888 );
219 view.SetUserImageAndOutputRenderTarget(ResourceImage::New(TEST_IMAGE_FILE_NAME), renderTarget);
220 DALI_TEST_CHECK( view.GetBlurredRenderTarget() == renderTarget );
224 int UtcDaliGaussianBlurViewActivateOnce(void)
226 ToolkitTestApplication application;
227 tet_infoline("UtcDaliGaussianBlurActivateOnce");
229 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
230 DALI_TEST_CHECK( view );
232 RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
233 DALI_TEST_CHECK( 1u == taskList.GetTaskCount() );
235 view.SetParentOrigin(ParentOrigin::CENTER);
236 view.SetSize(Stage::GetCurrent().GetSize());
237 view.Add(Actor::New());
238 Stage::GetCurrent().Add(view);
241 RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList();
242 DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() );
243 application.Render();
248 int UtcDaliGaussianBlurViewFinishedSignalN(void)
250 ToolkitTestApplication application;
251 tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget");
253 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
254 DALI_TEST_CHECK( view );
256 view.SetParentOrigin(ParentOrigin::CENTER);
257 view.SetSize(Stage::GetCurrent().GetSize());
258 view.Add(Actor::New());
259 Stage::GetCurrent().Add(view);
262 TestCallback callback( view );
263 DALI_TEST_CHECK( callback.mFinished == false );
268 application.SendNotification();
270 // FinishedSignal is only for ActivateOnce()
271 DALI_TEST_CHECK( callback.mFinished == false );