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.
21 #include <dali-test-suite-utils.h>
22 #include <dali/public-api/dali-core.h>
23 #include <dali/devel-api/actors/mesh-actor.h>
24 #include <dali/devel-api/geometry/mesh.h>
28 #include "mesh-builder.h"
33 // Functors to test whether Object created/destroyed signal is emitted for different types of Objects
35 struct TestObjectDestroyedCallback
37 TestObjectDestroyedCallback(bool& signalReceived, Dali::RefObject*& objectPointer)
38 : mSignalVerified(signalReceived),
39 mObjectPointer(objectPointer)
43 void operator()(const Dali::RefObject* objectPointer)
45 tet_infoline("Verifying TestObjectDestroyedCallback()");
47 if(objectPointer == mObjectPointer)
49 mSignalVerified = true;
53 bool& mSignalVerified;
54 Dali::RefObject*& mObjectPointer;
57 struct TestActorCallback
59 TestActorCallback(bool& signalReceived)
60 : mSignalVerified(signalReceived)
64 void operator()(BaseHandle object)
66 tet_infoline("Verifying TestActorCallback()");
67 Actor actor = Actor::DownCast(object);
70 mSignalVerified = true;
74 bool& mSignalVerified;
77 struct TestCameraActorCallback
79 TestCameraActorCallback(bool& signalReceived)
80 : mSignalVerified(signalReceived)
83 void operator()(BaseHandle object)
85 tet_infoline("Verifying TestCameraActorCallback()");
86 CameraActor actor = CameraActor::DownCast(object);
89 mSignalVerified = true;
92 bool& mSignalVerified;
95 struct TestImageActorCallback
97 TestImageActorCallback(bool& signalReceived)
98 : mSignalVerified(signalReceived)
101 void operator()(BaseHandle object)
103 tet_infoline("Verifying TestImageActorCallback()");
104 ImageActor actor = ImageActor::DownCast(object);
107 mSignalVerified = true;
110 bool& mSignalVerified;
113 struct TestLayerCallback
115 TestLayerCallback(bool& signalReceived)
116 : mSignalVerified(signalReceived)
119 void operator()(BaseHandle object)
121 tet_infoline("Verifying TestLayerCallback()");
122 Layer actor = Layer::DownCast(object);
125 mSignalVerified = true;
128 bool& mSignalVerified;
132 struct TestMeshActorCallback
134 TestMeshActorCallback(bool& signalReceived)
135 : mSignalVerified(signalReceived)
138 void operator()(BaseHandle object)
140 tet_infoline("Verifying TestMeshActorCallback()");
141 MeshActor actor = MeshActor::DownCast(object);
144 mSignalVerified = true;
147 bool& mSignalVerified;
150 struct TestAnimationCallback
152 TestAnimationCallback(bool& signalReceived)
153 : mSignalVerified(signalReceived)
156 void operator()(BaseHandle object)
158 tet_infoline("Verifying TestAnimationCallback()");
159 Animation actor = Animation::DownCast(object);
162 mSignalVerified = true;
165 bool& mSignalVerified;
168 struct TestShaderEffectCallback
170 TestShaderEffectCallback(bool& signalReceived)
171 : mSignalVerified(signalReceived)
174 void operator()(BaseHandle object)
176 tet_infoline("Verifying TestShaderEffectCallback()");
177 ShaderEffect actor = ShaderEffect::DownCast(object);
180 mSignalVerified = true;
183 bool& mSignalVerified;
187 } // anonymous namespace
192 int UtcDaliObjectRegistryGet(void)
194 TestApplication application;
196 ObjectRegistry registry; // like this for ctor code coverage
197 registry= Stage::GetCurrent().GetObjectRegistry();
199 DALI_TEST_CHECK( registry );
205 int UtcDaliObjectRegistrySignalActorCreated(void)
207 tet_infoline("Testing GetObjectRegistry()");
208 TestApplication application;
209 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
210 DALI_TEST_CHECK( registry );
212 bool verified = false;
213 TestActorCallback test(verified);
215 Dali::RefObject* objectPointer = NULL;
216 TestObjectDestroyedCallback test2(verified, objectPointer);
218 registry.ObjectCreatedSignal().Connect(&application, test);
219 registry.ObjectDestroyedSignal().Connect(&application, test2);
222 Actor actor = Actor::New();
223 DALI_TEST_CHECK( test.mSignalVerified );
226 objectPointer = actor.GetObjectPtr();
228 DALI_TEST_CHECK( test.mSignalVerified );
232 int UtcDaliObjectRegistrySignalCameraCreated(void)
234 TestApplication application;
236 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
238 bool verified = false;
239 TestCameraActorCallback test(verified);
241 Dali::RefObject* objectPointer = NULL;
242 TestObjectDestroyedCallback test2(verified, objectPointer);
244 registry.ObjectCreatedSignal().Connect(&application, test);
245 registry.ObjectDestroyedSignal().Connect(&application, test2);
248 CameraActor actor = CameraActor::New();
249 DALI_TEST_CHECK( test.mSignalVerified );
252 objectPointer = actor.GetObjectPtr();
254 DALI_TEST_CHECK( test.mSignalVerified );
258 int UtcDaliObjectRegistrySignalImageActorCreated(void)
260 TestApplication application;
261 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
263 static const char* TestImageFilename = "icon_wrt.png";
264 Image image = ResourceImage::New(TestImageFilename);
266 bool verified = false;
267 TestImageActorCallback test(verified);
269 Dali::RefObject* objectPointer = NULL;
270 TestObjectDestroyedCallback test2(verified, objectPointer);
272 registry.ObjectCreatedSignal().Connect(&application, test);
273 registry.ObjectDestroyedSignal().Connect(&application, test2);
276 ImageActor actor = ImageActor::New(image);
277 DALI_TEST_CHECK( test.mSignalVerified );
280 objectPointer = actor.GetObjectPtr();
282 DALI_TEST_CHECK( test.mSignalVerified );
286 int UtcDaliObjectRegistrySignalLayerCreated(void)
288 TestApplication application;
289 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
291 bool verified = false;
292 TestLayerCallback test(verified);
294 Dali::RefObject* objectPointer = NULL;
295 TestObjectDestroyedCallback test2(verified, objectPointer);
297 registry.ObjectCreatedSignal().Connect(&application, test);
298 registry.ObjectDestroyedSignal().Connect(&application, test2);
301 Layer actor = Layer::New();
302 DALI_TEST_CHECK( test.mSignalVerified );
305 objectPointer = actor.GetObjectPtr();
307 DALI_TEST_CHECK( test.mSignalVerified );
312 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
314 TestApplication application;
315 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
317 bool verified = false;
318 TestMeshActorCallback test(verified);
320 Dali::RefObject* objectPointer = NULL;
321 TestObjectDestroyedCallback test2(verified, objectPointer);
323 registry.ObjectCreatedSignal().Connect(&application, test);
324 registry.ObjectDestroyedSignal().Connect(&application, test2);
326 Mesh mesh = ConstructMesh(60);
329 MeshActor actor = MeshActor::New(mesh);
331 DALI_TEST_CHECK(actor);
332 DALI_TEST_CHECK( test.mSignalVerified );
335 objectPointer = actor.GetObjectPtr();
337 DALI_TEST_CHECK( test.mSignalVerified );
342 int UtcDaliObjectRegistrySignalAnimationCreated(void)
344 TestApplication application;
345 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
347 bool verified = false;
348 TestAnimationCallback test(verified);
350 Dali::RefObject* objectPointer = NULL;
351 TestObjectDestroyedCallback test2(verified, objectPointer);
353 registry.ObjectCreatedSignal().Connect(&application, test);
354 registry.ObjectDestroyedSignal().Connect(&application, test2);
357 Animation animation = Animation::New(1.0f);
358 DALI_TEST_CHECK( test.mSignalVerified );
361 objectPointer = animation.GetObjectPtr();
363 DALI_TEST_CHECK( test.mSignalVerified );
367 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
369 TestApplication application;
370 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
372 static const char* VertexSource =
375 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
376 " vTexCoord = aTexCoord;\n"
379 static const char* FragmentSource =
382 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
385 bool verified = false;
386 TestShaderEffectCallback test(verified);
388 Dali::RefObject* objectPointer = NULL;
389 TestObjectDestroyedCallback test2(verified, objectPointer);
391 registry.ObjectCreatedSignal().Connect(&application, test);
392 registry.ObjectDestroyedSignal().Connect(&application, test2);
395 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
396 DALI_TEST_CHECK( test.mSignalVerified );
399 objectPointer = effect.GetObjectPtr();
401 DALI_TEST_CHECK( test.mSignalVerified );