[dali_2.3.19] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-BloomView.cpp
1 /*
2  * Copyright (c) 2022 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 <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/dali-toolkit.h>
20 #include <dali-toolkit/devel-api/controls/bloom-view/bloom-view.h>
21 #include <stdlib.h>
22 #include <iostream>
23
24 using namespace Dali;
25 using namespace Dali::Toolkit;
26
27 void bloom_view_startup(void)
28 {
29   test_return_value = TET_UNDEF;
30 }
31
32 void bloom_view_cleanup(void)
33 {
34   test_return_value = TET_PASS;
35 }
36
37 // Negative test case for a method
38 int UtcDaliBloomViewUninitialized(void)
39 {
40   ToolkitTestApplication application;
41   tet_infoline(" UtcDaliBloomViewUninitialized");
42
43   Toolkit::BloomView view;
44
45   try
46   {
47     // New() must be called to create a BloomView or it wont be valid.
48     Actor a = Actor::New();
49     view.Add(a);
50     DALI_TEST_CHECK(false);
51   }
52   catch(Dali::DaliException& e)
53   {
54     // Tests that a negative test of an assertion succeeds
55     DALI_TEST_PRINT_ASSERT(e);
56     DALI_TEST_CHECK(!view);
57   }
58   END_TEST;
59 }
60
61 // Positive test case for a method
62 int UtcDaliBloomViewNew(void)
63 {
64   ToolkitTestApplication application;
65   tet_infoline(" UtcDaliBloomViewNew");
66
67   Toolkit::BloomView view = Toolkit::BloomView::New();
68   DALI_TEST_CHECK(view);
69
70   Toolkit::BloomView view2 = Toolkit::BloomView::New(10, 1.0f, Pixel::RGB888, 0.5f, 0.5f);
71   DALI_TEST_CHECK(view2);
72   END_TEST;
73 }
74
75 // Positive test case for a method
76 int UtcDaliBloomViewDownCast(void)
77 {
78   ToolkitTestApplication application;
79   tet_infoline(" UtcDaliBloomViewDownCast");
80
81   Toolkit::BloomView view = Toolkit::BloomView::New();
82   BaseHandle         handle(view);
83
84   Toolkit::BloomView bloomView = Toolkit::BloomView::DownCast(handle);
85   DALI_TEST_CHECK(view);
86   DALI_TEST_CHECK(bloomView);
87   DALI_TEST_CHECK(bloomView == view);
88   END_TEST;
89 }
90
91 // Positive test case for a method
92 int UtcDaliBloomViewPropertyNames(void)
93 {
94   ToolkitTestApplication application;
95   tet_infoline(" UtcDaliBloomViewPropertyNames");
96
97   Toolkit::BloomView view = Toolkit::BloomView::New();
98   DALI_TEST_CHECK(view);
99
100   // Check the names, this names are used in the shader code,
101   // if they change in the shader code, then it has to be updated here.
102   DALI_TEST_EQUALS(view.GetBloomThresholdPropertyIndex(), view.GetPropertyIndex("uBloomThreshold"), TEST_LOCATION);
103   DALI_TEST_EQUALS(view.GetBlurStrengthPropertyIndex(), view.GetPropertyIndex("BlurStrengthProperty"), TEST_LOCATION);
104   DALI_TEST_EQUALS(view.GetBloomIntensityPropertyIndex(), view.GetPropertyIndex("uBloomIntensity"), TEST_LOCATION);
105   DALI_TEST_EQUALS(view.GetBloomSaturationPropertyIndex(), view.GetPropertyIndex("uBloomSaturation"), TEST_LOCATION);
106   DALI_TEST_EQUALS(view.GetImageIntensityPropertyIndex(), view.GetPropertyIndex("uImageIntensity"), TEST_LOCATION);
107   DALI_TEST_EQUALS(view.GetImageSaturationPropertyIndex(), view.GetPropertyIndex("uImageSaturation"), TEST_LOCATION);
108   END_TEST;
109 }
110
111 // Positive test case for a method
112 int UtcDaliBloomViewAddRemove(void)
113 {
114   ToolkitTestApplication application;
115   tet_infoline(" UtcDaliBloomViewAddRemove");
116
117   Toolkit::BloomView view = Toolkit::BloomView::New();
118   DALI_TEST_CHECK(view);
119
120   Actor actor = Actor::New();
121   DALI_TEST_CHECK(!actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
122
123   view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
124   view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize());
125   view.Add(actor);
126   application.GetScene().Add(view);
127
128   DALI_TEST_CHECK(actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
129
130   view.Remove(actor);
131
132   DALI_TEST_CHECK(!actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
133   END_TEST;
134 }
135
136 // Positive test case for a method
137 int UtcDaliBloomActivateDeactivate(void)
138 {
139   ToolkitTestApplication application;
140   tet_infoline(" UtcDaliBloomActivateDeactivate");
141
142   Toolkit::BloomView view = Toolkit::BloomView::New();
143   DALI_TEST_CHECK(view);
144
145   RenderTaskList taskList = application.GetScene().GetRenderTaskList();
146   DALI_TEST_CHECK(1u == taskList.GetTaskCount());
147
148   view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
149   view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize());
150   view.Add(Actor::New());
151   application.GetScene().Add(view);
152   view.Activate();
153
154   RenderTaskList taskList2 = application.GetScene().GetRenderTaskList();
155   DALI_TEST_CHECK(1u != taskList2.GetTaskCount());
156
157   view.Deactivate();
158
159   RenderTaskList taskList3 = application.GetScene().GetRenderTaskList();
160   DALI_TEST_CHECK(1u == taskList3.GetTaskCount());
161   END_TEST;
162 }
163
164 int UtcDaliBloomCopyAndAssignment(void)
165 {
166   ToolkitTestApplication application;
167
168   BloomView view = Toolkit::BloomView::New();
169   DALI_TEST_CHECK(view);
170
171   BloomView copy(view);
172   DALI_TEST_CHECK(view == copy);
173
174   BloomView assign;
175   DALI_TEST_CHECK(!assign);
176
177   assign = copy;
178   DALI_TEST_CHECK(assign == view);
179
180   END_TEST;
181 }
182
183 int UtcDaliBloomTypeRegistry(void)
184 {
185   ToolkitTestApplication application;
186
187   TypeRegistry typeRegistry = TypeRegistry::Get();
188   DALI_TEST_CHECK(typeRegistry);
189
190   TypeInfo typeInfo = typeRegistry.GetTypeInfo("BloomView");
191   DALI_TEST_CHECK(typeInfo);
192
193   BaseHandle handle = typeInfo.CreateInstance();
194   DALI_TEST_CHECK(handle);
195
196   BloomView view = BloomView::DownCast(handle);
197   DALI_TEST_CHECK(view);
198
199   END_TEST;
200 }
201
202 int UtcDaliBloomOnSizeSet(void)
203 {
204   ToolkitTestApplication application;
205
206   BloomView view = Toolkit::BloomView::New();
207
208   application.GetScene().Add(view);
209
210   application.SendNotification();
211   application.Render();
212
213   Vector3 size(200.0f, 300.0f, 0.0f);
214   view.SetProperty(Actor::Property::SIZE, size);
215
216   application.SendNotification();
217   application.Render();
218
219   DALI_TEST_EQUALS(view.GetCurrentProperty<Vector3>(Actor::Property::SIZE), size, TEST_LOCATION);
220
221   END_TEST;
222 }