2 * Copyright (c) 2021 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.
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22 #include <dali/devel-api/actors/actor-devel.h>
23 #include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
24 #include <dali-toolkit/public-api/transition/transition-set.h>
25 #include <dali-toolkit/public-api/transition/transition-base.h>
26 #include <dali-toolkit/public-api/transition/transition.h>
29 using namespace Dali::Toolkit;
33 const char* TEST_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/gallery-small-1.jpg";
37 // Functor to test whether a Finish signal is emitted
38 struct TransitionFinishCheck
40 TransitionFinishCheck(bool& signalReceived)
41 : mSignalReceived(signalReceived)
45 void operator()(TransitionSet& transitionSet)
47 mSignalReceived = true;
52 mSignalReceived = false;
55 void CheckSignalReceived()
59 tet_printf("Expected Finish signal was not received\n");
68 void CheckSignalNotReceived()
72 tet_printf("Unexpected Finish signal was received\n");
81 bool& mSignalReceived; // owned by individual tests
84 int UtcDaliTransitionSetGetProperty01(void)
86 ToolkitTestApplication application;
87 tet_infoline(" UtcDaliTransitionSetGetProperty01");
89 Control control1 = Control::New();
90 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
91 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
92 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
93 Property::Map controlProperty1;
94 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
95 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
96 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 50.f);
97 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 50.f);
98 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
99 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, 1.f);
100 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
102 Control control2 = Control::New();
103 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
104 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
105 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
106 Property::Map controlProperty2;
107 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
108 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
109 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
110 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 30.f);
111 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
112 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, -1.f);
113 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
115 application.GetScene().Add(control1);
116 application.GetScene().Add(control2);
118 application.SendNotification();
119 application.Render(20);
121 Transition transition = Transition::New(control1, control2, TimePeriod(-0.1f, -0.1f));
122 TimePeriod timePeriod = transition.GetTimePeriod();
123 DALI_TEST_EQUALS(0.0f, timePeriod.durationSeconds, TEST_LOCATION);
124 DALI_TEST_EQUALS(0.0f, timePeriod.delaySeconds, TEST_LOCATION);
126 transition.SetTimePeriod(TimePeriod(0.5f, 1.0f));
127 timePeriod = transition.GetTimePeriod();
128 DALI_TEST_EQUALS(1.0f, timePeriod.durationSeconds, TEST_LOCATION);
129 DALI_TEST_EQUALS(0.5f, timePeriod.delaySeconds, TEST_LOCATION);
131 DALI_TEST_EQUALS(Dali::AlphaFunction::DEFAULT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
132 transition.SetAlphaFunction(Dali::AlphaFunction::EASE_IN_OUT);
133 DALI_TEST_EQUALS(Dali::AlphaFunction::EASE_IN_OUT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
135 TransitionSet transitionSet = TransitionSet::New();
136 transitionSet.AddTransition(transition);
138 DALI_TEST_EQUALS(1, transitionSet.GetTransitionCount(), TEST_LOCATION);
139 DALI_TEST_EQUALS(transition, transitionSet.GetTransitionAt(0), TEST_LOCATION);
144 int UtcDaliTransitionSetGetProperty02(void)
146 ToolkitTestApplication application;
147 tet_infoline(" UtcDaliTransitionSetGetProperty02");
149 Control control1 = Control::New();
150 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
151 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
152 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
153 Property::Map controlProperty1;
154 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
155 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
156 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, Vector4(50.0f, 30.0f, 40.0f, 20.0f));
157 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 50.f);
158 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
159 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, -1.f);
160 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
162 Control control2 = Control::New();
163 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
164 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
165 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
166 Property::Map controlProperty2;
167 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
168 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
169 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, Vector4(32.f, 54.0f, 24.0f, 42.0f));
170 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 30.f);
171 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
172 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, -1.f);
173 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
175 application.GetScene().Add(control1);
176 application.GetScene().Add(control2);
178 application.SendNotification();
179 application.Render(20);
181 Transition transition = Transition::New(control1, control2, TimePeriod(-0.1f));
182 TimePeriod timePeriod = transition.GetTimePeriod();
183 DALI_TEST_EQUALS(0.0f, timePeriod.durationSeconds, TEST_LOCATION);
184 DALI_TEST_EQUALS(0.0f, timePeriod.delaySeconds, TEST_LOCATION);
186 transition.SetTimePeriod(TimePeriod(0.5f, 1.0f));
187 timePeriod = transition.GetTimePeriod();
188 DALI_TEST_EQUALS(1.0f, timePeriod.durationSeconds, TEST_LOCATION);
189 DALI_TEST_EQUALS(0.5f, timePeriod.delaySeconds, TEST_LOCATION);
191 DALI_TEST_EQUALS(Dali::AlphaFunction::DEFAULT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
192 transition.SetAlphaFunction(Dali::AlphaFunction::EASE_IN_OUT);
193 DALI_TEST_EQUALS(Dali::AlphaFunction::EASE_IN_OUT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
195 TransitionSet transitionSet = TransitionSet::New();
196 transitionSet.AddTransition(transition);
198 DALI_TEST_EQUALS(1, transitionSet.GetTransitionCount(), TEST_LOCATION);
199 DALI_TEST_EQUALS(transition, transitionSet.GetTransitionAt(0), TEST_LOCATION);
204 int UtcDaliTransitionBetweenControlPair(void)
206 ToolkitTestApplication application;
207 tet_infoline(" UtcDaliTransitionBetweenControlPair");
209 Vector3 destinationPosition(50, 50, 0);
210 Vector3 destinationSize(120, 120, 0);
211 Vector3 destinationScale(2, 1, 0);
212 Vector4 destinationColor(1.0f, 0.5f, 1.0f, 0.8f);
213 float destinationOpacity(0.8f);
214 float destinationRadius(50.f);
215 float destinationBorderlineWidth(80.0f);
216 Vector4 destinationBorderlineColor(0.5f, 1.0f, 0.5f, 0.3f);
217 float destinationBorderlineOffset(-1.0f);
218 Vector4 destinationRadiusV4 = Vector4(destinationRadius, destinationRadius, destinationRadius, destinationRadius);
220 Control control1 = Control::New();
221 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
222 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
223 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
224 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
225 control1.SetProperty(Actor::Property::SCALE, Vector3(1, 2, 0));
226 control1.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 1.0f, 1.0f, 0.5f));
227 control1.SetProperty(Actor::Property::OPACITY, 0.5f);
228 Property::Map controlProperty1;
229 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
230 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
231 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
232 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 60.f);
233 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
234 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, 1.f);
235 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
237 Control control2 = Control::New();
238 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
239 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
240 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
241 control2.SetProperty(Actor::Property::SIZE, destinationSize);
242 control2.SetProperty(Actor::Property::SCALE, destinationScale);
243 control2.SetProperty(Actor::Property::COLOR, destinationColor);
244 control2.SetProperty(Actor::Property::OPACITY, destinationOpacity);
245 Property::Map controlProperty2;
246 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
247 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
248 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, destinationRadius);
249 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, destinationBorderlineWidth);
250 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, destinationBorderlineColor);
251 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, destinationBorderlineOffset);
252 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
254 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
255 Property::Map backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
256 Vector4 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
257 DALI_TEST_EQUALS(destinationRadiusV4, cornerRadius, TEST_LOCATION);
258 float borderlineWidth = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH)->Get<float>();
259 DALI_TEST_EQUALS(destinationBorderlineWidth, borderlineWidth, TEST_LOCATION);
260 Vector4 borderlineColor = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_COLOR)->Get<Vector4>();
261 DALI_TEST_EQUALS(destinationBorderlineColor, borderlineColor, TEST_LOCATION);
262 float borderlineOffset = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET)->Get<float>();
263 DALI_TEST_EQUALS(destinationBorderlineOffset, borderlineOffset, TEST_LOCATION);
265 application.GetScene().Add(control1);
266 application.GetScene().Add(control2);
268 application.SendNotification();
269 application.Render(20);
271 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
272 TransitionSet transitionSet = TransitionSet::New();
273 transitionSet.AddTransition(transition);
274 transitionSet.Play();
276 bool signalReceived(false);
277 TransitionFinishCheck finishCheck(signalReceived);
278 transitionSet.FinishedSignal().Connect(&application, finishCheck);
280 application.SendNotification();
281 application.Render(50);
283 // We didn't expect the animation to finish yet
284 application.SendNotification();
285 finishCheck.CheckSignalNotReceived();
287 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
288 DALI_TEST_EQUALS(1, control2.GetRendererCount(), TEST_LOCATION);
289 Dali::Renderer renderer = control2.GetRendererAt(0);
290 Property::Index index = renderer.GetPropertyIndex(DevelVisual::Property::CORNER_RADIUS);
291 cornerRadius = renderer.GetCurrentProperty<Vector4>(index);
292 DALI_TEST_NOT_EQUALS(destinationRadiusV4, cornerRadius, 0.00001f, TEST_LOCATION);
293 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_WIDTH);
294 borderlineWidth = renderer.GetCurrentProperty<float>(index);
295 DALI_TEST_NOT_EQUALS(destinationBorderlineWidth, borderlineWidth, 0.00001f, TEST_LOCATION);
296 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_COLOR);
297 borderlineColor = renderer.GetCurrentProperty<Vector4>(index);
298 DALI_TEST_NOT_EQUALS(destinationBorderlineColor, borderlineColor, 0.00001f, TEST_LOCATION);
299 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_OFFSET);
300 borderlineOffset = renderer.GetCurrentProperty<float>(index);
301 DALI_TEST_NOT_EQUALS(destinationBorderlineOffset, borderlineOffset, 0.00001f, TEST_LOCATION);
303 application.SendNotification();
304 application.Render(700);
306 // We did expect the animation to finish
307 application.SendNotification();
308 finishCheck.CheckSignalReceived();
310 application.SendNotification();
311 application.Render(20);
313 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
314 DALI_TEST_EQUALS(destinationSize, control2.GetCurrentProperty<Vector3>(Actor::Property::SIZE), TEST_LOCATION);
315 DALI_TEST_EQUALS(destinationScale, control2.GetCurrentProperty<Vector3>(Actor::Property::SCALE), TEST_LOCATION);
316 DALI_TEST_EQUALS(destinationColor, control2.GetCurrentProperty<Vector4>(Actor::Property::COLOR), TEST_LOCATION);
317 DALI_TEST_EQUALS(destinationOpacity, control2.GetCurrentProperty<float>(Actor::Property::OPACITY), TEST_LOCATION);
318 DALI_TEST_EQUALS(1, control2.GetRendererCount(), TEST_LOCATION);
319 renderer = control2.GetRendererAt(0);
320 index = renderer.GetPropertyIndex(DevelVisual::Property::CORNER_RADIUS);
321 cornerRadius = renderer.GetCurrentProperty<Vector4>(index);
322 DALI_TEST_EQUALS(destinationRadiusV4, cornerRadius, TEST_LOCATION);
323 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_WIDTH);
324 borderlineWidth = renderer.GetCurrentProperty<float>(index);
325 DALI_TEST_EQUALS(destinationBorderlineWidth, borderlineWidth, TEST_LOCATION);
326 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_COLOR);
327 borderlineColor = renderer.GetCurrentProperty<Vector4>(index);
328 DALI_TEST_EQUALS(destinationBorderlineColor, borderlineColor, TEST_LOCATION);
329 index = renderer.GetPropertyIndex(DevelVisual::Property::BORDERLINE_OFFSET);
330 borderlineOffset = renderer.GetCurrentProperty<float>(index);
331 DALI_TEST_EQUALS(destinationBorderlineOffset, borderlineOffset, TEST_LOCATION);
336 int UtcDaliTransitionBetweenControlPairWithoutEmptySourceBackground(void)
338 ToolkitTestApplication application;
339 tet_infoline(" UtcDaliTransitionBetweenControlPair");
341 Vector4 destinationRadius(50.f, 30.f, 40.f, 0.f);
342 float destinationBorderlineWidth(40.f);
343 Vector4 destinationBorderlineColor(1.0f, 0.5f, 0.2f, 0.8f);
344 float destinationBorderlineOffset(1.f);
346 Control control1 = Control::New();
347 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
348 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
349 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
351 Control control2 = Control::New();
352 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
353 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
354 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
355 Property::Map controlProperty2;
356 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
357 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
358 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, destinationRadius);
359 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, destinationBorderlineWidth);
360 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, destinationBorderlineColor);
361 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, destinationBorderlineOffset);
362 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
364 Property::Map backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
365 Vector4 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
366 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
367 float borderlineWidth = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH)->Get<float>();
368 DALI_TEST_EQUALS(destinationBorderlineWidth, borderlineWidth, TEST_LOCATION);
369 Vector4 borderlineColor = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_COLOR)->Get<Vector4>();
370 DALI_TEST_EQUALS(destinationBorderlineColor, borderlineColor, TEST_LOCATION);
371 float borderlineOffset = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET)->Get<float>();
372 DALI_TEST_EQUALS(destinationBorderlineOffset, borderlineOffset, TEST_LOCATION);
374 application.GetScene().Add(control1);
375 application.GetScene().Add(control2);
377 application.SendNotification();
378 application.Render(20);
380 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
381 TransitionSet transitionSet = TransitionSet::New();
382 transitionSet.AddTransition(transition);
383 transitionSet.Play();
385 bool signalReceived(false);
386 TransitionFinishCheck finishCheck(signalReceived);
387 transitionSet.FinishedSignal().Connect(&application, finishCheck);
389 application.SendNotification();
390 application.Render(50);
392 // We didn't expect the animation to finish yet
393 application.SendNotification();
394 finishCheck.CheckSignalNotReceived();
396 backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
397 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
398 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
399 borderlineWidth = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH)->Get<float>();
400 DALI_TEST_EQUALS(destinationBorderlineWidth, borderlineWidth, TEST_LOCATION);
401 borderlineColor = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_COLOR)->Get<Vector4>();
402 DALI_TEST_EQUALS(destinationBorderlineColor, borderlineColor, TEST_LOCATION);
403 borderlineOffset = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET)->Get<float>();
404 DALI_TEST_EQUALS(destinationBorderlineOffset, borderlineOffset, TEST_LOCATION);
406 application.SendNotification();
407 application.Render(700);
409 // We did expect the animation to finish
410 application.SendNotification();
411 finishCheck.CheckSignalReceived();
413 application.SendNotification();
414 application.Render(20);
416 backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
417 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
418 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
419 borderlineWidth = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH)->Get<float>();
420 DALI_TEST_EQUALS(destinationBorderlineWidth, borderlineWidth, TEST_LOCATION);
421 borderlineColor = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_COLOR)->Get<Vector4>();
422 DALI_TEST_EQUALS(destinationBorderlineColor, borderlineColor, TEST_LOCATION);
423 borderlineOffset = backgroundMap.Find(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET)->Get<float>();
424 DALI_TEST_EQUALS(destinationBorderlineOffset, borderlineOffset, TEST_LOCATION);
429 int UtcDaliTransitionBetweenImageViewPair(void)
431 ToolkitTestApplication application;
432 tet_infoline(" UtcDaliTransitionBetweenControlPair");
434 Vector3 destinationPosition(50, 50, 0);
436 ImageView control1 = ImageView::New();
437 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
438 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
439 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
440 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
441 Property::Map controlProperty1;
442 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
443 controlProperty1.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
444 controlProperty1.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.5f, 0.5f));
445 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 50.f);
446 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 50.f);
447 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
448 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, 1.f);
449 control1.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty1);
451 ImageView control2 = ImageView::New();
452 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
453 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
454 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
455 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
456 Property::Map controlProperty2;
457 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
458 controlProperty2.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
459 controlProperty2.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
460 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
461 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 30.f);
462 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(0.0f, 1.0f, 1.0f, 0.5f));
463 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, -1.f);
464 control2.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty2);
466 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
468 application.GetScene().Add(control1);
469 application.GetScene().Add(control2);
471 application.SendNotification();
472 application.Render(20);
474 Vector3 startWorldPosition = control1.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
475 Vector3 finishWorldPosition = control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
477 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
478 TransitionSet transitionSet = TransitionSet::New();
479 transitionSet.AddTransition(transition);
480 transitionSet.Play();
482 bool signalReceived(false);
483 TransitionFinishCheck finishCheck(signalReceived);
484 transitionSet.FinishedSignal().Connect(&application, finishCheck);
486 application.SendNotification();
487 application.Render(400);
489 // We didn't expect the animation to finish yet
490 application.SendNotification();
491 finishCheck.CheckSignalNotReceived();
493 // control2 moved about 80%
494 Vector3 currentPosition = control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
495 Vector3 expectedPosition_0_7 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.7;
496 Vector3 expectedPosition_0_9 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.9;
497 DALI_TEST_CHECK(currentPosition.x <= expectedPosition_0_7.x && currentPosition.x >= expectedPosition_0_9.x);
498 DALI_TEST_CHECK(currentPosition.y <= expectedPosition_0_7.y && currentPosition.y >= expectedPosition_0_9.y);
500 application.SendNotification();
501 application.Render(200);
503 // We did expect the animation to finish
504 application.SendNotification();
505 finishCheck.CheckSignalReceived();
507 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
509 application.SendNotification();
510 application.Render(20);
512 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
517 int UtcDaliTransitionBetweenImageViewPairWithDelay(void)
519 ToolkitTestApplication application;
520 tet_infoline(" UtcDaliTransitionBetweenControlPair");
522 Vector3 destinationPosition(50, 50, 0);
524 ImageView control1 = ImageView::New();
525 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
526 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
527 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
528 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
529 Property::Map controlProperty1;
530 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
531 controlProperty1.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
532 controlProperty1.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.5f, 0.5f));
533 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 50.f);
534 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 50.f);
535 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
536 controlProperty1.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, 1.f);
537 control1.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty1);
539 ImageView control2 = ImageView::New();
540 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
541 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
542 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
543 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
544 Property::Map controlProperty2;
545 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
546 controlProperty2.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
547 controlProperty2.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
548 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
549 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_WIDTH, 30.f);
550 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_COLOR, Vector4(0.0f, 1.0f, 1.0f, 0.5f));
551 controlProperty2.Insert(Toolkit::DevelVisual::Property::BORDERLINE_OFFSET, -1.f);
552 control2.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty2);
554 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
556 application.GetScene().Add(control1);
557 application.GetScene().Add(control2);
559 application.SendNotification();
560 application.Render(20);
562 Vector3 startWorldPosition = control1.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
563 Vector3 finishWorldPosition = control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
565 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f, 0.5f));
566 TransitionSet transitionSet = TransitionSet::New();
567 transitionSet.AddTransition(transition);
568 transitionSet.Play();
570 bool signalReceived(false);
571 TransitionFinishCheck finishCheck(signalReceived);
572 transitionSet.FinishedSignal().Connect(&application, finishCheck);
574 application.SendNotification();
575 application.Render(400);
577 // We didn't expect the animation to finish yet
578 application.SendNotification();
579 finishCheck.CheckSignalNotReceived();
581 DALI_TEST_EQUALS(startWorldPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
584 application.SendNotification();
585 application.Render(400);
587 // We didn't expect the animation to finish yet
588 application.SendNotification();
589 finishCheck.CheckSignalNotReceived();
591 // control2 moved about 60% (800ms)
592 Vector3 currentPosition = control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
593 Vector3 expectedPosition_0_5 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.5;
594 Vector3 expectedPosition_0_7 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.7;
595 DALI_TEST_CHECK(currentPosition.x <= expectedPosition_0_5.x && currentPosition.x >= expectedPosition_0_7.x);
596 DALI_TEST_CHECK(currentPosition.y <= expectedPosition_0_5.y && currentPosition.y >= expectedPosition_0_7.y);
598 application.SendNotification();
599 application.Render(400);
601 // We did expect the animation to finish
602 application.SendNotification();
603 finishCheck.CheckSignalReceived();
605 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
607 application.SendNotification();
608 application.Render(20);
610 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
615 int UtcDaliTransitionBetweenControlPairWithTree(void)
617 ToolkitTestApplication application;
618 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTree");
620 Vector3 destinationPosition(50, 50, 0);
621 Vector3 destinationWorldPosition(-130, -290, 0);
623 Control control1 = Control::New();
624 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
625 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
626 Property::Map controlProperty1;
627 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
628 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
629 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
631 Control control2 = Control::New();
632 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
633 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
634 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
635 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
636 Property::Map controlProperty2;
637 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
638 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
639 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
641 Control control3 = Control::New();
642 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
643 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
644 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
645 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
646 Property::Map controlProperty3;
647 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
648 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
649 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
651 application.GetScene().Add(control1);
652 application.GetScene().Add(control2);
653 control2.Add(control3);
655 application.SendNotification();
656 application.Render(20);
658 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
659 TransitionSet transitionSet = TransitionSet::New();
660 transitionSet.AddTransition(transition);
661 transitionSet.Play();
663 bool signalReceived(false);
664 TransitionFinishCheck finishCheck(signalReceived);
665 transitionSet.FinishedSignal().Connect(&application, finishCheck);
667 application.SendNotification();
668 application.Render(600);
670 // We didn't expect the animation to finish yet
671 application.SendNotification();
672 finishCheck.CheckSignalReceived();
674 application.SendNotification();
675 application.Render(20);
677 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
678 DALI_TEST_EQUALS(destinationWorldPosition, control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
683 int UtcDaliTransitionBetweenControlPairWithTreeWithChild(void)
685 ToolkitTestApplication application;
686 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithChild");
688 Vector3 destinationWorldPosition(-80, -240, 0);
690 Control control1 = Control::New();
691 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
692 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
693 Property::Map controlProperty1;
694 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
695 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
696 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
698 Control control2 = Control::New();
699 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
700 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
701 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
702 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
703 Property::Map controlProperty2;
704 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
705 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
706 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
708 Control control3 = Control::New();
709 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
710 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
711 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
712 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
713 Property::Map controlProperty3;
714 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
715 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
716 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
718 application.GetScene().Add(control1);
719 application.GetScene().Add(control2);
720 control2.Add(control3);
722 application.SendNotification();
723 application.Render(20);
725 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
726 transition.TransitionWithChild(true);
727 TransitionSet transitionSet = TransitionSet::New();
728 transitionSet.AddTransition(transition);
729 transitionSet.Play();
731 bool signalReceived(false);
732 TransitionFinishCheck finishCheck(signalReceived);
733 transitionSet.FinishedSignal().Connect(&application, finishCheck);
735 application.SendNotification();
736 application.Render(600);
738 // We didn't expect the animation to finish yet
739 application.SendNotification();
740 finishCheck.CheckSignalReceived();
742 application.SendNotification();
743 application.Render(20);
745 DALI_TEST_EQUALS(destinationWorldPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
750 int UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance(void)
752 ToolkitTestApplication application;
753 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance");
755 Vector3 sourcePosition(50, 50, 0);
756 Vector3 destinationPosition(100, 100, 0);
758 Control control1 = Control::New();
759 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
760 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
761 control1.SetProperty(Actor::Property::POSITION, sourcePosition);
762 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
763 Property::Map controlProperty1;
764 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
765 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
766 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
768 Control control2 = Control::New();
769 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
770 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
771 control2.SetProperty(Actor::Property::POSITION, Vector3(150, 150, 0));
772 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
773 Property::Map controlProperty2;
774 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
775 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
776 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
778 Control control3 = Control::New();
779 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
780 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
781 control3.SetProperty(Actor::Property::POSITION, destinationPosition);
782 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
783 Property::Map controlProperty3;
784 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
785 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
786 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
788 application.GetScene().Add(control1);
789 application.GetScene().Add(control2);
790 control2.Add(control3);
792 application.SendNotification();
793 application.Render(20);
795 Transition transition;
796 TransitionSet transitionSet;
797 bool signalReceived(false);
798 TransitionFinishCheck finishCheck(signalReceived);
800 // not inherit Position.
801 control3.SetProperty(Actor::Property::INHERIT_POSITION, false);
802 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
803 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
805 transition = Transition::New(control1, control3, TimePeriod(0.5f));
806 transitionSet = TransitionSet::New();
807 transitionSet.AddTransition(transition);
808 transitionSet.Play();
809 transitionSet.FinishedSignal().Connect(&application, finishCheck);
811 application.SendNotification();
812 application.Render(300);
814 Vector3 currentPosition = control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
815 DALI_TEST_CHECK(currentPosition.x <= destinationPosition.x && currentPosition.x >= sourcePosition.x);
816 DALI_TEST_CHECK(currentPosition.y <= destinationPosition.y && currentPosition.y >= sourcePosition.y);
817 DALI_TEST_CHECK(currentPosition.z <= destinationPosition.z && currentPosition.z >= sourcePosition.z);
819 application.SendNotification();
820 application.Render(300);
822 // We didn't expect the animation to finish yet
823 application.SendNotification();
824 finishCheck.CheckSignalReceived();
826 application.SendNotification();
827 application.Render(20);
829 DALI_TEST_EQUALS(destinationPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
833 int UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance(void)
835 ToolkitTestApplication application;
836 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
838 Radian sourceAngle(1.0f);
839 Radian destinationAngle(2.0f);
840 Quaternion sourceOrientation(sourceAngle, Vector3::XAXIS);
841 Quaternion destinationOrientation(destinationAngle, Vector3::XAXIS);
843 Control control1 = Control::New();
844 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
845 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
846 control1.SetProperty(Actor::Property::ORIENTATION, sourceOrientation);
847 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
848 Property::Map controlProperty1;
849 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
850 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
851 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
853 Control control2 = Control::New();
854 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
855 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
856 control2.SetProperty(Actor::Property::ORIENTATION, Quaternion(Radian(2.0f), Vector3::XAXIS));
857 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
858 Property::Map controlProperty2;
859 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
860 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
861 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
863 Control control3 = Control::New();
864 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
865 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
866 control3.SetProperty(Actor::Property::ORIENTATION, destinationOrientation);
867 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
868 Property::Map controlProperty3;
869 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
870 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
871 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
873 // not inherit Orientation.
874 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
875 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, false);
876 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
879 Radian currentRadian;
881 application.GetScene().Add(control1);
882 application.GetScene().Add(control2);
883 control2.Add(control3);
885 application.SendNotification();
886 application.Render(20);
888 Quaternion currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
889 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
891 Transition transition;
892 TransitionSet transitionSet;
893 bool signalReceived(false);
894 TransitionFinishCheck finishCheck(signalReceived);
896 transition = Transition::New(control1, control3, TimePeriod(0.5f));
897 transitionSet = TransitionSet::New();
898 transitionSet.AddTransition(transition);
899 transitionSet.Play();
900 transitionSet.FinishedSignal().Connect(&application, finishCheck);
902 application.SendNotification();
903 application.Render(300);
905 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
906 DALI_TEST_NOT_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
908 application.SendNotification();
909 application.Render(300);
911 // We didn't expect the animation to finish yet
912 application.SendNotification();
913 finishCheck.CheckSignalReceived();
915 application.SendNotification();
916 application.Render(20);
918 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
919 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
924 int UtcDaliTransitionBetweenControlPairWithTreeWithoutScaleInheritance(void)
926 ToolkitTestApplication application;
927 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
929 Vector3 sourceScale(1, 1, 1);
930 Vector3 destinationScale(2, 2, 1);
932 Control control1 = Control::New();
933 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
934 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
935 control1.SetProperty(Actor::Property::SCALE, sourceScale);
936 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
937 Property::Map controlProperty1;
938 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
939 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
940 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
942 Control control2 = Control::New();
943 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
944 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
945 control2.SetProperty(Actor::Property::SCALE, Vector3(3, 3, 1));
946 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
947 Property::Map controlProperty2;
948 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
949 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
950 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
952 Control control3 = Control::New();
953 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
954 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
955 control3.SetProperty(Actor::Property::SCALE, destinationScale);
956 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
957 Property::Map controlProperty3;
958 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
959 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
960 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
962 // not inherit Orientation.
963 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
964 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
965 control3.SetProperty(Actor::Property::INHERIT_SCALE, false);
967 application.GetScene().Add(control1);
968 application.GetScene().Add(control2);
969 control2.Add(control3);
971 application.SendNotification();
972 application.Render(20);
974 Vector3 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
975 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);
977 Transition transition;
978 TransitionSet transitionSet;
979 bool signalReceived(false);
980 TransitionFinishCheck finishCheck(signalReceived);
982 transition = Transition::New(control1, control3, TimePeriod(0.5f));
983 transitionSet = TransitionSet::New();
984 transitionSet.AddTransition(transition);
985 transitionSet.Play();
986 transitionSet.FinishedSignal().Connect(&application, finishCheck);
988 application.SendNotification();
989 application.Render(300);
991 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
992 DALI_TEST_CHECK(currentScale.x <= destinationScale.x && currentScale.x >= sourceScale.x);
993 DALI_TEST_CHECK(currentScale.y <= destinationScale.y && currentScale.y >= sourceScale.y);
994 DALI_TEST_CHECK(currentScale.z <= destinationScale.z && currentScale.z >= sourceScale.z);
996 application.SendNotification();
997 application.Render(300);
999 // We didn't expect the animation to finish yet
1000 application.SendNotification();
1001 finishCheck.CheckSignalReceived();
1003 application.SendNotification();
1004 application.Render(20);
1006 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
1007 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);