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>
24 using namespace Toolkit;
26 void dali_flexflexContainer_startup(void)
28 test_return_value = TET_UNDEF;
31 void dali_flexflexContainer_cleanup(void)
33 test_return_value = TET_PASS;
39 const char* const PROPERTY_NAME_CONTENT_DIRECTION = "contentDirection";
40 const char* const PROPERTY_NAME_FLEX_DIRECTION = "flexDirection";
41 const char* const PROPERTY_NAME_FLEX_WRAP = "flexWrap";
42 const char* const PROPERTY_NAME_JUSTIFY_CONTENT = "justifyContent";
43 const char* const PROPERTY_NAME_ALIGN_ITEMS = "alignItems";
44 const char* const PROPERTY_NAME_ALIGN_CONTENT = "alignContent";
45 const char* const CHILD_PROPERTY_NAME_FLEX = "flex";
46 const char* const CHILD_PROPERTY_NAME_ALIGN_SELF = "alignSelf";
47 const char* const CHILD_PROPERTY_NAME_FLEX_MARGIN = "flexMargin";
51 int UtcDaliToolkitFlexContainerConstructorP(void)
53 ToolkitTestApplication application;
54 tet_infoline(" UtcDaliToolkitFlexContainerConstructorP");
55 FlexContainer flexContainer;
56 DALI_TEST_CHECK( !flexContainer );
60 int UtcDaliToolkitFlexContainerNewP(void)
62 ToolkitTestApplication application;
63 tet_infoline(" UtcDaliToolkitFlexContainerNewP");
64 FlexContainer flexContainer = FlexContainer::New();
65 DALI_TEST_CHECK( flexContainer );
69 int UtcDaliToolkitFlexContainerDownCastP(void)
71 ToolkitTestApplication application;
72 tet_infoline(" UtcDaliToolkitFlexContainerDownCastP");
73 FlexContainer flexContainer1 = FlexContainer::New();
74 BaseHandle object( flexContainer1 );
76 FlexContainer flexContainer2 = FlexContainer::DownCast( object );
77 DALI_TEST_CHECK( flexContainer2 );
79 FlexContainer flexContainer3 = DownCast< FlexContainer >( object );
80 DALI_TEST_CHECK( flexContainer3 );
84 int UtcDaliToolkitFlexContainerDownCastN(void)
86 ToolkitTestApplication application;
87 tet_infoline(" UtcDaliToolkitFlexContainerDownCastN");
88 BaseHandle uninitializedObject;
89 FlexContainer flexContainer1 = FlexContainer::DownCast( uninitializedObject );
90 DALI_TEST_CHECK( !flexContainer1 );
92 FlexContainer flexContainer2 = DownCast< FlexContainer >( uninitializedObject );
93 DALI_TEST_CHECK( !flexContainer2 );
97 int UtcDaliToolkitFlexContainerCopyConstructorP(void)
99 ToolkitTestApplication application;
100 tet_infoline(" UtcDaliToolkitFlexContainerCopyConstructorP");
101 FlexContainer flexContainer = FlexContainer::New();
102 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
104 FlexContainer copy( flexContainer );
105 DALI_TEST_CHECK( copy );
106 DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
111 int UtcDaliToolkitFlexContainerAssignmentOperatorP(void)
113 ToolkitTestApplication application;
114 tet_infoline(" UtcDaliToolkitFlexContainerAssingmentOperatorP");
115 FlexContainer flexContainer = FlexContainer::New();
116 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
118 FlexContainer copy = flexContainer;
119 DALI_TEST_CHECK( copy );
120 DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
124 // Positive test case for a method
125 int UtcDaliToolkitFlexContainerGetPropertyP(void)
127 ToolkitTestApplication application;
128 tet_infoline(" UtcDaliToolkitFlexContainerGetPropertyP");
129 FlexContainer flexContainer = FlexContainer::New();
130 DALI_TEST_CHECK( flexContainer );
132 // Check Property Indices are correct
133 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_CONTENT_DIRECTION ) == FlexContainer::Property::CONTENT_DIRECTION );
134 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_DIRECTION ) == FlexContainer::Property::FLEX_DIRECTION );
135 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_WRAP ) == FlexContainer::Property::FLEX_WRAP );
136 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_JUSTIFY_CONTENT ) == FlexContainer::Property::JUSTIFY_CONTENT );
137 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_ITEMS ) == FlexContainer::Property::ALIGN_ITEMS );
138 DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_CONTENT ) == FlexContainer::Property::ALIGN_CONTENT );
143 int UtcDaliToolkitFlexContainerSetPropertyP(void)
145 ToolkitTestApplication application;
146 tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
147 FlexContainer flexContainer = FlexContainer::New();
148 DALI_TEST_CHECK( flexContainer );
150 // Add flex container to the stage
151 Stage::GetCurrent().Add( flexContainer );
153 // Create two actors and add them to the container
154 Actor actor1 = Actor::New();
155 Actor actor2 = Actor::New();
156 DALI_TEST_CHECK( actor1 );
157 DALI_TEST_CHECK( actor2 );
159 flexContainer.Add(actor1);
160 flexContainer.Add(actor2);
162 // Check content direction property.
163 flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, FlexContainer::RTL );
164 DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
166 // Check flex direction property.
167 flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::COLUMN_REVERSE );
168 DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::COLUMN_REVERSE, TEST_LOCATION );
170 // Check flex wrap property.
171 flexContainer.SetProperty( FlexContainer::Property::FLEX_WRAP, FlexContainer::WRAP );
172 DALI_TEST_EQUALS( (FlexContainer::WrapType)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_WRAP ), FlexContainer::WRAP, TEST_LOCATION );
174 // Check justify content property.
175 flexContainer.SetProperty( FlexContainer::Property::JUSTIFY_CONTENT, FlexContainer::JUSTIFY_SPACE_BETWEEN );
176 DALI_TEST_EQUALS( (FlexContainer::Justification)flexContainer.GetProperty<int>( FlexContainer::Property::JUSTIFY_CONTENT ), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION );
178 // Check align items property.
179 flexContainer.SetProperty( FlexContainer::Property::ALIGN_ITEMS, FlexContainer::ALIGN_FLEX_START );
180 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_ITEMS ), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION );
182 // Check align content property.
183 flexContainer.SetProperty( FlexContainer::Property::ALIGN_CONTENT, FlexContainer::ALIGN_STRETCH );
184 DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_CONTENT ), FlexContainer::ALIGN_STRETCH, TEST_LOCATION );
189 int UtcDaliToolkitFlexContainerSetChildPropertyP(void)
191 ToolkitTestApplication application;
192 tet_infoline(" UtcDaliToolkitFlexContainerSetChildPropertyP");
193 FlexContainer flexContainer = FlexContainer::New();
194 DALI_TEST_CHECK( flexContainer );
196 // Add flex container to the stage
197 Stage::GetCurrent().Add( flexContainer );
199 // Create an actor and add it to the container
200 Actor actor = Actor::New();
201 DALI_TEST_CHECK( actor );
203 flexContainer.Add(actor);
205 // Check flex child property.
206 actor.SetProperty( FlexContainer::ChildProperty::FLEX, 2.0f );
207 DALI_TEST_EQUALS( actor.GetProperty<float>( FlexContainer::ChildProperty::FLEX ), 2.0f, TEST_LOCATION );
208 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_FLEX ) == FlexContainer::ChildProperty::FLEX );
210 // Check align self child property.
211 actor.SetProperty( FlexContainer::ChildProperty::ALIGN_SELF, FlexContainer::ALIGN_FLEX_END );
212 DALI_TEST_EQUALS( (FlexContainer::Alignment)actor.GetProperty<int>( FlexContainer::ChildProperty::ALIGN_SELF ), FlexContainer::ALIGN_FLEX_END, TEST_LOCATION );
213 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_ALIGN_SELF ) == FlexContainer::ChildProperty::ALIGN_SELF );
215 // Check flex margin child property.
216 actor.SetProperty( FlexContainer::ChildProperty::FLEX_MARGIN, Vector4( 10.0f, 10.0f, 10.0f, 10.0f ) );
217 DALI_TEST_EQUALS( actor.GetProperty<Vector4>( FlexContainer::ChildProperty::FLEX_MARGIN ), Vector4( 10.0f, 10.0f, 10.0f, 10.0f ), TEST_LOCATION );
218 DALI_TEST_CHECK( actor.GetPropertyIndex( CHILD_PROPERTY_NAME_FLEX_MARGIN ) == FlexContainer::ChildProperty::FLEX_MARGIN );