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.
23 #include <dali/public-api/dali-core.h>
24 #include <dali-toolkit/dali-toolkit.h>
26 #include <dali-toolkit-test-suite-utils.h>
29 using namespace Dali::Toolkit;
33 const char* TEST_IMAGE_FILE_NAME = DALI_IMAGE_DIR "gallery_image_01.jpg";
36 static void Startup();
37 static void Cleanup();
40 void (*tet_startup)() = Startup;
41 void (*tet_cleanup)() = Cleanup;
44 static void UtcDaliGaussianBlurViewUninitialized();
45 static void UtcDaliGaussianBlurViewNew();
46 static void UtcDaliGaussianBlurViewDownCast();
47 static void UtcDaliGaussianBlurViewPropertyNames();
48 static void UtcDaliGaussianBlurViewAddRemove();
49 static void UtcDaliGaussianBlurActivateDeactivate();
50 static void UtcDaliGaussianBlurViewSetGetBackgroundColor();
51 static void UtcDaliGaussianBlurViewSetGetRenderTarget();
54 POSITIVE_TC_IDX = 0x01,
58 // Add test functionality for all APIs in the class (Positive and Negative)
60 struct tet_testlist tet_testlist[] = {
61 { UtcDaliGaussianBlurViewUninitialized, NEGATIVE_TC_IDX },
62 { UtcDaliGaussianBlurViewNew, POSITIVE_TC_IDX },
63 { UtcDaliGaussianBlurViewDownCast, POSITIVE_TC_IDX },
64 { UtcDaliGaussianBlurViewPropertyNames, POSITIVE_TC_IDX },
65 { UtcDaliGaussianBlurViewAddRemove, POSITIVE_TC_IDX },
66 { UtcDaliGaussianBlurActivateDeactivate, POSITIVE_TC_IDX },
67 { UtcDaliGaussianBlurViewSetGetBackgroundColor, POSITIVE_TC_IDX },
68 { UtcDaliGaussianBlurViewSetGetRenderTarget, POSITIVE_TC_IDX },
73 // Called only once before first test is run.
78 // Called only once after last test is run
83 // Negative test case for a method
84 static void UtcDaliGaussianBlurViewUninitialized()
86 ToolkitTestApplication application;
87 tet_infoline("UtcDaliGaussianBlurViewUninitialized");
89 Toolkit::GaussianBlurView view;
93 // New() must be called to create a GaussianBlurView or it wont be valid.
94 Actor a = Actor::New();
96 DALI_TEST_CHECK( false );
98 catch (Dali::DaliException& e)
100 // Tests that a negative test of an assertion succeeds
101 tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
102 DALI_TEST_CHECK(!view);
106 // Positive test case for a method
107 static void UtcDaliGaussianBlurViewNew()
109 ToolkitTestApplication application;
110 tet_infoline("UtcDaliGaussianBlurViewNew");
112 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
113 DALI_TEST_CHECK( view );
115 Toolkit::GaussianBlurView view2 = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, false);
116 DALI_TEST_CHECK( view2 );
119 // Positive test case for a method
120 static void UtcDaliGaussianBlurViewDownCast()
122 ToolkitTestApplication application;
123 tet_infoline("UtcDaliGaussianBlurViewDownCast");
125 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
126 BaseHandle handle(view);
128 Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast( handle );
129 DALI_TEST_CHECK( view );
130 DALI_TEST_CHECK( gaussianBlurView );
131 DALI_TEST_CHECK( gaussianBlurView == view );
135 // Positive test case for a method
136 static void UtcDaliGaussianBlurViewPropertyNames()
138 ToolkitTestApplication application;
139 tet_infoline("UtcDaliGaussianBlurViewPropertyNames");
141 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
142 DALI_TEST_CHECK( view );
144 // Check the names, this names are used in the shader code,
145 // if they change in the shader code, then it has to be updated here.
146 DALI_TEST_EQUALS( view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION );
149 // Positive test case for a method
150 static void UtcDaliGaussianBlurViewAddRemove()
152 ToolkitTestApplication application;
153 tet_infoline("UtcDaliGaussianBlurViewAddRemove");
155 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
156 DALI_TEST_CHECK( view );
158 Actor actor = Actor::New();
159 DALI_TEST_CHECK( !actor.OnStage() );
162 view.SetParentOrigin(ParentOrigin::CENTER);
163 view.SetSize(Stage::GetCurrent().GetSize());
165 Stage::GetCurrent().Add(view);
167 DALI_TEST_CHECK( actor.OnStage() );
171 DALI_TEST_CHECK( !actor.OnStage() );
174 // Positive test case for a method
175 static void UtcDaliGaussianBlurActivateDeactivate()
177 ToolkitTestApplication application;
178 tet_infoline("UtcDaliGaussianBlurActivateDeactivate");
180 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
181 DALI_TEST_CHECK( view );
183 RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
184 DALI_TEST_CHECK( 1u == taskList.GetTaskCount() );
186 view.SetParentOrigin(ParentOrigin::CENTER);
187 view.SetSize(Stage::GetCurrent().GetSize());
188 view.Add(Actor::New());
189 Stage::GetCurrent().Add(view);
192 RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList();
193 DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() );
197 RenderTaskList taskList3 = Stage::GetCurrent().GetRenderTaskList();
198 DALI_TEST_CHECK( 1u == taskList3.GetTaskCount() );
201 // Positive test case for a method
202 static void UtcDaliGaussianBlurViewSetGetBackgroundColor()
204 ToolkitTestApplication application;
205 tet_infoline("UtcDaliGaussianBlurViewSetGetBackgroundColor");
207 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
208 DALI_TEST_CHECK( view );
210 view.SetBackgroundColor(Dali::Color::RED);
211 Vector4 color = view.GetBackgroundColor();
212 DALI_TEST_CHECK( color == Dali::Color::RED );
215 // Positive test case for a method
216 static void UtcDaliGaussianBlurViewSetGetRenderTarget()
218 ToolkitTestApplication application;
219 tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget");
221 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
222 DALI_TEST_CHECK( view );
224 view.SetParentOrigin(ParentOrigin::CENTER);
225 view.SetSize(Stage::GetCurrent().GetSize());
226 view.Add(Actor::New());
227 Stage::GetCurrent().Add(view);
230 FrameBufferImage renderTarget = FrameBufferImage::New( 480.0f, 800.0f, Pixel::RGB888 );
231 view.SetUserImageAndOutputRenderTarget(Image::New(TEST_IMAGE_FILE_NAME), renderTarget);
232 DALI_TEST_CHECK( view.GetBlurredRenderTarget() == renderTarget );