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 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
99 Control control2 = Control::New();
100 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
101 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
102 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
103 Property::Map controlProperty2;
104 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
105 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
106 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
107 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
109 application.GetScene().Add(control1);
110 application.GetScene().Add(control2);
112 application.SendNotification();
113 application.Render(20);
115 Transition transition = Transition::New(control1, control2, TimePeriod(-0.1f, -0.1f));
116 TimePeriod timePeriod = transition.GetTimePeriod();
117 DALI_TEST_EQUALS(0.0f, timePeriod.durationSeconds, TEST_LOCATION);
118 DALI_TEST_EQUALS(0.0f, timePeriod.delaySeconds, TEST_LOCATION);
120 transition.SetTimePeriod(TimePeriod(0.5f, 1.0f));
121 timePeriod = transition.GetTimePeriod();
122 DALI_TEST_EQUALS(1.0f, timePeriod.durationSeconds, TEST_LOCATION);
123 DALI_TEST_EQUALS(0.5f, timePeriod.delaySeconds, TEST_LOCATION);
125 DALI_TEST_EQUALS(Dali::AlphaFunction::DEFAULT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
126 transition.SetAlphaFunction(Dali::AlphaFunction::EASE_IN_OUT);
127 DALI_TEST_EQUALS(Dali::AlphaFunction::EASE_IN_OUT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
129 TransitionSet transitionSet = TransitionSet::New();
130 transitionSet.AddTransition(transition);
132 DALI_TEST_EQUALS(1, transitionSet.GetTransitionCount(), TEST_LOCATION);
133 DALI_TEST_EQUALS(transition, transitionSet.GetTransitionAt(0), TEST_LOCATION);
138 int UtcDaliTransitionSetGetProperty02(void)
140 ToolkitTestApplication application;
141 tet_infoline(" UtcDaliTransitionSetGetProperty02");
143 Control control1 = Control::New();
144 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
145 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
146 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
147 Property::Map controlProperty1;
148 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
149 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
150 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, Vector4(50.0f, 30.0f, 40.0f, 20.0f));
151 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
153 Control control2 = Control::New();
154 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
155 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
156 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
157 Property::Map controlProperty2;
158 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
159 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
160 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, Vector4(32.f, 54.0f, 24.0f, 42.0f));
161 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
163 application.GetScene().Add(control1);
164 application.GetScene().Add(control2);
166 application.SendNotification();
167 application.Render(20);
169 Transition transition = Transition::New(control1, control2, TimePeriod(-0.1f));
170 TimePeriod timePeriod = transition.GetTimePeriod();
171 DALI_TEST_EQUALS(0.0f, timePeriod.durationSeconds, TEST_LOCATION);
172 DALI_TEST_EQUALS(0.0f, timePeriod.delaySeconds, TEST_LOCATION);
174 transition.SetTimePeriod(TimePeriod(0.5f, 1.0f));
175 timePeriod = transition.GetTimePeriod();
176 DALI_TEST_EQUALS(1.0f, timePeriod.durationSeconds, TEST_LOCATION);
177 DALI_TEST_EQUALS(0.5f, timePeriod.delaySeconds, TEST_LOCATION);
179 DALI_TEST_EQUALS(Dali::AlphaFunction::DEFAULT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
180 transition.SetAlphaFunction(Dali::AlphaFunction::EASE_IN_OUT);
181 DALI_TEST_EQUALS(Dali::AlphaFunction::EASE_IN_OUT, transition.GetAlphaFunction().GetBuiltinFunction(), TEST_LOCATION);
183 TransitionSet transitionSet = TransitionSet::New();
184 transitionSet.AddTransition(transition);
186 DALI_TEST_EQUALS(1, transitionSet.GetTransitionCount(), TEST_LOCATION);
187 DALI_TEST_EQUALS(transition, transitionSet.GetTransitionAt(0), TEST_LOCATION);
192 int UtcDaliTransitionBetweenControlPair(void)
194 ToolkitTestApplication application;
195 tet_infoline(" UtcDaliTransitionBetweenControlPair");
197 Vector3 destinationPosition(50, 50, 0);
198 Vector3 destinationSize(120, 120, 0);
199 Vector3 destinationScale(2, 1, 0);
200 Vector4 destinationColor(1.0f, 0.5f, 1.0f, 0.8f);
201 float destinationOpacity(0.8f);
202 float destinationRadius(50.f);
203 Vector4 destinationRadiusV4 = Vector4(destinationRadius, destinationRadius, destinationRadius, destinationRadius);
205 Control control1 = Control::New();
206 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
207 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
208 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
209 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
210 control1.SetProperty(Actor::Property::SCALE, Vector3(1, 2, 0));
211 control1.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 1.0f, 1.0f, 0.5f));
212 control1.SetProperty(Actor::Property::OPACITY, 0.5f);
213 Property::Map controlProperty1;
214 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
215 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
216 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
217 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
219 Control control2 = Control::New();
220 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
221 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
222 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
223 control2.SetProperty(Actor::Property::SIZE, destinationSize);
224 control2.SetProperty(Actor::Property::SCALE, destinationScale);
225 control2.SetProperty(Actor::Property::COLOR, destinationColor);
226 control2.SetProperty(Actor::Property::OPACITY, destinationOpacity);
227 Property::Map controlProperty2;
228 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
229 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
230 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, destinationRadius);
231 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
233 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
234 Property::Map backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
235 Vector4 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
236 DALI_TEST_EQUALS(destinationRadiusV4, cornerRadius, TEST_LOCATION);
238 application.GetScene().Add(control1);
239 application.GetScene().Add(control2);
241 application.SendNotification();
242 application.Render(20);
244 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
245 TransitionSet transitionSet = TransitionSet::New();
246 transitionSet.AddTransition(transition);
247 transitionSet.Play();
249 bool signalReceived(false);
250 TransitionFinishCheck finishCheck(signalReceived);
251 transitionSet.FinishedSignal().Connect(&application, finishCheck);
253 application.SendNotification();
254 application.Render(50);
256 // We didn't expect the animation to finish yet
257 application.SendNotification();
258 finishCheck.CheckSignalNotReceived();
260 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
261 DALI_TEST_EQUALS(1, control2.GetRendererCount(), TEST_LOCATION);
262 Dali::Renderer renderer = control2.GetRendererAt(0);
263 Property::Index index = renderer.GetPropertyIndex(DevelVisual::Property::CORNER_RADIUS);
264 cornerRadius = renderer.GetCurrentProperty<Vector4>(index);
265 DALI_TEST_NOT_EQUALS(destinationRadiusV4, cornerRadius, 0.00001f, TEST_LOCATION);
267 application.SendNotification();
268 application.Render(700);
270 // We did expect the animation to finish
271 application.SendNotification();
272 finishCheck.CheckSignalReceived();
274 application.SendNotification();
275 application.Render(20);
277 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
278 DALI_TEST_EQUALS(destinationSize, control2.GetCurrentProperty<Vector3>(Actor::Property::SIZE), TEST_LOCATION);
279 DALI_TEST_EQUALS(destinationScale, control2.GetCurrentProperty<Vector3>(Actor::Property::SCALE), TEST_LOCATION);
280 DALI_TEST_EQUALS(destinationColor, control2.GetCurrentProperty<Vector4>(Actor::Property::COLOR), TEST_LOCATION);
281 DALI_TEST_EQUALS(destinationOpacity, control2.GetCurrentProperty<float>(Actor::Property::OPACITY), TEST_LOCATION);
282 DALI_TEST_EQUALS(1, control2.GetRendererCount(), TEST_LOCATION);
283 renderer = control2.GetRendererAt(0);
284 index = renderer.GetPropertyIndex(DevelVisual::Property::CORNER_RADIUS);
285 cornerRadius = renderer.GetCurrentProperty<Vector4>(index);
286 DALI_TEST_EQUALS(destinationRadiusV4, cornerRadius, TEST_LOCATION);
291 int UtcDaliTransitionBetweenControlPairWithoutEmptySourceBackground(void)
293 ToolkitTestApplication application;
294 tet_infoline(" UtcDaliTransitionBetweenControlPair");
296 Vector4 destinationRadius(50.f, 30.f, 40.f, 0.f);
298 Control control1 = Control::New();
299 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
300 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
301 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
303 Control control2 = Control::New();
304 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
305 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
306 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
307 Property::Map controlProperty2;
308 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
309 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.0f, 0.5f));
310 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, destinationRadius);
311 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
313 Property::Map backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
314 Vector4 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
315 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
317 application.GetScene().Add(control1);
318 application.GetScene().Add(control2);
320 application.SendNotification();
321 application.Render(20);
323 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
324 TransitionSet transitionSet = TransitionSet::New();
325 transitionSet.AddTransition(transition);
326 transitionSet.Play();
328 bool signalReceived(false);
329 TransitionFinishCheck finishCheck(signalReceived);
330 transitionSet.FinishedSignal().Connect(&application, finishCheck);
332 application.SendNotification();
333 application.Render(50);
335 // We didn't expect the animation to finish yet
336 application.SendNotification();
337 finishCheck.CheckSignalNotReceived();
339 backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
340 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
341 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
343 application.SendNotification();
344 application.Render(700);
346 // We did expect the animation to finish
347 application.SendNotification();
348 finishCheck.CheckSignalReceived();
350 application.SendNotification();
351 application.Render(20);
353 backgroundMap = control2.GetProperty<Property::Map>(Toolkit::Control::Property::BACKGROUND);
354 cornerRadius = backgroundMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS)->Get<Vector4>();
355 DALI_TEST_EQUALS(destinationRadius, cornerRadius, TEST_LOCATION);
360 int UtcDaliTransitionBetweenImageViewPair(void)
362 ToolkitTestApplication application;
363 tet_infoline(" UtcDaliTransitionBetweenControlPair");
365 Vector3 destinationPosition(50, 50, 0);
367 ImageView control1 = ImageView::New();
368 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
369 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
370 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
371 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
372 Property::Map controlProperty1;
373 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
374 controlProperty1.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
375 controlProperty1.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.5f, 0.5f));
376 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 50.f);
377 control1.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty1);
379 ImageView control2 = ImageView::New();
380 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
381 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
382 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
383 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
384 Property::Map controlProperty2;
385 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
386 controlProperty2.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
387 controlProperty2.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
388 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
389 control2.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty2);
391 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
393 application.GetScene().Add(control1);
394 application.GetScene().Add(control2);
396 application.SendNotification();
397 application.Render(20);
399 Vector3 startWorldPosition = control1.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
400 Vector3 finishWorldPosition = control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
402 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
403 TransitionSet transitionSet = TransitionSet::New();
404 transitionSet.AddTransition(transition);
405 transitionSet.Play();
407 bool signalReceived(false);
408 TransitionFinishCheck finishCheck(signalReceived);
409 transitionSet.FinishedSignal().Connect(&application, finishCheck);
411 application.SendNotification();
412 application.Render(400);
414 // We didn't expect the animation to finish yet
415 application.SendNotification();
416 finishCheck.CheckSignalNotReceived();
418 // control2 moved about 80%
419 Vector3 currentPosition = control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
420 Vector3 expectedPosition_0_7 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.7;
421 Vector3 expectedPosition_0_9 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.9;
422 DALI_TEST_CHECK(currentPosition.x <= expectedPosition_0_7.x && currentPosition.x >= expectedPosition_0_9.x);
423 DALI_TEST_CHECK(currentPosition.y <= expectedPosition_0_7.y && currentPosition.y >= expectedPosition_0_9.y);
425 application.SendNotification();
426 application.Render(200);
428 // We did expect the animation to finish
429 application.SendNotification();
430 finishCheck.CheckSignalReceived();
432 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
434 application.SendNotification();
435 application.Render(20);
437 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
442 int UtcDaliTransitionBetweenImageViewPairWithDelay(void)
444 ToolkitTestApplication application;
445 tet_infoline(" UtcDaliTransitionBetweenControlPair");
447 Vector3 destinationPosition(50, 50, 0);
449 ImageView control1 = ImageView::New();
450 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
451 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
452 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
453 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
454 Property::Map controlProperty1;
455 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
456 controlProperty1.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
457 controlProperty1.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 0.5f, 0.5f));
458 controlProperty1.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 50.f);
459 control1.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty1);
461 ImageView control2 = ImageView::New();
462 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
463 control2.SetProperty(Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
464 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
465 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
466 Property::Map controlProperty2;
467 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE);
468 controlProperty2.Insert(Toolkit::ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME);
469 controlProperty2.Insert(Toolkit::Visual::Property::MIX_COLOR, Vector4(1.0f, 1.0f, 1.0f, 1.0f));
470 controlProperty2.Insert(Toolkit::DevelVisual::Property::CORNER_RADIUS, 30.f);
471 control2.SetProperty(Toolkit::ImageView::Property::IMAGE, controlProperty2);
473 DALI_TEST_EQUALS(destinationPosition, control2.GetProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
475 application.GetScene().Add(control1);
476 application.GetScene().Add(control2);
478 application.SendNotification();
479 application.Render(20);
481 Vector3 startWorldPosition = control1.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
482 Vector3 finishWorldPosition = control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
484 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f, 0.5f));
485 TransitionSet transitionSet = TransitionSet::New();
486 transitionSet.AddTransition(transition);
487 transitionSet.Play();
489 bool signalReceived(false);
490 TransitionFinishCheck finishCheck(signalReceived);
491 transitionSet.FinishedSignal().Connect(&application, finishCheck);
493 application.SendNotification();
494 application.Render(400);
496 // We didn't expect the animation to finish yet
497 application.SendNotification();
498 finishCheck.CheckSignalNotReceived();
500 DALI_TEST_EQUALS(startWorldPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
503 application.SendNotification();
504 application.Render(400);
506 // We didn't expect the animation to finish yet
507 application.SendNotification();
508 finishCheck.CheckSignalNotReceived();
510 // control2 moved about 60% (800ms)
511 Vector3 currentPosition = control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
512 Vector3 expectedPosition_0_5 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.5;
513 Vector3 expectedPosition_0_7 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.7;
514 DALI_TEST_CHECK(currentPosition.x <= expectedPosition_0_5.x && currentPosition.x >= expectedPosition_0_7.x);
515 DALI_TEST_CHECK(currentPosition.y <= expectedPosition_0_5.y && currentPosition.y >= expectedPosition_0_7.y);
517 application.SendNotification();
518 application.Render(400);
520 // We did expect the animation to finish
521 application.SendNotification();
522 finishCheck.CheckSignalReceived();
524 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
526 application.SendNotification();
527 application.Render(20);
529 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
534 int UtcDaliTransitionBetweenControlPairWithTree(void)
536 ToolkitTestApplication application;
537 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTree");
539 Vector3 destinationPosition(50, 50, 0);
540 Vector3 destinationWorldPosition(-130, -290, 0);
542 Control control1 = Control::New();
543 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
544 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
545 Property::Map controlProperty1;
546 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
547 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
548 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
550 Control control2 = Control::New();
551 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
552 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
553 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
554 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
555 Property::Map controlProperty2;
556 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
557 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
558 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
560 Control control3 = Control::New();
561 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
562 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
563 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
564 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
565 Property::Map controlProperty3;
566 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
567 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
568 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
570 application.GetScene().Add(control1);
571 application.GetScene().Add(control2);
572 control2.Add(control3);
574 application.SendNotification();
575 application.Render(20);
577 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
578 TransitionSet transitionSet = TransitionSet::New();
579 transitionSet.AddTransition(transition);
580 transitionSet.Play();
582 bool signalReceived(false);
583 TransitionFinishCheck finishCheck(signalReceived);
584 transitionSet.FinishedSignal().Connect(&application, finishCheck);
586 application.SendNotification();
587 application.Render(600);
589 // We didn't expect the animation to finish yet
590 application.SendNotification();
591 finishCheck.CheckSignalReceived();
593 application.SendNotification();
594 application.Render(20);
596 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
597 DALI_TEST_EQUALS(destinationWorldPosition, control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
602 int UtcDaliTransitionBetweenControlPairWithTreeWithChild(void)
604 ToolkitTestApplication application;
605 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithChild");
607 Vector3 destinationWorldPosition(-80, -240, 0);
609 Control control1 = Control::New();
610 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
611 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
612 Property::Map controlProperty1;
613 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
614 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
615 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
617 Control control2 = Control::New();
618 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
619 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
620 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
621 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
622 Property::Map controlProperty2;
623 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
624 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
625 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
627 Control control3 = Control::New();
628 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
629 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
630 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
631 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
632 Property::Map controlProperty3;
633 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
634 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
635 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
637 application.GetScene().Add(control1);
638 application.GetScene().Add(control2);
639 control2.Add(control3);
641 application.SendNotification();
642 application.Render(20);
644 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
645 transition.TransitionWithChild(true);
646 TransitionSet transitionSet = TransitionSet::New();
647 transitionSet.AddTransition(transition);
648 transitionSet.Play();
650 bool signalReceived(false);
651 TransitionFinishCheck finishCheck(signalReceived);
652 transitionSet.FinishedSignal().Connect(&application, finishCheck);
654 application.SendNotification();
655 application.Render(600);
657 // We didn't expect the animation to finish yet
658 application.SendNotification();
659 finishCheck.CheckSignalReceived();
661 application.SendNotification();
662 application.Render(20);
664 DALI_TEST_EQUALS(destinationWorldPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
669 int UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance(void)
671 ToolkitTestApplication application;
672 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance");
674 Vector3 sourcePosition(50, 50, 0);
675 Vector3 destinationPosition(100, 100, 0);
677 Control control1 = Control::New();
678 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
679 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
680 control1.SetProperty(Actor::Property::POSITION, sourcePosition);
681 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
682 Property::Map controlProperty1;
683 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
684 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
685 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
687 Control control2 = Control::New();
688 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
689 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
690 control2.SetProperty(Actor::Property::POSITION, Vector3(150, 150, 0));
691 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
692 Property::Map controlProperty2;
693 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
694 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
695 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
697 Control control3 = Control::New();
698 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
699 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
700 control3.SetProperty(Actor::Property::POSITION, destinationPosition);
701 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
702 Property::Map controlProperty3;
703 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
704 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
705 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
707 application.GetScene().Add(control1);
708 application.GetScene().Add(control2);
709 control2.Add(control3);
711 application.SendNotification();
712 application.Render(20);
714 Transition transition;
715 TransitionSet transitionSet;
716 bool signalReceived(false);
717 TransitionFinishCheck finishCheck(signalReceived);
719 // not inherit Position.
720 control3.SetProperty(Actor::Property::INHERIT_POSITION, false);
721 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
722 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
724 transition = Transition::New(control1, control3, TimePeriod(0.5f));
725 transitionSet = TransitionSet::New();
726 transitionSet.AddTransition(transition);
727 transitionSet.Play();
728 transitionSet.FinishedSignal().Connect(&application, finishCheck);
730 application.SendNotification();
731 application.Render(300);
733 Vector3 currentPosition = control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
734 DALI_TEST_CHECK(currentPosition.x <= destinationPosition.x && currentPosition.x >= sourcePosition.x);
735 DALI_TEST_CHECK(currentPosition.y <= destinationPosition.y && currentPosition.y >= sourcePosition.y);
736 DALI_TEST_CHECK(currentPosition.z <= destinationPosition.z && currentPosition.z >= sourcePosition.z);
738 application.SendNotification();
739 application.Render(300);
741 // We didn't expect the animation to finish yet
742 application.SendNotification();
743 finishCheck.CheckSignalReceived();
745 application.SendNotification();
746 application.Render(20);
748 DALI_TEST_EQUALS(destinationPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
752 int UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance(void)
754 ToolkitTestApplication application;
755 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
757 Radian sourceAngle(1.0f);
758 Radian destinationAngle(2.0f);
759 Quaternion sourceOrientation(sourceAngle, Vector3::XAXIS);
760 Quaternion destinationOrientation(destinationAngle, Vector3::XAXIS);
762 Control control1 = Control::New();
763 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
764 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
765 control1.SetProperty(Actor::Property::ORIENTATION, sourceOrientation);
766 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
767 Property::Map controlProperty1;
768 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
769 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
770 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
772 Control control2 = Control::New();
773 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
774 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
775 control2.SetProperty(Actor::Property::ORIENTATION, Quaternion(Radian(2.0f), Vector3::XAXIS));
776 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
777 Property::Map controlProperty2;
778 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
779 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
780 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
782 Control control3 = Control::New();
783 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
784 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
785 control3.SetProperty(Actor::Property::ORIENTATION, destinationOrientation);
786 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
787 Property::Map controlProperty3;
788 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
789 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
790 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
792 // not inherit Orientation.
793 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
794 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, false);
795 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
798 Radian currentRadian;
800 application.GetScene().Add(control1);
801 application.GetScene().Add(control2);
802 control2.Add(control3);
804 application.SendNotification();
805 application.Render(20);
807 Quaternion currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
808 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
810 Transition transition;
811 TransitionSet transitionSet;
812 bool signalReceived(false);
813 TransitionFinishCheck finishCheck(signalReceived);
815 transition = Transition::New(control1, control3, TimePeriod(0.5f));
816 transitionSet = TransitionSet::New();
817 transitionSet.AddTransition(transition);
818 transitionSet.Play();
819 transitionSet.FinishedSignal().Connect(&application, finishCheck);
821 application.SendNotification();
822 application.Render(300);
824 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
825 DALI_TEST_NOT_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
827 application.SendNotification();
828 application.Render(300);
830 // We didn't expect the animation to finish yet
831 application.SendNotification();
832 finishCheck.CheckSignalReceived();
834 application.SendNotification();
835 application.Render(20);
837 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
838 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
843 int UtcDaliTransitionBetweenControlPairWithTreeWithoutScaleInheritance(void)
845 ToolkitTestApplication application;
846 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
848 Vector3 sourceScale(1, 1, 1);
849 Vector3 destinationScale(2, 2, 1);
851 Control control1 = Control::New();
852 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
853 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
854 control1.SetProperty(Actor::Property::SCALE, sourceScale);
855 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
856 Property::Map controlProperty1;
857 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
858 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
859 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
861 Control control2 = Control::New();
862 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
863 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
864 control2.SetProperty(Actor::Property::SCALE, Vector3(3, 3, 1));
865 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
866 Property::Map controlProperty2;
867 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
868 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
869 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
871 Control control3 = Control::New();
872 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
873 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
874 control3.SetProperty(Actor::Property::SCALE, destinationScale);
875 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
876 Property::Map controlProperty3;
877 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
878 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
879 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
881 // not inherit Orientation.
882 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
883 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
884 control3.SetProperty(Actor::Property::INHERIT_SCALE, false);
886 application.GetScene().Add(control1);
887 application.GetScene().Add(control2);
888 control2.Add(control3);
890 application.SendNotification();
891 application.Render(20);
893 Vector3 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
894 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);
896 Transition transition;
897 TransitionSet transitionSet;
898 bool signalReceived(false);
899 TransitionFinishCheck finishCheck(signalReceived);
901 transition = Transition::New(control1, control3, TimePeriod(0.5f));
902 transitionSet = TransitionSet::New();
903 transitionSet.AddTransition(transition);
904 transitionSet.Play();
905 transitionSet.FinishedSignal().Connect(&application, finishCheck);
907 application.SendNotification();
908 application.Render(300);
910 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
911 DALI_TEST_CHECK(currentScale.x <= destinationScale.x && currentScale.x >= sourceScale.x);
912 DALI_TEST_CHECK(currentScale.y <= destinationScale.y && currentScale.y >= sourceScale.y);
913 DALI_TEST_CHECK(currentScale.z <= destinationScale.z && currentScale.z >= sourceScale.z);
915 application.SendNotification();
916 application.Render(300);
918 // We didn't expect the animation to finish yet
919 application.SendNotification();
920 finishCheck.CheckSignalReceived();
922 application.SendNotification();
923 application.Render(20);
925 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
926 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);