Merge remote-tracking branch 'origin/tizen' into new_text
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-GaussianBlurView.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <iostream>
19 #include <stdlib.h>
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22
23 using namespace Dali;
24 using namespace Dali::Toolkit;
25
26 namespace
27 {
28 const char* TEST_IMAGE_FILE_NAME =  "gallery_image_01.jpg";
29 } // namespace
30
31 void utc_gaussian_blur_view_startup(void)
32 {
33   test_return_value = TET_UNDEF;
34 }
35
36 void utc_gaussian_blur_view_cleanup(void)
37 {
38   test_return_value = TET_PASS;
39 }
40
41
42
43 // Negative test case for a method
44 int UtcDaliGaussianBlurViewUninitialized(void)
45 {
46   ToolkitTestApplication application;
47   tet_infoline("UtcDaliGaussianBlurViewUninitialized");
48
49   Toolkit::GaussianBlurView view;
50
51   try
52   {
53     // New() must be called to create a GaussianBlurView or it wont be valid.
54     Actor a = Actor::New();
55     view.Add( a );
56     DALI_TEST_CHECK( false );
57   }
58   catch (Dali::DaliException& e)
59   {
60     // Tests that a negative test of an assertion succeeds
61     DALI_TEST_PRINT_ASSERT( e );
62     DALI_TEST_CHECK(!view);
63   }
64   END_TEST;
65 }
66
67 // Positive test case for a method
68 int UtcDaliGaussianBlurViewNew(void)
69 {
70   ToolkitTestApplication application;
71   tet_infoline("UtcDaliGaussianBlurViewNew");
72
73   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
74   DALI_TEST_CHECK( view );
75
76   Toolkit::GaussianBlurView view2 = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, false);
77   DALI_TEST_CHECK( view2 );
78   END_TEST;
79 }
80
81 // Positive test case for a method
82 int UtcDaliGaussianBlurViewDownCast(void)
83 {
84   ToolkitTestApplication application;
85   tet_infoline("UtcDaliGaussianBlurViewDownCast");
86
87   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
88   BaseHandle handle(view);
89
90   Toolkit::GaussianBlurView gaussianBlurView = Toolkit::GaussianBlurView::DownCast( handle );
91   DALI_TEST_CHECK( view );
92   DALI_TEST_CHECK( gaussianBlurView );
93   DALI_TEST_CHECK( gaussianBlurView == view );
94   END_TEST;
95 }
96
97
98 // Positive test case for a method
99 int UtcDaliGaussianBlurViewPropertyNames(void)
100 {
101   ToolkitTestApplication application;
102   tet_infoline("UtcDaliGaussianBlurViewPropertyNames");
103
104   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
105   DALI_TEST_CHECK( view );
106
107   // Check the names, this names are used in the shader code,
108   // if they change in the shader code, then it has to be updated here.
109   DALI_TEST_EQUALS( view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("GaussianBlurStrengthPropertyName"), TEST_LOCATION );
110   END_TEST;
111 }
112
113 // Positive test case for a method
114 int UtcDaliGaussianBlurViewAddRemove(void)
115 {
116   ToolkitTestApplication application;
117   tet_infoline("UtcDaliGaussianBlurViewAddRemove");
118
119   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
120   DALI_TEST_CHECK( view );
121
122   Actor actor = Actor::New();
123   DALI_TEST_CHECK( !actor.OnStage() );
124
125
126   view.SetParentOrigin(ParentOrigin::CENTER);
127   view.SetSize(Stage::GetCurrent().GetSize());
128   view.Add(actor);
129   Stage::GetCurrent().Add(view);
130
131   DALI_TEST_CHECK( actor.OnStage() );
132
133   view.Remove(actor);
134
135   DALI_TEST_CHECK( !actor.OnStage() );
136   END_TEST;
137 }
138
139 // Positive test case for a method
140 int UtcDaliGaussianBlurActivateDeactivate(void)
141 {
142   ToolkitTestApplication application;
143   tet_infoline("UtcDaliGaussianBlurActivateDeactivate");
144
145   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
146   DALI_TEST_CHECK( view );
147
148   RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
149   DALI_TEST_CHECK( 1u == taskList.GetTaskCount() );
150
151   view.SetParentOrigin(ParentOrigin::CENTER);
152   view.SetSize(Stage::GetCurrent().GetSize());
153   view.Add(Actor::New());
154   Stage::GetCurrent().Add(view);
155   view.Activate();
156
157   RenderTaskList taskList2 = Stage::GetCurrent().GetRenderTaskList();
158   DALI_TEST_CHECK( 1u != taskList2.GetTaskCount() );
159
160   view.Deactivate();
161
162   RenderTaskList taskList3 = Stage::GetCurrent().GetRenderTaskList();
163   DALI_TEST_CHECK( 1u == taskList3.GetTaskCount() );
164   END_TEST;
165 }
166
167 // Positive test case for a method
168 int UtcDaliGaussianBlurViewSetGetBackgroundColor(void)
169 {
170   ToolkitTestApplication application;
171   tet_infoline("UtcDaliGaussianBlurViewSetGetBackgroundColor");
172
173   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New();
174   DALI_TEST_CHECK( view );
175
176   view.SetBackgroundColor(Dali::Color::RED);
177   Vector4 color = view.GetBackgroundColor();
178   DALI_TEST_CHECK( color == Dali::Color::RED );
179   END_TEST;
180 }
181
182 // Positive test case for a method
183 int UtcDaliGaussianBlurViewSetGetRenderTarget(void)
184 {
185   ToolkitTestApplication application;
186   tet_infoline("UtcDaliGaussianBlurViewSetGetRenderTarget");
187
188   Toolkit::GaussianBlurView view = Toolkit::GaussianBlurView::New(5, 1.5f, Pixel::RGB888, 0.5f, 0.5f, true);
189   DALI_TEST_CHECK( view );
190
191   view.SetParentOrigin(ParentOrigin::CENTER);
192   view.SetSize(Stage::GetCurrent().GetSize());
193   view.Add(Actor::New());
194   Stage::GetCurrent().Add(view);
195   view.Activate();
196
197   FrameBufferImage renderTarget = FrameBufferImage::New( 480.0f, 800.0f, Pixel::RGB888 );
198   view.SetUserImageAndOutputRenderTarget(Image::New(TEST_IMAGE_FILE_NAME), renderTarget);
199   DALI_TEST_CHECK( view.GetBlurredRenderTarget() == renderTarget );
200   END_TEST;
201 }