2 * Copyright (c) 2014 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/public-api/dali-core.h>
21 #include <dali-test-suite-utils.h>
22 #include <test-dynamics.h>
23 #include <dali/devel-api/dynamics/dynamics.h>
27 int UtcDaliStageInitializeDynamics(void)
29 #if !defined(DYNAMICS_SUPPORT)
30 tet_infoline("No dynamics support compiled\n");
33 TestApplication application;
35 Stage stage = Stage::GetCurrent();
36 TraceCallStack& trace = application.GetPlatform().GetTrace();
38 DALI_TEST_CHECK( stage.InitializeDynamics( DynamicsWorldConfig::New() ) );
39 DALI_TEST_CHECK( trace.FindMethod( "GetDynamicsFactory" ) );
40 DALI_TEST_CHECK( trace.FindMethod( "DynamicsFactory::InitializeDynamics" ) );
44 int UtcDaliStageGetDynamicsWorld(void)
46 TestApplication application;
48 Stage stage = Stage::GetCurrent();
50 DALI_TEST_CHECK( !stage.GetDynamicsWorld() );
54 int UtcDaliStageTerminateDynamics(void)
56 TestApplication application;
58 Stage stage = Stage::GetCurrent();
60 stage.TerminateDynamics();
62 DALI_TEST_CHECK( !stage.GetDynamicsWorld() );
66 int UtcDaliDynamicsWorldConstructor(void)
68 #if !defined(DYNAMICS_SUPPORT)
69 tet_infoline("No dynamics support compiled\n");
72 tet_infoline("UtcDaliDynamicsWorldConstructor - DynamicsWorld::DynamicsWorld");
74 TestApplication application;
77 application.SendNotification();
81 // Default constructor - create an uninitialized handle
83 DALI_TEST_CHECK( !world );
86 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
87 world = Stage::GetCurrent().InitializeDynamics(worldConfig);
89 DALI_TEST_CHECK( world );
93 int UtcDaliDynamicsWorldGravity(void)
95 #if !defined(DYNAMICS_SUPPORT)
96 tet_infoline("No dynamics support compiled\n");
99 TestApplication application;
100 TraceCallStack& trace( application.GetPlatform().GetTrace() );
101 trace.Enable( true );
104 application.SendNotification();
105 application.Render();
106 application.Render();
108 const Vector3 gravity(1.0f, 2.0f, 3.0f);
110 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
111 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
115 // cannot create dynamics world, log failure and exit
116 DALI_TEST_CHECK( false );
120 tet_infoline("UtcDaliDynamicsWorldGravity - DynamicsWorld::SetGravity");
121 world.SetGravity(gravity);
124 application.SendNotification();
125 application.Render();
126 application.Render();
128 DALI_TEST_CHECK( trace.FindMethod( "DynamicsWorld::SetGravity" ) );
130 tet_infoline("UtcDaliDynamicsWorldGravity - DynamicsWorld::GetGravity");
131 DALI_TEST_EQUALS(gravity, world.GetGravity(), TEST_LOCATION);
135 int UtcDaliDynamicsWorldDebugDrawMode(void)
137 #if !defined(DYNAMICS_SUPPORT)
138 tet_infoline("No dynamics support compiled\n");
141 TestApplication application;
142 TraceCallStack& trace( application.GetPlatform().GetTrace() );
143 trace.Enable( true );
146 application.SendNotification();
147 application.Render();
148 application.Render();
150 const Vector3 gravity(1.0f, 2.0f, 3.0f);
151 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
152 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
156 // cannot create dynamics world, log failure and exit
157 DALI_TEST_CHECK( false );
161 const int mode(DynamicsWorld::DEBUG_MODE_WIREFRAME | DynamicsWorld::DEBUG_MODE_AABB);
163 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::SetDebugDrawMode");
164 world.SetDebugDrawMode(mode);
167 application.SendNotification();
168 application.Render();
169 application.Render();
171 DALI_TEST_CHECK( trace.FindMethod( "DynamicsWorld::SetDebugDrawMode" ) );
173 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::GetDebugDrawMode");
174 DALI_TEST_CHECK(mode == world.GetDebugDrawMode());
178 int UtcDaliDynamicsWorldRootActor(void)
180 #if !defined(DYNAMICS_SUPPORT)
181 tet_infoline("No dynamics support compiled\n");
184 TestApplication application;
187 application.SendNotification();
188 application.Render();
189 application.Render();
191 const Vector3 gravity(1.0f, 2.0f, 3.0f);
192 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
193 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
197 // cannot create dynamics world, log failure and exit
198 DALI_TEST_CHECK( false );
202 Actor rootActor(Actor::New());
204 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::GetRootActor");
205 Actor actor(world.GetRootActor());
206 DALI_TEST_CHECK( !actor );
208 tet_infoline("UtcDaliDynamicsWorldSetRootActor - DynamicsWorld::SetRootActor");
209 world.SetRootActor(rootActor);
210 DALI_TEST_CHECK(rootActor == world.GetRootActor());