Upload package dali_0.9.11.
[platform/core/uifw/dali-core.git] / automated-tests / TET / dali-test-suite / dynamics / utc-Dali-DynamicsShape.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 #include <iostream>
18
19 #include <stdlib.h>
20 #include <tet_api.h>
21
22 #include <dali/public-api/dali-core.h>
23
24 #include <dali-test-suite-utils.h>
25
26
27 using namespace Dali;
28
29 static void Startup();
30 static void Cleanup();
31
32 extern "C" {
33   void (*tet_startup)() = Startup;
34   void (*tet_cleanup)() = Cleanup;
35 }
36
37 static void UtcDaliDynamicsShapeConstructor();
38 static void UtcDaliDynamicsShapeNewCapsule();
39 static void UtcDaliDynamicsShapeNewCone();
40 static void UtcDaliDynamicsShapeNewCube();
41 static void UtcDaliDynamicsShapeNewCylinder();
42 static void UtcDaliDynamicsShapeNewMesh();
43 static void UtcDaliDynamicsShapeNewSphere();
44 static void UtcDaliDynamicsShapeGetType();
45
46 enum {
47   POSITIVE_TC_IDX = 0x01,
48   NEGATIVE_TC_IDX,
49 };
50
51 // Add test functionality for all APIs in the class (Positive and Negative)
52 extern "C" {
53   struct tet_testlist tet_testlist[] =
54   {
55    { UtcDaliDynamicsShapeConstructor, POSITIVE_TC_IDX },
56    { UtcDaliDynamicsShapeNewCapsule,  POSITIVE_TC_IDX },
57    { UtcDaliDynamicsShapeNewCone,     POSITIVE_TC_IDX },
58    { UtcDaliDynamicsShapeNewCube,     POSITIVE_TC_IDX },
59    { UtcDaliDynamicsShapeNewCylinder, POSITIVE_TC_IDX },
60    { UtcDaliDynamicsShapeNewMesh,     POSITIVE_TC_IDX },
61    { UtcDaliDynamicsShapeNewSphere,   POSITIVE_TC_IDX },
62    { UtcDaliDynamicsShapeGetType,     POSITIVE_TC_IDX },
63    { NULL, 0 }
64   };
65 }
66
67 // Called only once before first test is run.
68 static void Startup()
69 {
70 }
71
72 // Called only once after last test is run
73 static void Cleanup()
74 {
75 }
76
77 void UtcDaliDynamicsShapeConstructor()
78 {
79   tet_infoline("UtcDaliDynamicsShapeConstructor - DynamicsShape::DynamicsShape");
80
81   TestApplication application;
82
83   // start up
84   application.SendNotification();
85   application.Render();
86   application.Render();
87
88   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
89   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
90
91   if( !world )
92   {
93     // cannot create dynamics world, log failure and exit
94     DALI_TEST_CHECK( false );
95     return;
96   }
97
98   // Default constructor - create an uninitialized handle
99   DynamicsShape shape;
100   DALI_TEST_CHECK( !shape );
101
102   // initialize handle
103   shape = DynamicsShape::NewCube(Vector3::ONE);
104
105   DALI_TEST_CHECK( shape );
106 }
107
108 void UtcDaliDynamicsShapeNewCapsule()
109 {
110   tet_infoline("UtcDaliDynamicsShapeNewCapsule - DynamicsShape::NewCapsule");
111
112   TestApplication application;
113
114   // start up
115   application.SendNotification();
116   application.Render();
117   application.Render();
118
119   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
120   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
121
122   if( !world )
123   {
124     // cannot create dynamics world, log failure and exit
125     DALI_TEST_CHECK( false );
126     return;
127   }
128
129   DynamicsShape shape( DynamicsShape::NewCapsule( 1.0f, 2.0f ) );
130
131   DALI_TEST_CHECK( shape );
132   DALI_TEST_CHECK( DynamicsShape::CAPSULE == shape.GetType() );
133 }
134
135 void UtcDaliDynamicsShapeNewCone()
136 {
137   tet_infoline("UtcDaliDynamicsShapeNewCone - DynamicsShape::NewCone");
138
139   TestApplication application;
140
141   // start up
142   application.SendNotification();
143   application.Render();
144   application.Render();
145
146   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
147   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
148
149   if( !world )
150   {
151     // cannot create dynamics world, log failure and exit
152     DALI_TEST_CHECK( false );
153     return;
154   }
155
156   DynamicsShape shape( DynamicsShape::NewCone( 1.0f, 2.0f ) );
157
158   DALI_TEST_CHECK( shape );
159   DALI_TEST_CHECK( DynamicsShape::CONE == shape.GetType() );
160 }
161
162 void UtcDaliDynamicsShapeNewCube()
163 {
164   tet_infoline("UtcDaliDynamicsShapeNewCube - DynamicsShape::NewCube");
165
166   TestApplication application;
167
168   // start up
169   application.SendNotification();
170   application.Render();
171   application.Render();
172
173   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
174   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
175
176   if( !world )
177   {
178     // cannot create dynamics world, log failure and exit
179     DALI_TEST_CHECK( false );
180     return;
181   }
182
183   DynamicsShape shape( DynamicsShape::NewCube( Vector3::ONE ) );
184
185   DALI_TEST_CHECK( shape );
186   DALI_TEST_CHECK( DynamicsShape::CUBE == shape.GetType() );
187 }
188
189 void UtcDaliDynamicsShapeNewCylinder()
190 {
191   tet_infoline("UtcDaliDynamicsShapeNewCylinder - DynamicsShape::NewCylinder");
192
193   TestApplication application;
194
195   // start up
196   application.SendNotification();
197   application.Render();
198   application.Render();
199
200   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
201   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
202
203   if( !world )
204   {
205     // cannot create dynamics world, log failure and exit
206     DALI_TEST_CHECK( false );
207     return;
208   }
209
210   DynamicsShape shape( DynamicsShape::NewCylinder( 1.0f, 2.0f ) );
211
212   DALI_TEST_CHECK( shape );
213   DALI_TEST_CHECK( DynamicsShape::CYLINDER == shape.GetType() );
214 }
215
216 void UtcDaliDynamicsShapeNewMesh()
217 {
218   tet_infoline("UtcDaliDynamicsShapeNewMesh - DynamicsShape::NewMesh");
219
220   TestApplication application;
221
222   // start up
223   application.SendNotification();
224   application.Render();
225   application.Render();
226
227   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
228   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
229
230   if( !world )
231   {
232     // cannot create dynamics world, log failure and exit
233     DALI_TEST_CHECK( false );
234     return;
235   }
236
237   DynamicsShape shape( DynamicsShape::NewMesh( Mesh::NewPlane(10.0f, 10.0f, 10, 10)) );
238
239   DALI_TEST_CHECK( shape );
240   DALI_TEST_CHECK( DynamicsShape::MESH == shape.GetType() );
241 }
242
243 void UtcDaliDynamicsShapeNewSphere()
244 {
245   tet_infoline("UtcDaliDynamicsShapeNewSphere - DynamicsShape::NewSphere");
246
247   TestApplication application;
248
249   // start up
250   application.SendNotification();
251   application.Render();
252   application.Render();
253
254   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
255   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
256
257   if( !world )
258   {
259     // cannot create dynamics world, log failure and exit
260     DALI_TEST_CHECK( false );
261     return;
262   }
263
264   DynamicsShape shape( DynamicsShape::NewSphere( 1.0f ) );
265
266   DALI_TEST_CHECK( shape );
267   DALI_TEST_CHECK( DynamicsShape::SPHERE == shape.GetType() );
268 }
269
270 void UtcDaliDynamicsShapeGetType()
271 {
272   tet_infoline("UtcDaliDynamicsShapeGetType - DynamicsShape::GetType");
273
274   TestApplication application;
275
276   // start up
277   application.SendNotification();
278   application.Render();
279   application.Render();
280
281   DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
282   DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
283
284   if( !world )
285   {
286     // cannot create dynamics world, log failure and exit
287     DALI_TEST_CHECK( false );
288     return;
289   }
290
291   DynamicsShape shape( DynamicsShape::NewSphere( 1.0f ) );
292
293   DALI_TEST_CHECK( shape );
294   DALI_TEST_CHECK( DynamicsShape::SPHERE == shape.GetType() );
295 }
296
297