2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
22 #include <dali/public-api/dali-core.h>
23 #include <dali-toolkit/dali-toolkit.h>
25 #include <dali-toolkit-test-suite-utils.h>
28 using namespace Dali::Toolkit;
32 const char* TEST_IMAGE_FILE_NAME = DALI_IMAGE_DIR "gallery_image_01.jpg";
35 static void Startup();
36 static void Cleanup();
39 void (*tet_startup)() = Startup;
40 void (*tet_cleanup)() = Cleanup;
43 static void UtcDaliGaussianBlurViewUninitialized();
44 static void UtcDaliGaussianBlurViewNew();
45 static void UtcDaliGaussianBlurViewDownCast();
46 static void UtcDaliGaussianBlurViewPropertyNames();
47 static void UtcDaliGaussianBlurViewAddRemove();
48 static void UtcDaliGaussianBlurActivateDeactivate();
49 static void UtcDaliGaussianBlurViewSetGetBackgroundColor();
50 static void UtcDaliGaussianBlurViewSetGetRenderTarget();
53 POSITIVE_TC_IDX = 0x01,
57 // Add test functionality for all APIs in the class (Positive and Negative)
59 struct tet_testlist tet_testlist[] = {
60 { UtcDaliGaussianBlurViewUninitialized, NEGATIVE_TC_IDX },
61 { UtcDaliGaussianBlurViewNew, POSITIVE_TC_IDX },
62 { UtcDaliGaussianBlurViewDownCast, POSITIVE_TC_IDX },
63 { UtcDaliGaussianBlurViewPropertyNames, POSITIVE_TC_IDX },
64 { UtcDaliGaussianBlurViewAddRemove, POSITIVE_TC_IDX },
65 { UtcDaliGaussianBlurActivateDeactivate, POSITIVE_TC_IDX },
66 { UtcDaliGaussianBlurViewSetGetBackgroundColor, POSITIVE_TC_IDX },
67 { UtcDaliGaussianBlurViewSetGetRenderTarget, POSITIVE_TC_IDX },
72 // Called only once before first test is run.
77 // Called only once after last test is run
82 // Negative test case for a method
83 static void UtcDaliGaussianBlurViewUninitialized()
85 ToolkitTestApplication application;
86 tet_infoline("UtcDaliGaussianBlurViewUninitialized");
88 Toolkit::GaussianBlurView view;
92 // New() must be called to create a GaussianBlurView or it wont be valid.
93 Actor a = Actor::New();
95 DALI_TEST_CHECK( false );
97 catch (Dali::DaliException& e)
99 // Tests that a negative test of an assertion succeeds
100 tet_printf("Assertion %s failed at %s\n", e.mCondition.c_str(), e.mLocation.c_str());
101 DALI_TEST_CHECK(!view);
105 // Positive test case for a method
106 static void UtcDaliGaussianBlurViewNew()
108 ToolkitTestApplication application;
109 tet_infoline("UtcDaliGaussianBlurViewNew");
111 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
112 DALI_TEST_CHECK( view );
114 Toolkit::GaussianBlurView view2 = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, false);
115 DALI_TEST_CHECK( view2 );
118 // Positive test case for a method
119 static void UtcDaliGaussianBlurViewDownCast()
121 ToolkitTestApplication application;
122 tet_infoline("UtcDaliGaussianBlurViewDownCast");
124 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
125 BaseHandle handle(view);
127 Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast( handle );
128 DALI_TEST_CHECK( view );
129 DALI_TEST_CHECK( gaussianBlurView );
130 DALI_TEST_CHECK( gaussianBlurView == view );
134 // Positive test case for a method
135 static void UtcDaliGaussianBlurViewPropertyNames()
137 ToolkitTestApplication application;
138 tet_infoline("UtcDaliGaussianBlurViewPropertyNames");
140 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
141 DALI_TEST_CHECK( view );
143 // Check the names, this names are used in the shader code,
144 // if they change in the shader code, then it has to be updated here.
145 DALI_TEST_EQUALS( view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION );
148 // Positive test case for a method
149 static void UtcDaliGaussianBlurViewAddRemove()
151 ToolkitTestApplication application;
152 tet_infoline("UtcDaliGaussianBlurViewAddRemove");
154 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
155 DALI_TEST_CHECK( view );
157 Actor actor = Actor::New();
158 DALI_TEST_CHECK( !actor.OnStage() );
161 view.SetParentOrigin(ParentOrigin::CENTER);
162 view.SetSize(Stage::GetCurrent().GetSize());
164 Stage::GetCurrent().Add(view);
166 DALI_TEST_CHECK( actor.OnStage() );
170 DALI_TEST_CHECK( !actor.OnStage() );
173 // Positive test case for a method
174 static void UtcDaliGaussianBlurActivateDeactivate()
176 ToolkitTestApplication application;
177 tet_infoline("UtcDaliGaussianBlurActivateDeactivate");
179 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
180 DALI_TEST_CHECK( view );
182 RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
183 DALI_TEST_CHECK( 1u == taskList.GetTaskCount() );
185 view.SetParentOrigin(ParentOrigin::CENTER);
186 view.SetSize(Stage::GetCurrent().GetSize());
187 view.Add(Actor::New());
188 Stage::GetCurrent().Add(view);
191 RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList();
192 DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() );
196 RenderTaskList taskList3 = Stage::GetCurrent().GetRenderTaskList();
197 DALI_TEST_CHECK( 1u == taskList3.GetTaskCount() );
200 // Positive test case for a method
201 static void UtcDaliGaussianBlurViewSetGetBackgroundColor()
203 ToolkitTestApplication application;
204 tet_infoline("UtcDaliGaussianBlurViewSetGetBackgroundColor");
206 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
207 DALI_TEST_CHECK( view );
209 view.SetBackgroundColor(Dali::Color::RED);
210 Vector4 color = view.GetBackgroundColor();
211 DALI_TEST_CHECK( color == Dali::Color::RED );
214 // Positive test case for a method
215 static void UtcDaliGaussianBlurViewSetGetRenderTarget()
217 ToolkitTestApplication application;
218 tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget");
220 Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
221 DALI_TEST_CHECK( view );
223 view.SetParentOrigin(ParentOrigin::CENTER);
224 view.SetSize(Stage::GetCurrent().GetSize());
225 view.Add(Actor::New());
226 Stage::GetCurrent().Add(view);
229 FrameBufferImage renderTarget = FrameBufferImage::New( 480.0f, 800.0f, Pixel::RGB888 );
230 view.SetUserImageAndOutputRenderTarget(Image::New(TEST_IMAGE_FILE_NAME), renderTarget);
231 DALI_TEST_CHECK( view.GetBlurredRenderTarget() == renderTarget );