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);
583 application.SendNotification();
584 application.Render(400);
586 // We didn't expect the animation to finish yet
587 application.SendNotification();
588 finishCheck.CheckSignalNotReceived();
590 // control2 moved about 60% (800ms)
591 Vector3 currentPosition = control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION);
592 Vector3 expectedPosition_0_5 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.5;
593 Vector3 expectedPosition_0_7 = startWorldPosition + (finishWorldPosition - startWorldPosition) * 0.7;
594 DALI_TEST_CHECK(currentPosition.x <= expectedPosition_0_5.x && currentPosition.x >= expectedPosition_0_7.x);
595 DALI_TEST_CHECK(currentPosition.y <= expectedPosition_0_5.y && currentPosition.y >= expectedPosition_0_7.y);
597 application.SendNotification();
598 application.Render(400);
600 // We did expect the animation to finish
601 application.SendNotification();
602 finishCheck.CheckSignalReceived();
604 DALI_TEST_NOT_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), 0.00001f, TEST_LOCATION);
606 application.SendNotification();
607 application.Render(20);
609 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
614 int UtcDaliTransitionBetweenControlPairWithTree(void)
616 ToolkitTestApplication application;
617 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTree");
619 Vector3 destinationPosition(50, 50, 0);
620 Vector3 destinationWorldPosition(-130, -290, 0);
622 Control control1 = Control::New();
623 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
624 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
625 Property::Map controlProperty1;
626 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
627 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
628 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
630 Control control2 = Control::New();
631 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
632 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
633 control2.SetProperty(Actor::Property::POSITION, destinationPosition);
634 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
635 Property::Map controlProperty2;
636 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
637 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
638 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
640 Control control3 = Control::New();
641 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
642 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
643 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
644 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
645 Property::Map controlProperty3;
646 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
647 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
648 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
650 application.GetScene().Add(control1);
651 application.GetScene().Add(control2);
652 control2.Add(control3);
654 application.SendNotification();
655 application.Render(20);
657 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
658 TransitionSet transitionSet = TransitionSet::New();
659 transitionSet.AddTransition(transition);
660 transitionSet.Play();
662 bool signalReceived(false);
663 TransitionFinishCheck finishCheck(signalReceived);
664 transitionSet.FinishedSignal().Connect(&application, finishCheck);
666 application.SendNotification();
667 application.Render(600);
669 // We didn't expect the animation to finish yet
670 application.SendNotification();
671 finishCheck.CheckSignalReceived();
673 application.SendNotification();
674 application.Render(20);
676 DALI_TEST_EQUALS(destinationPosition, control2.GetCurrentProperty<Vector3>(Actor::Property::POSITION), TEST_LOCATION);
677 DALI_TEST_EQUALS(destinationWorldPosition, control2.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
682 int UtcDaliTransitionBetweenControlPairWithTreeWithChild(void)
684 ToolkitTestApplication application;
685 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithChild");
687 Vector3 destinationWorldPosition(-80, -240, 0);
689 Control control1 = Control::New();
690 control1.SetProperty(Actor::Property::POSITION, Vector3(100, 200, 0));
691 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
692 Property::Map controlProperty1;
693 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
694 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
695 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
697 Control control2 = Control::New();
698 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
699 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
700 control2.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
701 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
702 Property::Map controlProperty2;
703 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
704 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
705 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
707 Control control3 = Control::New();
708 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
709 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
710 control3.SetProperty(Actor::Property::POSITION, Vector3(50, 50, 0));
711 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
712 Property::Map controlProperty3;
713 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
714 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
715 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
717 application.GetScene().Add(control1);
718 application.GetScene().Add(control2);
719 control2.Add(control3);
721 application.SendNotification();
722 application.Render(20);
724 Transition transition = Transition::New(control1, control2, TimePeriod(0.5f));
725 transition.TransitionWithChild(true);
726 TransitionSet transitionSet = TransitionSet::New();
727 transitionSet.AddTransition(transition);
728 transitionSet.Play();
730 bool signalReceived(false);
731 TransitionFinishCheck finishCheck(signalReceived);
732 transitionSet.FinishedSignal().Connect(&application, finishCheck);
734 application.SendNotification();
735 application.Render(600);
737 // We didn't expect the animation to finish yet
738 application.SendNotification();
739 finishCheck.CheckSignalReceived();
741 application.SendNotification();
742 application.Render(20);
744 DALI_TEST_EQUALS(destinationWorldPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
749 int UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance(void)
751 ToolkitTestApplication application;
752 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutPositionInheritance");
754 Vector3 sourcePosition(50, 50, 0);
755 Vector3 destinationPosition(100, 100, 0);
757 Control control1 = Control::New();
758 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
759 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
760 control1.SetProperty(Actor::Property::POSITION, sourcePosition);
761 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
762 Property::Map controlProperty1;
763 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
764 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
765 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
767 Control control2 = Control::New();
768 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
769 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
770 control2.SetProperty(Actor::Property::POSITION, Vector3(150, 150, 0));
771 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
772 Property::Map controlProperty2;
773 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
774 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
775 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
777 Control control3 = Control::New();
778 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
779 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
780 control3.SetProperty(Actor::Property::POSITION, destinationPosition);
781 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
782 Property::Map controlProperty3;
783 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
784 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
785 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
787 application.GetScene().Add(control1);
788 application.GetScene().Add(control2);
789 control2.Add(control3);
791 application.SendNotification();
792 application.Render(20);
794 Transition transition;
795 TransitionSet transitionSet;
796 bool signalReceived(false);
797 TransitionFinishCheck finishCheck(signalReceived);
799 // not inherit Position.
800 control3.SetProperty(Actor::Property::INHERIT_POSITION, false);
801 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
802 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
804 transition = Transition::New(control1, control3, TimePeriod(0.5f));
805 transitionSet = TransitionSet::New();
806 transitionSet.AddTransition(transition);
807 transitionSet.Play();
808 transitionSet.FinishedSignal().Connect(&application, finishCheck);
810 application.SendNotification();
811 application.Render(300);
813 Vector3 currentPosition = control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION);
814 DALI_TEST_CHECK(currentPosition.x <= destinationPosition.x && currentPosition.x >= sourcePosition.x);
815 DALI_TEST_CHECK(currentPosition.y <= destinationPosition.y && currentPosition.y >= sourcePosition.y);
816 DALI_TEST_CHECK(currentPosition.z <= destinationPosition.z && currentPosition.z >= sourcePosition.z);
818 application.SendNotification();
819 application.Render(300);
821 // We didn't expect the animation to finish yet
822 application.SendNotification();
823 finishCheck.CheckSignalReceived();
825 application.SendNotification();
826 application.Render(20);
828 DALI_TEST_EQUALS(destinationPosition, control3.GetProperty<Vector3>(Actor::Property::WORLD_POSITION), TEST_LOCATION);
832 int UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance(void)
834 ToolkitTestApplication application;
835 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
837 Radian sourceAngle(1.0f);
838 Radian destinationAngle(2.0f);
839 Quaternion sourceOrientation(sourceAngle, Vector3::XAXIS);
840 Quaternion destinationOrientation(destinationAngle, Vector3::XAXIS);
842 Control control1 = Control::New();
843 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
844 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
845 control1.SetProperty(Actor::Property::ORIENTATION, sourceOrientation);
846 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
847 Property::Map controlProperty1;
848 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
849 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
850 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
852 Control control2 = Control::New();
853 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
854 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
855 control2.SetProperty(Actor::Property::ORIENTATION, Quaternion(Radian(2.0f), Vector3::XAXIS));
856 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
857 Property::Map controlProperty2;
858 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
859 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
860 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
862 Control control3 = Control::New();
863 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
864 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
865 control3.SetProperty(Actor::Property::ORIENTATION, destinationOrientation);
866 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
867 Property::Map controlProperty3;
868 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
869 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
870 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
872 // not inherit Orientation.
873 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
874 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, false);
875 control3.SetProperty(Actor::Property::INHERIT_SCALE, true);
878 Radian currentRadian;
880 application.GetScene().Add(control1);
881 application.GetScene().Add(control2);
882 control2.Add(control3);
884 application.SendNotification();
885 application.Render(20);
887 Quaternion currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
888 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
890 Transition transition;
891 TransitionSet transitionSet;
892 bool signalReceived(false);
893 TransitionFinishCheck finishCheck(signalReceived);
895 transition = Transition::New(control1, control3, TimePeriod(0.5f));
896 transitionSet = TransitionSet::New();
897 transitionSet.AddTransition(transition);
898 transitionSet.Play();
899 transitionSet.FinishedSignal().Connect(&application, finishCheck);
901 application.SendNotification();
902 application.Render(300);
904 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
905 DALI_TEST_NOT_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
907 application.SendNotification();
908 application.Render(300);
910 // We didn't expect the animation to finish yet
911 application.SendNotification();
912 finishCheck.CheckSignalReceived();
914 application.SendNotification();
915 application.Render(20);
917 currentOrientation = control3.GetProperty<Quaternion>(Actor::Property::WORLD_ORIENTATION);
918 DALI_TEST_EQUALS(currentOrientation, destinationOrientation, 0.0001f, TEST_LOCATION);
923 int UtcDaliTransitionBetweenControlPairWithTreeWithoutScaleInheritance(void)
925 ToolkitTestApplication application;
926 tet_infoline(" UtcDaliTransitionBetweenControlPairWithTreeWithoutOrientationInheritance");
928 Vector3 sourceScale(1, 1, 1);
929 Vector3 destinationScale(2, 2, 1);
931 Control control1 = Control::New();
932 control1.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
933 control1.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
934 control1.SetProperty(Actor::Property::SCALE, sourceScale);
935 control1.SetProperty(Actor::Property::SIZE, Vector3(150, 150, 0));
936 Property::Map controlProperty1;
937 controlProperty1.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
938 controlProperty1.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
939 control1.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty1);
941 Control control2 = Control::New();
942 control2.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
943 control2.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
944 control2.SetProperty(Actor::Property::SCALE, Vector3(3, 3, 1));
945 control2.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
946 Property::Map controlProperty2;
947 controlProperty2.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
948 controlProperty2.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
949 control2.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty2);
951 Control control3 = Control::New();
952 control3.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
953 control3.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
954 control3.SetProperty(Actor::Property::SCALE, destinationScale);
955 control3.SetProperty(Actor::Property::SIZE, Vector3(120, 120, 0));
956 Property::Map controlProperty3;
957 controlProperty3.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::COLOR);
958 controlProperty3.Insert(Toolkit::ColorVisual::Property::MIX_COLOR, Vector4(1.0f, 0.0f, 0.0f, 1.0f));
959 control3.SetProperty(Toolkit::Control::Property::BACKGROUND, controlProperty3);
961 // not inherit Orientation.
962 control3.SetProperty(Actor::Property::INHERIT_POSITION, true);
963 control3.SetProperty(Actor::Property::INHERIT_ORIENTATION, true);
964 control3.SetProperty(Actor::Property::INHERIT_SCALE, false);
966 application.GetScene().Add(control1);
967 application.GetScene().Add(control2);
968 control2.Add(control3);
970 application.SendNotification();
971 application.Render(20);
973 Vector3 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
974 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);
976 Transition transition;
977 TransitionSet transitionSet;
978 bool signalReceived(false);
979 TransitionFinishCheck finishCheck(signalReceived);
981 transition = Transition::New(control1, control3, TimePeriod(0.5f));
982 transitionSet = TransitionSet::New();
983 transitionSet.AddTransition(transition);
984 transitionSet.Play();
985 transitionSet.FinishedSignal().Connect(&application, finishCheck);
987 application.SendNotification();
988 application.Render(300);
990 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
991 DALI_TEST_CHECK(currentScale.x <= destinationScale.x && currentScale.x >= sourceScale.x);
992 DALI_TEST_CHECK(currentScale.y <= destinationScale.y && currentScale.y >= sourceScale.y);
993 DALI_TEST_CHECK(currentScale.z <= destinationScale.z && currentScale.z >= sourceScale.z);
995 application.SendNotification();
996 application.Render(300);
998 // We didn't expect the animation to finish yet
999 application.SendNotification();
1000 finishCheck.CheckSignalReceived();
1002 application.SendNotification();
1003 application.Render(20);
1005 currentScale = control3.GetProperty<Vector3>(Actor::Property::WORLD_SCALE);
1006 DALI_TEST_EQUALS(currentScale, destinationScale, 0.0001f, TEST_LOCATION);