Merge "fix issue in negative line spacing with key arrow down" into devel/master
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-Magnifier.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/magnifier/magnifier.h>
21 #include <stdlib.h>
22 #include <iostream>
23 #include <sstream>
24
25 using namespace Dali;
26 using namespace Toolkit;
27
28 void dali_magnifier_startup(void)
29 {
30   test_return_value = TET_UNDEF;
31 }
32
33 void dali_magnifier_cleanup(void)
34 {
35   test_return_value = TET_PASS;
36 }
37
38 int UtcDaliMagnifierNew(void)
39 {
40   ToolkitTestApplication application;
41
42   Magnifier magnifier;
43   DALI_TEST_CHECK(!magnifier);
44
45   magnifier = Magnifier::New();
46   DALI_TEST_CHECK(magnifier);
47
48   application.GetScene().Add(magnifier);
49
50   application.SendNotification();
51   application.Render();
52
53   END_TEST;
54 }
55
56 int UtcDaliMagnifierCopyAndAssignment(void)
57 {
58   ToolkitTestApplication application;
59
60   Magnifier view = Magnifier::New();
61   DALI_TEST_CHECK(view);
62
63   Magnifier copy(view);
64   DALI_TEST_CHECK(copy == view);
65
66   Magnifier assign;
67   DALI_TEST_CHECK(!assign);
68   assign = view;
69   DALI_TEST_CHECK(assign == view);
70
71   // Self assignment
72   assign = assign;
73   DALI_TEST_CHECK(assign);
74   DALI_TEST_CHECK(assign == view);
75
76   END_TEST;
77 }
78
79 int UtcDaliMagnifierDownCast(void)
80 {
81   ToolkitTestApplication application;
82
83   BaseHandle view = Magnifier::New();
84   DALI_TEST_CHECK(Magnifier::DownCast(view));
85
86   BaseHandle empty;
87   DALI_TEST_CHECK(!Magnifier::DownCast(empty));
88
89   BaseHandle another = Actor::New();
90   DALI_TEST_CHECK(!Magnifier::DownCast(another));
91
92   END_TEST;
93 }
94
95 int UtcDaliMagnifierTypeRegistry(void)
96 {
97   ToolkitTestApplication application;
98
99   TypeRegistry typeRegistry = TypeRegistry::Get();
100   DALI_TEST_CHECK(typeRegistry);
101
102   TypeInfo typeInfo = typeRegistry.GetTypeInfo("Magnifier");
103   DALI_TEST_CHECK(typeInfo);
104
105   BaseHandle handle = typeInfo.CreateInstance();
106   DALI_TEST_CHECK(handle);
107
108   Magnifier view = Magnifier::DownCast(handle);
109   DALI_TEST_CHECK(view);
110
111   END_TEST;
112 }
113
114 int UtcDaliMagnifierSetSourceActorP(void)
115 {
116   ToolkitTestApplication application;
117
118   Integration::Scene stage = application.GetScene();
119
120   Magnifier view = Magnifier::New();
121   stage.Add(view);
122
123   application.SendNotification();
124   application.Render();
125
126   RenderTaskList renderTaskList = stage.GetRenderTaskList();
127   DALI_TEST_CHECK(renderTaskList.GetTaskCount() > 1);
128
129   Actor actor = Actor::New();
130   stage.Add(actor);
131   DALI_TEST_CHECK(stage.GetRenderTaskList().GetTask(1).GetSourceActor() != actor);
132
133   view.SetSourceActor(actor);
134
135   application.SendNotification();
136   application.Render();
137
138   DALI_TEST_EQUALS(stage.GetRenderTaskList().GetTask(1).GetSourceActor(), actor, TEST_LOCATION);
139
140   END_TEST;
141 }
142
143 int UtcDaliMagnifierSetSourceActorN(void)
144 {
145   ToolkitTestApplication application;
146
147   Magnifier view;
148
149   try
150   {
151     view.SetSourceActor(Actor::New());
152     DALI_TEST_CHECK(false); // should not get here
153   }
154   catch(...)
155   {
156     DALI_TEST_CHECK(true);
157   }
158
159   END_TEST;
160 }
161
162 int UtcDaliMagnifierFrameVisibility(void)
163 {
164   ToolkitTestApplication application;
165
166   Integration::Scene stage = application.GetScene();
167
168   Magnifier view = Magnifier::New();
169   stage.Add(view);
170
171   application.SendNotification();
172   application.Render();
173
174   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::FRAME_VISIBILITY).Get<bool>(), true, TEST_LOCATION);
175
176   view.SetProperty(Magnifier::Property::FRAME_VISIBILITY, false);
177   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::FRAME_VISIBILITY).Get<bool>(), false, TEST_LOCATION);
178
179   application.SendNotification();
180   application.Render();
181
182   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::FRAME_VISIBILITY).Get<bool>(), false, TEST_LOCATION);
183
184   view.SetProperty(Magnifier::Property::FRAME_VISIBILITY, true);
185   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::FRAME_VISIBILITY).Get<bool>(), true, TEST_LOCATION);
186
187   application.SendNotification();
188   application.Render();
189
190   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::FRAME_VISIBILITY).Get<bool>(), true, TEST_LOCATION);
191
192   END_TEST;
193 }
194
195 int UtcDaliMagnifierMagnificationFactor(void)
196 {
197   ToolkitTestApplication application;
198
199   Integration::Scene stage = application.GetScene();
200
201   Magnifier view = Magnifier::New();
202   stage.Add(view);
203
204   application.SendNotification();
205   application.Render();
206
207   float magnificationFactor(200.0f);
208
209   DALI_TEST_CHECK(view.GetProperty(Magnifier::Property::MAGNIFICATION_FACTOR).Get<float>() != magnificationFactor);
210
211   view.SetProperty(Magnifier::Property::MAGNIFICATION_FACTOR, magnificationFactor);
212   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::MAGNIFICATION_FACTOR).Get<float>(), magnificationFactor, TEST_LOCATION);
213
214   application.SendNotification();
215   application.Render();
216
217   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::MAGNIFICATION_FACTOR).Get<float>(), magnificationFactor, TEST_LOCATION);
218
219   view.SetProperty(Magnifier::Property::MAGNIFICATION_FACTOR, 1.0f);
220   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::MAGNIFICATION_FACTOR).Get<float>(), 1.0f, TEST_LOCATION);
221
222   application.SendNotification();
223   application.Render();
224
225   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::MAGNIFICATION_FACTOR).Get<float>(), 1.0f, TEST_LOCATION);
226
227   END_TEST;
228 }
229
230 int UtcDaliMagnifierSourcePosition(void)
231 {
232   ToolkitTestApplication application;
233
234   Integration::Scene stage = application.GetScene();
235
236   Magnifier view = Magnifier::New();
237   stage.Add(view);
238
239   application.SendNotification();
240   application.Render();
241
242   Vector3 position(100.0f, 200.0f, 300.0f);
243
244   DALI_TEST_CHECK(view.GetProperty(Magnifier::Property::SOURCE_POSITION).Get<Vector3>() != position);
245
246   view.SetProperty(Magnifier::Property::SOURCE_POSITION, position);
247   application.SendNotification();
248   application.Render();
249   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::SOURCE_POSITION).Get<Vector3>(), position, TEST_LOCATION);
250
251   view.SetProperty(Magnifier::Property::SOURCE_POSITION, Vector3::ONE);
252   application.SendNotification();
253   application.Render();
254   DALI_TEST_EQUALS(view.GetProperty(Magnifier::Property::SOURCE_POSITION).Get<Vector3>(), Vector3::ONE, TEST_LOCATION);
255
256   END_TEST;
257 }
258
259 int UtcDaliMagnifierOnSizeSet(void)
260 {
261   ToolkitTestApplication application;
262
263   Magnifier view = Magnifier::New();
264
265   application.GetScene().Add(view);
266
267   application.SendNotification();
268   application.Render();
269
270   Vector3 size(200.0f, 300.0f, 0.0f);
271   view.SetProperty(Actor::Property::SIZE, size);
272
273   application.SendNotification();
274   application.Render();
275
276   DALI_TEST_EQUALS(view.GetCurrentProperty<Vector3>(Actor::Property::SIZE), size, TEST_LOCATION);
277
278   END_TEST;
279 }