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/dali.h>
21 #include <dali/public-api/dali-core.h>
22 #include <dali-test-suite-utils.h>
23 #include <test-dynamics.h>
27 int UtcDaliStageInitializeDynamics(void)
29 TestApplication application;
31 Stage stage = Stage::GetCurrent();
32 TraceCallStack& trace = application.GetPlatform().GetTrace();
34 DALI_TEST_CHECK( stage.InitializeDynamics( DynamicsWorldConfig::New() ) );
35 DALI_TEST_CHECK( trace.FindMethod( "GetDynamicsFactory" ) );
36 DALI_TEST_CHECK( trace.FindMethod( "DynamicsFactory::InitializeDynamics" ) );
40 int UtcDaliStageGetDynamicsWorld(void)
42 TestApplication application;
44 Stage stage = Stage::GetCurrent();
46 DALI_TEST_CHECK( !stage.GetDynamicsWorld() );
50 int UtcDaliStageTerminateDynamics(void)
52 TestApplication application;
54 Stage stage = Stage::GetCurrent();
56 stage.TerminateDynamics();
58 DALI_TEST_CHECK( !stage.GetDynamicsWorld() );
62 int UtcDaliDynamicsWorldConstructor(void)
64 tet_infoline("UtcDaliDynamicsWorldConstructor - DynamicsWorld::DynamicsWorld");
66 TestApplication application;
69 application.SendNotification();
73 // Default constructor - create an uninitialized handle
75 DALI_TEST_CHECK( !world );
78 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
79 world = Stage::GetCurrent().InitializeDynamics(worldConfig);
81 DALI_TEST_CHECK( world );
85 int UtcDaliDynamicsWorldGravity(void)
87 TestApplication application;
88 TraceCallStack& trace( application.GetPlatform().GetTrace() );
92 application.SendNotification();
96 const Vector3 gravity(1.0f, 2.0f, 3.0f);
98 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
99 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
103 // cannot create dynamics world, log failure and exit
104 DALI_TEST_CHECK( false );
108 tet_infoline("UtcDaliDynamicsWorldGravity - DynamicsWorld::SetGravity");
109 world.SetGravity(gravity);
112 application.SendNotification();
113 application.Render();
114 application.Render();
116 DALI_TEST_CHECK( trace.FindMethod( "DynamicsWorld::SetGravity" ) );
118 tet_infoline("UtcDaliDynamicsWorldGravity - DynamicsWorld::GetGravity");
119 DALI_TEST_EQUALS(gravity, world.GetGravity(), TEST_LOCATION);
123 int UtcDaliDynamicsWorldDebugDrawMode(void)
125 TestApplication application;
126 TraceCallStack& trace( application.GetPlatform().GetTrace() );
127 trace.Enable( true );
130 application.SendNotification();
131 application.Render();
132 application.Render();
134 const Vector3 gravity(1.0f, 2.0f, 3.0f);
135 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
136 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
140 // cannot create dynamics world, log failure and exit
141 DALI_TEST_CHECK( false );
145 const int mode(DynamicsWorld::DEBUG_MODE_WIREFRAME | DynamicsWorld::DEBUG_MODE_AABB);
147 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::SetDebugDrawMode");
148 world.SetDebugDrawMode(mode);
151 application.SendNotification();
152 application.Render();
153 application.Render();
155 DALI_TEST_CHECK( trace.FindMethod( "DynamicsWorld::SetDebugDrawMode" ) );
157 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::GetDebugDrawMode");
158 DALI_TEST_CHECK(mode == world.GetDebugDrawMode());
162 int UtcDaliDynamicsWorldRootActor(void)
164 TestApplication application;
167 application.SendNotification();
168 application.Render();
169 application.Render();
171 const Vector3 gravity(1.0f, 2.0f, 3.0f);
172 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
173 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
177 // cannot create dynamics world, log failure and exit
178 DALI_TEST_CHECK( false );
182 Actor rootActor(Actor::New());
184 tet_infoline("UtcDaliDynamicsWorldDebugDrawMode - DynamicsWorld::GetRootActor");
185 Actor actor(world.GetRootActor());
186 DALI_TEST_CHECK( !actor );
188 tet_infoline("UtcDaliDynamicsWorldSetRootActor - DynamicsWorld::SetRootActor");
189 world.SetRootActor(rootActor);
190 DALI_TEST_CHECK(rootActor == world.GetRootActor());