2 * Copyright (c) 2022 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.
21 #include <dali-toolkit-test-suite-utils.h>
23 #include <dali-toolkit/dali-toolkit.h>
24 #include <dali/devel-api/actors/actor-devel.h>
27 using namespace Toolkit;
29 void dali_flexflexContainer_startup(void)
31 test_return_value = TET_UNDEF;
34 void dali_flexflexContainer_cleanup(void)
36 test_return_value = TET_PASS;
41 const char* const PROPERTY_NAME_CONTENT_DIRECTION = "contentDirection";
42 const char* const PROPERTY_NAME_FLEX_DIRECTION = "flexDirection";
43 const char* const PROPERTY_NAME_FLEX_WRAP = "flexWrap";
44 const char* const PROPERTY_NAME_JUSTIFY_CONTENT = "justifyContent";
45 const char* const PROPERTY_NAME_ALIGN_ITEMS = "alignItems";
46 const char* const PROPERTY_NAME_ALIGN_CONTENT = "alignContent";
47 const char* const CHILD_PROPERTY_NAME_FLEX = "flex";
48 const char* const CHILD_PROPERTY_NAME_ALIGN_SELF = "alignSelf";
49 const char* const CHILD_PROPERTY_NAME_FLEX_MARGIN = "flexMargin";
53 int UtcDaliToolkitFlexContainerConstructorP(void)
55 ToolkitTestApplication application;
56 tet_infoline(" UtcDaliToolkitFlexContainerConstructorP");
57 FlexContainer flexContainer;
58 DALI_TEST_CHECK(!flexContainer);
62 int UtcDaliToolkitFlexContainerNewP(void)
64 ToolkitTestApplication application;
65 tet_infoline(" UtcDaliToolkitFlexContainerNewP");
66 FlexContainer flexContainer = FlexContainer::New();
67 DALI_TEST_CHECK(flexContainer);
71 int UtcDaliToolkitFlexContainerDownCastP(void)
73 ToolkitTestApplication application;
74 tet_infoline(" UtcDaliToolkitFlexContainerDownCastP");
75 FlexContainer flexContainer1 = FlexContainer::New();
76 BaseHandle object(flexContainer1);
78 FlexContainer flexContainer2 = FlexContainer::DownCast(object);
79 DALI_TEST_CHECK(flexContainer2);
81 FlexContainer flexContainer3 = DownCast<FlexContainer>(object);
82 DALI_TEST_CHECK(flexContainer3);
86 int UtcDaliToolkitFlexContainerDownCastN(void)
88 ToolkitTestApplication application;
89 tet_infoline(" UtcDaliToolkitFlexContainerDownCastN");
90 BaseHandle uninitializedObject;
91 FlexContainer flexContainer1 = FlexContainer::DownCast(uninitializedObject);
92 DALI_TEST_CHECK(!flexContainer1);
94 FlexContainer flexContainer2 = DownCast<FlexContainer>(uninitializedObject);
95 DALI_TEST_CHECK(!flexContainer2);
99 int UtcDaliToolkitFlexContainerCopyConstructorP(void)
101 ToolkitTestApplication application;
102 tet_infoline(" UtcDaliToolkitFlexContainerCopyConstructorP");
103 FlexContainer flexContainer = FlexContainer::New();
104 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE);
106 FlexContainer copy(flexContainer);
107 DALI_TEST_CHECK(copy);
108 DALI_TEST_CHECK(copy.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION));
113 int UtcDaliFlexContainerMoveConstructor(void)
115 ToolkitTestApplication application;
117 FlexContainer flexContainer = FlexContainer::New();
118 DALI_TEST_EQUALS(1, flexContainer.GetBaseObject().ReferenceCount(), TEST_LOCATION);
119 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE);
120 DALI_TEST_CHECK(flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == FlexContainer::ROW_REVERSE);
122 FlexContainer moved = std::move(flexContainer);
123 DALI_TEST_CHECK(moved);
124 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
125 DALI_TEST_CHECK(moved.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == FlexContainer::ROW_REVERSE);
126 DALI_TEST_CHECK(!flexContainer);
131 int UtcDaliToolkitFlexContainerAssignmentOperatorP(void)
133 ToolkitTestApplication application;
134 tet_infoline(" UtcDaliToolkitFlexContainerAssingmentOperatorP");
135 FlexContainer flexContainer = FlexContainer::New();
136 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE);
138 FlexContainer copy = flexContainer;
139 DALI_TEST_CHECK(copy);
140 DALI_TEST_CHECK(copy.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION));
144 int UtcDaliFlexContainerMoveAssignment(void)
146 ToolkitTestApplication application;
148 FlexContainer flexContainer = FlexContainer::New();
149 DALI_TEST_EQUALS(1, flexContainer.GetBaseObject().ReferenceCount(), TEST_LOCATION);
150 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE);
151 DALI_TEST_CHECK(flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == FlexContainer::ROW_REVERSE);
154 moved = std::move(flexContainer);
155 DALI_TEST_CHECK(moved);
156 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
157 DALI_TEST_CHECK(moved.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION) == FlexContainer::ROW_REVERSE);
158 DALI_TEST_CHECK(!flexContainer);
163 // Positive test case for a method
164 int UtcDaliToolkitFlexContainerGetPropertyP(void)
166 ToolkitTestApplication application;
167 tet_infoline(" UtcDaliToolkitFlexContainerGetPropertyP");
168 FlexContainer flexContainer = FlexContainer::New();
169 DALI_TEST_CHECK(flexContainer);
171 // Check Property Indices are correct
172 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_CONTENT_DIRECTION) == FlexContainer::Property::CONTENT_DIRECTION);
173 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_FLEX_DIRECTION) == FlexContainer::Property::FLEX_DIRECTION);
174 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_FLEX_WRAP) == FlexContainer::Property::FLEX_WRAP);
175 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_JUSTIFY_CONTENT) == FlexContainer::Property::JUSTIFY_CONTENT);
176 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_ALIGN_ITEMS) == FlexContainer::Property::ALIGN_ITEMS);
177 DALI_TEST_CHECK(flexContainer.GetPropertyIndex(PROPERTY_NAME_ALIGN_CONTENT) == FlexContainer::Property::ALIGN_CONTENT);
182 int UtcDaliToolkitFlexContainerSetPropertyP(void)
184 ToolkitTestApplication application;
185 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
186 FlexContainer flexContainer = FlexContainer::New();
187 DALI_TEST_CHECK(flexContainer);
189 // Add flex container to the stage
190 application.GetScene().Add(flexContainer);
192 // Create two actors and add them to the container
193 Actor actor1 = Actor::New();
194 Actor actor2 = Actor::New();
195 DALI_TEST_CHECK(actor1);
196 DALI_TEST_CHECK(actor2);
198 flexContainer.Add(actor1);
199 flexContainer.Add(actor2);
201 // Check content direction property.
202 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, FlexContainer::RTL);
203 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::RTL, TEST_LOCATION);
205 // Check flex direction property.
206 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::COLUMN_REVERSE);
207 DALI_TEST_EQUALS((FlexContainer::FlexDirection)flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION), FlexContainer::COLUMN_REVERSE, TEST_LOCATION);
209 // Check flex wrap property.
210 flexContainer.SetProperty(FlexContainer::Property::FLEX_WRAP, FlexContainer::WRAP);
211 DALI_TEST_EQUALS((FlexContainer::WrapType)flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_WRAP), FlexContainer::WRAP, TEST_LOCATION);
213 // Check justify content property.
214 flexContainer.SetProperty(FlexContainer::Property::JUSTIFY_CONTENT, FlexContainer::JUSTIFY_SPACE_BETWEEN);
215 DALI_TEST_EQUALS((FlexContainer::Justification)flexContainer.GetProperty<int>(FlexContainer::Property::JUSTIFY_CONTENT), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION);
217 // Check align items property.
218 flexContainer.SetProperty(FlexContainer::Property::ALIGN_ITEMS, FlexContainer::ALIGN_FLEX_START);
219 DALI_TEST_EQUALS((FlexContainer::Alignment)flexContainer.GetProperty<int>(FlexContainer::Property::ALIGN_ITEMS), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION);
221 // Check align content property.
222 flexContainer.SetProperty(FlexContainer::Property::ALIGN_CONTENT, FlexContainer::ALIGN_STRETCH);
223 DALI_TEST_EQUALS((FlexContainer::Alignment)flexContainer.GetProperty<int>(FlexContainer::Property::ALIGN_CONTENT), FlexContainer::ALIGN_STRETCH, TEST_LOCATION);
228 int UtcDaliToolkitFlexContainerSetPropertyEnumP(void)
230 ToolkitTestApplication application;
231 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyEnumP");
232 FlexContainer flexContainer = FlexContainer::New();
233 DALI_TEST_CHECK(flexContainer);
235 // Add flex container to the stage
236 application.GetScene().Add(flexContainer);
238 // Create two actors and add them to the container
239 Actor actor1 = Actor::New();
240 Actor actor2 = Actor::New();
241 DALI_TEST_CHECK(actor1);
242 DALI_TEST_CHECK(actor2);
244 flexContainer.Add(actor1);
245 flexContainer.Add(actor2);
247 // Check content direction property.
248 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "RTL");
249 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::RTL, TEST_LOCATION);
251 // Check flex direction property.
252 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, "columnReverse");
253 DALI_TEST_EQUALS((FlexContainer::FlexDirection)flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION), FlexContainer::COLUMN_REVERSE, TEST_LOCATION);
255 // Check flex wrap property.
256 flexContainer.SetProperty(FlexContainer::Property::FLEX_WRAP, "wrap");
257 DALI_TEST_EQUALS((FlexContainer::WrapType)flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_WRAP), FlexContainer::WRAP, TEST_LOCATION);
259 // Check justify content property.
260 flexContainer.SetProperty(FlexContainer::Property::JUSTIFY_CONTENT, "spaceBetween");
261 DALI_TEST_EQUALS((FlexContainer::Justification)flexContainer.GetProperty<int>(FlexContainer::Property::JUSTIFY_CONTENT), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION);
263 // Check align items property.
264 flexContainer.SetProperty(FlexContainer::Property::ALIGN_ITEMS, "flexStart");
265 DALI_TEST_EQUALS((FlexContainer::Alignment)flexContainer.GetProperty<int>(FlexContainer::Property::ALIGN_ITEMS), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION);
267 // Check align content property.
268 flexContainer.SetProperty(FlexContainer::Property::ALIGN_CONTENT, "stretch");
269 DALI_TEST_EQUALS((FlexContainer::Alignment)flexContainer.GetProperty<int>(FlexContainer::Property::ALIGN_CONTENT), FlexContainer::ALIGN_STRETCH, TEST_LOCATION);
274 int UtcDaliToolkitFlexContainerSetChildPropertyP(void)
276 ToolkitTestApplication application;
277 tet_infoline(" UtcDaliToolkitFlexContainerSetChildPropertyP");
278 FlexContainer flexContainer = FlexContainer::New();
279 DALI_TEST_CHECK(flexContainer);
281 // Add flex container to the stage
282 application.GetScene().Add(flexContainer);
284 // Create an actor and add it to the container
285 Actor actor = Actor::New();
286 DALI_TEST_CHECK(actor);
288 flexContainer.Add(actor);
290 // Check flex child property.
291 actor.SetProperty(FlexContainer::ChildProperty::FLEX, 2.0f);
292 DALI_TEST_EQUALS(actor.GetProperty<float>(FlexContainer::ChildProperty::FLEX), 2.0f, TEST_LOCATION);
293 DALI_TEST_CHECK(actor.GetPropertyIndex(CHILD_PROPERTY_NAME_FLEX) == FlexContainer::ChildProperty::FLEX);
295 // Check align self child property.
296 actor.SetProperty(FlexContainer::ChildProperty::ALIGN_SELF, FlexContainer::ALIGN_FLEX_END);
297 DALI_TEST_EQUALS((FlexContainer::Alignment)actor.GetProperty<int>(FlexContainer::ChildProperty::ALIGN_SELF), FlexContainer::ALIGN_FLEX_END, TEST_LOCATION);
298 DALI_TEST_CHECK(actor.GetPropertyIndex(CHILD_PROPERTY_NAME_ALIGN_SELF) == FlexContainer::ChildProperty::ALIGN_SELF);
300 // Check flex margin child property.
301 actor.SetProperty(FlexContainer::ChildProperty::FLEX_MARGIN, Vector4(10.0f, 10.0f, 10.0f, 10.0f));
302 DALI_TEST_EQUALS(actor.GetProperty<Vector4>(FlexContainer::ChildProperty::FLEX_MARGIN), Vector4(10.0f, 10.0f, 10.0f, 10.0f), TEST_LOCATION);
303 DALI_TEST_CHECK(actor.GetPropertyIndex(CHILD_PROPERTY_NAME_FLEX_MARGIN) == FlexContainer::ChildProperty::FLEX_MARGIN);
305 application.SendNotification();
306 application.Render();
311 //Functor to test whether RelayoutSignal is emitted
312 class RelayoutSignalHandler : public Dali::ConnectionTracker
315 RelayoutSignalHandler(FlexContainer& actor)
316 : mSignalVerified(false),
321 // callback to be connected to RelayoutSignal
322 void RelayoutCallback(Actor actor)
326 mSignalVerified = true;
332 mSignalVerified = false;
335 bool mSignalVerified;
339 int UtcDaliToolkitFlexContainerRemoveChildP(void)
341 ToolkitTestApplication application;
342 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
343 FlexContainer flexContainer = FlexContainer::New();
344 DALI_TEST_CHECK(flexContainer);
346 // Add flex container to the stage
347 application.GetScene().Add(flexContainer);
349 RelayoutSignalHandler relayoutSignal(flexContainer);
350 flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback);
352 // Create two actors and add them to the container
353 Actor actor1 = Actor::New();
354 Actor actor2 = Actor::New();
355 DALI_TEST_CHECK(actor1);
356 DALI_TEST_CHECK(actor2);
358 flexContainer.Add(actor1);
359 flexContainer.Add(actor2);
361 application.SendNotification();
362 application.Render();
364 DALI_TEST_EQUALS(relayoutSignal.mSignalVerified, true, TEST_LOCATION);
365 relayoutSignal.Reset();
367 DALI_TEST_CHECK(actor1);
368 DALI_TEST_CHECK(actor2);
370 flexContainer.Remove(actor1);
371 application.SendNotification();
372 application.Render();
373 DALI_TEST_EQUALS(relayoutSignal.mSignalVerified, true, TEST_LOCATION);
374 relayoutSignal.Reset();
376 flexContainer.Remove(actor2);
377 application.SendNotification();
378 application.Render();
379 DALI_TEST_EQUALS(relayoutSignal.mSignalVerified, true, TEST_LOCATION);
380 relayoutSignal.Reset();
387 // Functors to test whether PreFocusChange signal is emitted when the keyboard focus is about to change
388 class PreFocusChangeCallback : public Dali::ConnectionTracker
391 PreFocusChangeCallback(bool& signalReceived, Actor firstFocusActor)
392 : mSignalVerified(signalReceived),
393 mFirstFocusActor(firstFocusActor),
394 mDirection(Control::KeyboardFocus::LEFT)
398 Actor Callback(Actor currentFocusedActor, Actor proposedActorToFocus, Control::KeyboardFocus::Direction direction)
400 tet_infoline("Verifying PreFocusChangeCallback()");
402 mSignalVerified = true;
403 mDirection = direction;
404 if(!proposedActorToFocus)
406 return mFirstFocusActor;
410 return proposedActorToFocus;
416 mSignalVerified = false;
417 mDirection = Control::KeyboardFocus::LEFT;
420 bool& mSignalVerified;
421 Actor mFirstFocusActor;
422 Control::KeyboardFocus::Direction mDirection;
425 // Functors to test whether focus changed signal is emitted when the keyboard focus is changed
426 class FocusChangedCallback : public Dali::ConnectionTracker
429 FocusChangedCallback(bool& signalReceived)
430 : mSignalVerified(signalReceived),
431 mOriginalFocusedActor(),
432 mCurrentFocusedActor()
436 void Callback(Actor originalFocusedActor, Actor currentFocusedActor)
438 tet_infoline("Verifying FocusChangedCallback()");
440 if(originalFocusedActor == mCurrentFocusedActor)
442 mSignalVerified = true;
445 mOriginalFocusedActor = originalFocusedActor;
446 mCurrentFocusedActor = currentFocusedActor;
451 mSignalVerified = false;
454 bool& mSignalVerified;
455 Actor mOriginalFocusedActor;
456 Actor mCurrentFocusedActor;
459 } // anonymous namespace
461 int UtcDaliToolkitFlexContainerMoveFocus(void)
463 ToolkitTestApplication application;
464 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
465 FlexContainer flexContainer = FlexContainer::New();
466 DALI_TEST_CHECK(flexContainer);
468 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW);
470 // Add flex container to the stage
471 application.GetScene().Add(flexContainer);
472 Size stageSize = application.GetScene().GetSize();
474 RelayoutSignalHandler relayoutSignal(flexContainer);
475 flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback);
476 flexContainer.SetProperty(Actor::Property::SIZE, stageSize);
478 // Create two actors and add them to the container
479 Actor actor1 = Actor::New();
480 Actor actor2 = Actor::New();
481 actor1.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
482 actor2.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true);
483 DALI_TEST_CHECK(actor1);
484 DALI_TEST_CHECK(actor2);
486 flexContainer.Add(actor1);
487 flexContainer.Add(actor2);
489 application.SendNotification();
490 application.Render();
492 KeyboardFocusManager manager = KeyboardFocusManager::Get();
493 DALI_TEST_CHECK(manager);
495 bool preFocusChangeSignalVerified = false;
496 PreFocusChangeCallback preFocusChangeCallback(preFocusChangeSignalVerified, actor1);
497 manager.PreFocusChangeSignal().Connect(&preFocusChangeCallback, &PreFocusChangeCallback::Callback);
499 bool focusChangedSignalVerified = false;
500 FocusChangedCallback focusChangedCallback(focusChangedSignalVerified);
501 manager.FocusChangedSignal().Connect(&focusChangedCallback, &FocusChangedCallback::Callback);
503 // Move the focus to the right
504 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
505 DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
506 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
507 preFocusChangeCallback.Reset();
508 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
509 focusChangedCallback.Reset();
511 // Move the focus towards right
512 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
513 DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
514 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor2, TEST_LOCATION);
515 DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
516 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor2, TEST_LOCATION);
518 preFocusChangeCallback.Reset();
519 focusChangedCallback.Reset();
521 // Move the focus towards left
522 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::LEFT), true, TEST_LOCATION);
523 DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
524 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
525 DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
526 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
531 int UtcDaliToolkitFlexContainerRTLSupportP(void)
533 ToolkitTestApplication application;
534 tet_infoline(" UtcDaliToolkitFlexContainerRTLSupportP");
535 FlexContainer flexContainer = FlexContainer::New();
536 DALI_TEST_CHECK(flexContainer);
538 Actor actor0 = Actor::New();
540 application.GetScene().Add(actor0);
541 actor0.Add(flexContainer);
543 // Create two actors and add them to the container
544 Actor actor1 = Actor::New();
545 Actor actor2 = Actor::New();
546 DALI_TEST_CHECK(actor1);
547 DALI_TEST_CHECK(actor2);
549 flexContainer.Add(actor1);
550 flexContainer.Add(actor2);
552 // Check flex direction property.
553 flexContainer.SetProperty(FlexContainer::Property::FLEX_DIRECTION, "row");
554 DALI_TEST_EQUALS((FlexContainer::FlexDirection)flexContainer.GetProperty<int>(FlexContainer::Property::FLEX_DIRECTION), FlexContainer::ROW, TEST_LOCATION);
556 // Check content direction property.
557 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::INHERIT, TEST_LOCATION);
559 actor0.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT);
560 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::RTL, TEST_LOCATION);
562 actor0.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::LEFT_TO_RIGHT);
563 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::LTR, TEST_LOCATION);
565 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "RTL");
566 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::RTL, TEST_LOCATION);
568 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "LTR");
569 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::LTR, TEST_LOCATION);
571 actor0.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT);
572 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::LTR, TEST_LOCATION);
574 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "inherit");
575 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::RTL, TEST_LOCATION);
577 actor0.SetProperty(Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::LEFT_TO_RIGHT);
578 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::LTR, TEST_LOCATION);
580 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "inherit");
581 DALI_TEST_EQUALS((FlexContainer::ContentDirection)flexContainer.GetProperty<int>(FlexContainer::Property::CONTENT_DIRECTION), FlexContainer::LTR, TEST_LOCATION);
583 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "LTR");
584 application.SendNotification();
585 application.Render();
587 flexContainer.SetProperty(FlexContainer::Property::CONTENT_DIRECTION, "RTL");
588 application.SendNotification();
589 application.Render();