2 * Copyright (c) 2016 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>
25 using namespace Toolkit;
27 void dali_flexflexContainer_startup(void)
29 test_return_value = TET_UNDEF;
32 void dali_flexflexContainer_cleanup(void)
34 test_return_value = TET_PASS;
40 const char* const PROPERTY_NAME_CONTENT_DIRECTION = "contentDirection";
41 const char* const PROPERTY_NAME_FLEX_DIRECTION = "flexDirection";
42 const char* const PROPERTY_NAME_FLEX_WRAP = "flexWrap";
43 const char* const PROPERTY_NAME_JUSTIFY_CONTENT = "justifyContent";
44 const char* const PROPERTY_NAME_ALIGN_ITEMS = "alignItems";
45 const char* const PROPERTY_NAME_ALIGN_CONTENT = "alignContent";
46 const char* const CHILD_PROPERTY_NAME_FLEX = "flex";
47 const char* const CHILD_PROPERTY_NAME_ALIGN_SELF = "alignSelf";
48 const char* const CHILD_PROPERTY_NAME_FLEX_MARGIN = "flexMargin";
52 int UtcDaliToolkitFlexContainerConstructorP(void)
54 ToolkitTestApplication application;
55 tet_infoline(" UtcDaliToolkitFlexContainerConstructorP");
56 FlexContainer flexContainer;
57 DALI_TEST_CHECK( !flexContainer );
61 int UtcDaliToolkitFlexContainerNewP(void)
63 ToolkitTestApplication application;
64 tet_infoline(" UtcDaliToolkitFlexContainerNewP");
65 FlexContainer flexContainer = FlexContainer::New();
66 DALI_TEST_CHECK( flexContainer );
70 int UtcDaliToolkitFlexContainerDownCastP(void)
72 ToolkitTestApplication application;
73 tet_infoline(" UtcDaliToolkitFlexContainerDownCastP");
74 FlexContainer flexContainer1 = FlexContainer::New();
75 BaseHandle object( flexContainer1 );
77 FlexContainer flexContainer2 = FlexContainer::DownCast( object );
78 DALI_TEST_CHECK( flexContainer2 );
80 FlexContainer flexContainer3 = DownCast< FlexContainer >( object );
81 DALI_TEST_CHECK( flexContainer3 );
85 int UtcDaliToolkitFlexContainerDownCastN(void)
87 ToolkitTestApplication application;
88 tet_infoline(" UtcDaliToolkitFlexContainerDownCastN");
89 BaseHandle uninitializedObject;
90 FlexContainer flexContainer1 = FlexContainer::DownCast( uninitializedObject );
91 DALI_TEST_CHECK( !flexContainer1 );
93 FlexContainer flexContainer2 = DownCast< FlexContainer >( uninitializedObject );
94 DALI_TEST_CHECK( !flexContainer2 );
98 int UtcDaliToolkitFlexContainerCopyConstructorP(void)
100 ToolkitTestApplication application;
101 tet_infoline(" UtcDaliToolkitFlexContainerCopyConstructorP");
102 FlexContainer flexContainer = FlexContainer::New();
103 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
105 FlexContainer copy( flexContainer );
106 DALI_TEST_CHECK( copy );
107 DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
112 int UtcDaliToolkitFlexContainerAssignmentOperatorP(void)
114 ToolkitTestApplication application;
115 tet_infoline(" UtcDaliToolkitFlexContainerAssingmentOperatorP");
116 FlexContainer flexContainer = FlexContainer::New();
117 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
119 FlexContainer copy = flexContainer;
120 DALI_TEST_CHECK( copy );
121 DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
125 // Positive test case for a method
126 int UtcDaliToolkitFlexContainerGetPropertyP(void)
128 ToolkitTestApplication application;
129 tet_infoline(" UtcDaliToolkitFlexContainerGetPropertyP");
130 FlexContainer flexContainer = FlexContainer::New();
131 DALI_TEST_CHECK( flexContainer );
133 // Check Property Indices are correct
134 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_CONTENT_DIRECTION ) == FlexContainer::Property::CONTENT_DIRECTION );
135 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_DIRECTION ) == FlexContainer::Property::FLEX_DIRECTION );
136 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_WRAP ) == FlexContainer::Property::FLEX_WRAP );
137 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_JUSTIFY_CONTENT ) == FlexContainer::Property::JUSTIFY_CONTENT );
138 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_ITEMS ) == FlexContainer::Property::ALIGN_ITEMS );
139 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_CONTENT ) == FlexContainer::Property::ALIGN_CONTENT );
144 int UtcDaliToolkitFlexContainerSetPropertyP(void)
146 ToolkitTestApplication application;
147 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
148 FlexContainer flexContainer = FlexContainer::New();
149 DALI_TEST_CHECK( flexContainer );
151 // Add flex container to the stage
152 Stage::GetCurrent().Add( flexContainer );
154 // Create two actors and add them to the container
155 Actor actor1 = Actor::New();
156 Actor actor2 = Actor::New();
157 DALI_TEST_CHECK( actor1 );
158 DALI_TEST_CHECK( actor2 );
160 flexContainer.Add(actor1);
161 flexContainer.Add(actor2);
163 // Check content direction property.
164 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, FlexContainer::RTL );
165 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
167 // Check flex direction property.
168 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::COLUMN_REVERSE );
169 DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::COLUMN_REVERSE, TEST_LOCATION );
171 // Check flex wrap property.
172 flexContainer.SetProperty( FlexContainer::Property::FLEX_WRAP, FlexContainer::WRAP );
173 DALI_TEST_EQUALS( (FlexContainer::WrapType)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_WRAP ), FlexContainer::WRAP, TEST_LOCATION );
175 // Check justify content property.
176 flexContainer.SetProperty( FlexContainer::Property::JUSTIFY_CONTENT, FlexContainer::JUSTIFY_SPACE_BETWEEN );
177 DALI_TEST_EQUALS( (FlexContainer::Justification)flexContainer.GetProperty<int>( FlexContainer::Property::JUSTIFY_CONTENT ), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION );
179 // Check align items property.
180 flexContainer.SetProperty( FlexContainer::Property::ALIGN_ITEMS, FlexContainer::ALIGN_FLEX_START );
181 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_ITEMS ), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION );
183 // Check align content property.
184 flexContainer.SetProperty( FlexContainer::Property::ALIGN_CONTENT, FlexContainer::ALIGN_STRETCH );
185 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_CONTENT ), FlexContainer::ALIGN_STRETCH, TEST_LOCATION );
191 int UtcDaliToolkitFlexContainerSetPropertyEnumP(void)
193 ToolkitTestApplication application;
194 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyEnumP");
195 FlexContainer flexContainer = FlexContainer::New();
196 DALI_TEST_CHECK( flexContainer );
198 // Add flex container to the stage
199 Stage::GetCurrent().Add( flexContainer );
201 // Create two actors and add them to the container
202 Actor actor1 = Actor::New();
203 Actor actor2 = Actor::New();
204 DALI_TEST_CHECK( actor1 );
205 DALI_TEST_CHECK( actor2 );
207 flexContainer.Add(actor1);
208 flexContainer.Add(actor2);
210 // Check content direction property.
211 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "RTL" );
212 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
214 // Check flex direction property.
215 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, "columnReverse" );
216 DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::COLUMN_REVERSE, TEST_LOCATION );
218 // Check flex wrap property.
219 flexContainer.SetProperty( FlexContainer::Property::FLEX_WRAP, "wrap" );
220 DALI_TEST_EQUALS( (FlexContainer::WrapType)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_WRAP ), FlexContainer::WRAP, TEST_LOCATION );
222 // Check justify content property.
223 flexContainer.SetProperty( FlexContainer::Property::JUSTIFY_CONTENT, "spaceBetween" );
224 DALI_TEST_EQUALS( (FlexContainer::Justification)flexContainer.GetProperty<int>( FlexContainer::Property::JUSTIFY_CONTENT ), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION );
226 // Check align items property.
227 flexContainer.SetProperty( FlexContainer::Property::ALIGN_ITEMS, "flexStart" );
228 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_ITEMS ), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION );
230 // Check align content property.
231 flexContainer.SetProperty( FlexContainer::Property::ALIGN_CONTENT, "stretch" );
232 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_CONTENT ), FlexContainer::ALIGN_STRETCH, TEST_LOCATION );
237 int UtcDaliToolkitFlexContainerSetChildPropertyP(void)
239 ToolkitTestApplication application;
240 tet_infoline(" UtcDaliToolkitFlexContainerSetChildPropertyP");
241 FlexContainer flexContainer = FlexContainer::New();
242 DALI_TEST_CHECK( flexContainer );
244 // Add flex container to the stage
245 Stage::GetCurrent().Add( flexContainer );
247 // Create an actor and add it to the container
248 Actor actor = Actor::New();
249 DALI_TEST_CHECK( actor );
251 flexContainer.Add(actor);
253 // Check flex child property.
254 actor.SetProperty( FlexContainer::ChildProperty::FLEX, 2.0f );
255 DALI_TEST_EQUALS( actor.GetProperty<float>( FlexContainer::ChildProperty::FLEX ), 2.0f, TEST_LOCATION );
256 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_FLEX ) == FlexContainer::ChildProperty::FLEX );
258 // Check align self child property.
259 actor.SetProperty( FlexContainer::ChildProperty::ALIGN_SELF, FlexContainer::ALIGN_FLEX_END );
260 DALI_TEST_EQUALS( (FlexContainer::Alignment)actor.GetProperty<int>( FlexContainer::ChildProperty::ALIGN_SELF ), FlexContainer::ALIGN_FLEX_END, TEST_LOCATION );
261 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_ALIGN_SELF ) == FlexContainer::ChildProperty::ALIGN_SELF );
263 // Check flex margin child property.
264 actor.SetProperty( FlexContainer::ChildProperty::FLEX_MARGIN, Vector4( 10.0f, 10.0f, 10.0f, 10.0f ) );
265 DALI_TEST_EQUALS( actor.GetProperty<Vector4>( FlexContainer::ChildProperty::FLEX_MARGIN ), Vector4( 10.0f, 10.0f, 10.0f, 10.0f ), TEST_LOCATION );
266 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_FLEX_MARGIN ) == FlexContainer::ChildProperty::FLEX_MARGIN );
268 application.SendNotification();
269 application.Render();
276 //Functor to test whether RelayoutSignal is emitted
277 class RelayoutSignalHandler : public Dali::ConnectionTracker
281 RelayoutSignalHandler( FlexContainer& actor )
282 : mSignalVerified( false ),
287 // callback to be connected to RelayoutSignal
288 void RelayoutCallback( Actor actor )
290 if( mActor == actor )
292 mSignalVerified = true;
298 mSignalVerified = false;
301 bool mSignalVerified;
305 int UtcDaliToolkitFlexContainerRemoveChildP(void)
307 ToolkitTestApplication application;
308 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
309 FlexContainer flexContainer = FlexContainer::New();
310 DALI_TEST_CHECK( flexContainer );
312 // Add flex container to the stage
313 Stage::GetCurrent().Add( flexContainer );
315 RelayoutSignalHandler relayoutSignal(flexContainer);
316 flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback );
318 // Create two actors and add them to the container
319 Actor actor1 = Actor::New();
320 Actor actor2 = Actor::New();
321 DALI_TEST_CHECK( actor1 );
322 DALI_TEST_CHECK( actor2 );
324 flexContainer.Add(actor1);
325 flexContainer.Add(actor2);
327 application.SendNotification();
328 application.Render();
330 DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
331 relayoutSignal.Reset();
333 DALI_TEST_CHECK( actor1 );
334 DALI_TEST_CHECK( actor2 );
336 flexContainer.Remove(actor1);
337 application.SendNotification();
338 application.Render();
339 DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
340 relayoutSignal.Reset();
342 flexContainer.Remove(actor2);
343 application.SendNotification();
344 application.Render();
345 DALI_TEST_EQUALS( relayoutSignal.mSignalVerified, true, TEST_LOCATION );
346 relayoutSignal.Reset();
354 // Functors to test whether PreFocusChange signal is emitted when the keyboard focus is about to change
355 class PreFocusChangeCallback : public Dali::ConnectionTracker
358 PreFocusChangeCallback(bool& signalReceived, Actor firstFocusActor)
359 : mSignalVerified(signalReceived),
360 mFirstFocusActor(firstFocusActor),
361 mDirection(Control::KeyboardFocus::LEFT)
365 Actor Callback(Actor currentFocusedActor, Actor proposedActorToFocus, Control::KeyboardFocus::Direction direction)
367 tet_infoline("Verifying PreFocusChangeCallback()");
369 mSignalVerified = true;
370 mDirection = direction;
371 if( ! proposedActorToFocus )
373 return mFirstFocusActor;
377 return proposedActorToFocus;
383 mSignalVerified = false;
384 mDirection = Control::KeyboardFocus::LEFT;
387 bool& mSignalVerified;
388 Actor mFirstFocusActor;
389 Control::KeyboardFocus::Direction mDirection;
392 // Functors to test whether focus changed signal is emitted when the keyboard focus is changed
393 class FocusChangedCallback : public Dali::ConnectionTracker
396 FocusChangedCallback(bool& signalReceived)
397 : mSignalVerified(signalReceived),
398 mOriginalFocusedActor(),
399 mCurrentFocusedActor()
403 void Callback(Actor originalFocusedActor, Actor currentFocusedActor)
405 tet_infoline("Verifying FocusChangedCallback()");
407 if(originalFocusedActor == mCurrentFocusedActor)
409 mSignalVerified = true;
412 mOriginalFocusedActor = originalFocusedActor;
413 mCurrentFocusedActor = currentFocusedActor;
418 mSignalVerified = false;
421 bool& mSignalVerified;
422 Actor mOriginalFocusedActor;
423 Actor mCurrentFocusedActor;
426 } // anonymous namespace
429 int UtcDaliToolkitFlexContainerMoveFocus(void)
431 ToolkitTestApplication application;
432 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
433 FlexContainer flexContainer = FlexContainer::New();
434 DALI_TEST_CHECK( flexContainer );
436 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW );
438 // Add flex container to the stage
439 Stage::GetCurrent().Add( flexContainer );
440 Size stageSize = Stage::GetCurrent().GetSize();
442 RelayoutSignalHandler relayoutSignal(flexContainer);
443 flexContainer.OnRelayoutSignal().Connect(&relayoutSignal, &RelayoutSignalHandler::RelayoutCallback );
444 flexContainer.SetProperty( Actor::Property::SIZE, stageSize );
446 // Create two actors and add them to the container
447 Actor actor1 = Actor::New();
448 Actor actor2 = Actor::New();
449 actor1.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
450 actor2.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
451 DALI_TEST_CHECK( actor1 );
452 DALI_TEST_CHECK( actor2 );
454 flexContainer.Add(actor1);
455 flexContainer.Add(actor2);
457 application.SendNotification();
458 application.Render();
460 KeyboardFocusManager manager = KeyboardFocusManager::Get();
461 DALI_TEST_CHECK(manager);
463 bool preFocusChangeSignalVerified = false;
464 PreFocusChangeCallback preFocusChangeCallback(preFocusChangeSignalVerified, actor1);
465 manager.PreFocusChangeSignal().Connect( &preFocusChangeCallback, &PreFocusChangeCallback::Callback );
467 bool focusChangedSignalVerified = false;
468 FocusChangedCallback focusChangedCallback(focusChangedSignalVerified);
469 manager.FocusChangedSignal().Connect( &focusChangedCallback, &FocusChangedCallback::Callback );
471 // Move the focus to the right
472 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
473 DALI_TEST_CHECK(preFocusChangeCallback.mSignalVerified);
474 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
475 preFocusChangeCallback.Reset();
476 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
477 focusChangedCallback.Reset();
479 // Move the focus towards right
480 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::RIGHT), true, TEST_LOCATION);
481 DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
482 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor2, TEST_LOCATION);
483 DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
484 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor2, TEST_LOCATION);
486 preFocusChangeCallback.Reset();
487 focusChangedCallback.Reset();
489 // Move the focus towards left
490 DALI_TEST_EQUALS(manager.MoveFocus(Control::KeyboardFocus::LEFT), true, TEST_LOCATION);
491 DALI_TEST_EQUALS(preFocusChangeCallback.mSignalVerified, true, TEST_LOCATION);
492 DALI_TEST_EQUALS(manager.GetCurrentFocusActor(), actor1, TEST_LOCATION);
493 DALI_TEST_EQUALS(focusChangedCallback.mSignalVerified, true, TEST_LOCATION);
494 DALI_TEST_EQUALS(focusChangedCallback.mCurrentFocusedActor, actor1, TEST_LOCATION);
499 int UtcDaliToolkitFlexContainerRTLSupportP(void)
501 ToolkitTestApplication application;
502 tet_infoline(" UtcDaliToolkitFlexContainerRTLSupportP");
503 FlexContainer flexContainer = FlexContainer::New();
504 DALI_TEST_CHECK( flexContainer );
506 Actor actor0 = Actor::New();
508 Stage::GetCurrent().Add( actor0 );
509 actor0.Add( flexContainer );
511 // Create two actors and add them to the container
512 Actor actor1 = Actor::New();
513 Actor actor2 = Actor::New();
514 DALI_TEST_CHECK( actor1 );
515 DALI_TEST_CHECK( actor2 );
517 flexContainer.Add(actor1);
518 flexContainer.Add(actor2);
520 // Check flex direction property.
521 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, "row" );
522 DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::ROW, TEST_LOCATION );
524 // Check content direction property.
525 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::INHERIT, TEST_LOCATION );
527 actor0.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT );
528 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
530 actor0.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::LEFT_TO_RIGHT );
531 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::LTR, TEST_LOCATION );
533 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "RTL" );
534 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
536 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "LTR" );
537 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::LTR, TEST_LOCATION );
539 actor0.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::RIGHT_TO_LEFT );
540 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::LTR, TEST_LOCATION );
542 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "inherit" );
543 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
545 actor0.SetProperty( Dali::Actor::Property::LAYOUT_DIRECTION, Dali::LayoutDirection::LEFT_TO_RIGHT );
546 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::LTR, TEST_LOCATION );
548 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "inherit" );
549 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::LTR, TEST_LOCATION );
551 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "LTR" );
552 application.SendNotification();
553 application.Render();
555 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, "RTL" );
556 application.SendNotification();
557 application.Render();