a2009d0ef8cdf27a5e9140aaba5515a494826e5f
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-FlexContainer.cpp
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <iostream>
19 #include <stdlib.h>
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22 #include <dali-toolkit/devel-api/controls/flex-container/flex-container.h>
23
24 using namespace Dali;
25 using namespace Toolkit;
26
27 void dali_flexflexContainer_startup(void)
28 {
29   test_return_value = TET_UNDEF;
30 }
31
32 void dali_flexflexContainer_cleanup(void)
33 {
34   test_return_value = TET_PASS;
35 }
36
37 namespace
38 {
39
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
47 } // namespace
48
49 int UtcDaliToolkitFlexContainerConstructorP(void)
50 {
51   ToolkitTestApplication application;
52   tet_infoline(" UtcDaliToolkitFlexContainerConstructorP");
53   FlexContainer flexContainer;
54   DALI_TEST_CHECK( !flexContainer );
55   END_TEST;
56 }
57
58 int UtcDaliToolkitFlexContainerNewP(void)
59 {
60   ToolkitTestApplication application;
61   tet_infoline(" UtcDaliToolkitFlexContainerNewP");
62   FlexContainer flexContainer = FlexContainer::New();
63   DALI_TEST_CHECK( flexContainer );
64   END_TEST;
65 }
66
67 int UtcDaliToolkitFlexContainerDownCastP(void)
68 {
69   ToolkitTestApplication application;
70   tet_infoline(" UtcDaliToolkitFlexContainerDownCastP");
71   FlexContainer flexContainer1 = FlexContainer::New();
72   BaseHandle object( flexContainer1 );
73
74   FlexContainer flexContainer2 = FlexContainer::DownCast( object );
75   DALI_TEST_CHECK( flexContainer2 );
76
77   FlexContainer flexContainer3 = DownCast< FlexContainer >( object );
78   DALI_TEST_CHECK( flexContainer3 );
79   END_TEST;
80 }
81
82 int UtcDaliToolkitFlexContainerDownCastN(void)
83 {
84   ToolkitTestApplication application;
85   tet_infoline(" UtcDaliToolkitFlexContainerDownCastN");
86   BaseHandle uninitializedObject;
87   FlexContainer flexContainer1 = FlexContainer::DownCast( uninitializedObject );
88   DALI_TEST_CHECK( !flexContainer1 );
89
90   FlexContainer flexContainer2 = DownCast< FlexContainer >( uninitializedObject );
91   DALI_TEST_CHECK( !flexContainer2 );
92   END_TEST;
93 }
94
95 int UtcDaliToolkitFlexContainerCopyConstructorP(void)
96 {
97   ToolkitTestApplication application;
98   tet_infoline(" UtcDaliToolkitFlexContainerCopyConstructorP");
99   FlexContainer flexContainer = FlexContainer::New();
100   flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
101
102   FlexContainer copy( flexContainer );
103   DALI_TEST_CHECK( copy );
104   DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
105
106   END_TEST;
107 }
108
109 int UtcDaliToolkitFlexContainerAssignmentOperatorP(void)
110 {
111   ToolkitTestApplication application;
112   tet_infoline(" UtcDaliToolkitFlexContainerAssingmentOperatorP");
113   FlexContainer flexContainer = FlexContainer::New();
114   flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::ROW_REVERSE );
115
116   FlexContainer copy = flexContainer;
117   DALI_TEST_CHECK( copy );
118   DALI_TEST_CHECK( copy.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) == flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ) );
119   END_TEST;
120 }
121
122 // Positive test case for a method
123 int UtcDaliToolkitFlexContainerGetPropertyP(void)
124 {
125   ToolkitTestApplication application;
126   tet_infoline(" UtcDaliToolkitFlexContainerGetPropertyP");
127   FlexContainer flexContainer = FlexContainer::New();
128   DALI_TEST_CHECK( flexContainer );
129
130   // Check Property Indices are correct
131   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_CONTENT_DIRECTION ) == FlexContainer::Property::CONTENT_DIRECTION );
132   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_DIRECTION ) == FlexContainer::Property::FLEX_DIRECTION );
133   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_FLEX_WRAP ) == FlexContainer::Property::FLEX_WRAP );
134   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_JUSTIFY_CONTENT ) == FlexContainer::Property::JUSTIFY_CONTENT );
135   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_ITEMS ) == FlexContainer::Property::ALIGN_ITEMS );
136   DALI_TEST_CHECK( flexContainer.GetPropertyIndex( PROPERTY_NAME_ALIGN_CONTENT ) == FlexContainer::Property::ALIGN_CONTENT );
137
138   END_TEST;
139 }
140
141 int UtcDaliToolkitFlexContainerSetPropertyP(void)
142 {
143   ToolkitTestApplication application;
144   tet_infoline(" UtcDaliToolkitFlexContainerSetPropertyP");
145   FlexContainer flexContainer = FlexContainer::New();
146   DALI_TEST_CHECK( flexContainer );
147
148   // Check content direction property.
149   flexContainer.SetProperty( FlexContainer::Property::CONTENT_DIRECTION, FlexContainer::RTL );
150   DALI_TEST_EQUALS( (FlexContainer::ContentDirection)flexContainer.GetProperty<int>( FlexContainer::Property::CONTENT_DIRECTION ), FlexContainer::RTL, TEST_LOCATION );
151
152   // Check flex direction property.
153   flexContainer.SetProperty( FlexContainer::Property::FLEX_DIRECTION, FlexContainer::COLUMN_REVERSE );
154   DALI_TEST_EQUALS( (FlexContainer::FlexDirection)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_DIRECTION ), FlexContainer::COLUMN_REVERSE, TEST_LOCATION );
155
156   // Check flex wrap property.
157   flexContainer.SetProperty( FlexContainer::Property::FLEX_WRAP, FlexContainer::WRAP );
158   DALI_TEST_EQUALS( (FlexContainer::WrapType)flexContainer.GetProperty<int>( FlexContainer::Property::FLEX_WRAP ), FlexContainer::WRAP, TEST_LOCATION );
159
160   // Check justify content property.
161   flexContainer.SetProperty( FlexContainer::Property::JUSTIFY_CONTENT, FlexContainer::JUSTIFY_SPACE_BETWEEN );
162   DALI_TEST_EQUALS( (FlexContainer::Justification)flexContainer.GetProperty<int>( FlexContainer::Property::JUSTIFY_CONTENT ), FlexContainer::JUSTIFY_SPACE_BETWEEN, TEST_LOCATION );
163
164   // Check align items property.
165   flexContainer.SetProperty( FlexContainer::Property::ALIGN_ITEMS, FlexContainer::ALIGN_FLEX_START );
166   DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_ITEMS ), FlexContainer::ALIGN_FLEX_START, TEST_LOCATION );
167
168   // Check align content property.
169   flexContainer.SetProperty( FlexContainer::Property::ALIGN_CONTENT, FlexContainer::ALIGN_STRETCH );
170   DALI_TEST_EQUALS( (FlexContainer::Alignment)flexContainer.GetProperty<int>( FlexContainer::Property::ALIGN_CONTENT ), FlexContainer::ALIGN_STRETCH, TEST_LOCATION );
171
172   END_TEST;
173 }
174