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>
26 #include "mesh-builder.h"
31 // Functors to test whether Object created/destroyed signal is emitted for different types of Objects
33 struct TestObjectDestroyedCallback
35 TestObjectDestroyedCallback(bool& signalReceived, Dali::RefObject*& objectPointer)
36 : mSignalVerified(signalReceived),
37 mObjectPointer(objectPointer)
41 void operator()(const Dali::RefObject* objectPointer)
43 tet_infoline("Verifying TestObjectDestroyedCallback()");
45 if(objectPointer == mObjectPointer)
47 mSignalVerified = true;
51 bool& mSignalVerified;
52 Dali::RefObject*& mObjectPointer;
55 struct TestActorCallback
57 TestActorCallback(bool& signalReceived)
58 : mSignalVerified(signalReceived)
62 void operator()(BaseHandle object)
64 tet_infoline("Verifying TestActorCallback()");
65 Actor actor = Actor::DownCast(object);
68 mSignalVerified = true;
72 bool& mSignalVerified;
75 struct TestCameraActorCallback
77 TestCameraActorCallback(bool& signalReceived)
78 : mSignalVerified(signalReceived)
81 void operator()(BaseHandle object)
83 tet_infoline("Verifying TestCameraActorCallback()");
84 CameraActor actor = CameraActor::DownCast(object);
87 mSignalVerified = true;
90 bool& mSignalVerified;
93 struct TestImageActorCallback
95 TestImageActorCallback(bool& signalReceived)
96 : mSignalVerified(signalReceived)
99 void operator()(BaseHandle object)
101 tet_infoline("Verifying TestImageActorCallback()");
102 ImageActor actor = ImageActor::DownCast(object);
105 mSignalVerified = true;
108 bool& mSignalVerified;
111 struct TestLayerCallback
113 TestLayerCallback(bool& signalReceived)
114 : mSignalVerified(signalReceived)
117 void operator()(BaseHandle object)
119 tet_infoline("Verifying TestLayerCallback()");
120 Layer actor = Layer::DownCast(object);
123 mSignalVerified = true;
126 bool& mSignalVerified;
129 struct TestLightActorCallback
131 TestLightActorCallback(bool& signalReceived)
132 : mSignalVerified(signalReceived)
135 void operator()(BaseHandle object)
137 tet_infoline("Verifying TestLightActorCallback()");
138 LightActor actor = LightActor::DownCast(object);
141 mSignalVerified = true;
144 bool& mSignalVerified;
147 struct TestMeshActorCallback
149 TestMeshActorCallback(bool& signalReceived)
150 : mSignalVerified(signalReceived)
153 void operator()(BaseHandle object)
155 tet_infoline("Verifying TestMeshActorCallback()");
156 MeshActor actor = MeshActor::DownCast(object);
159 mSignalVerified = true;
162 bool& mSignalVerified;
165 struct TestModelCallback
167 TestModelCallback(bool& signalReceived)
168 : mSignalVerified(signalReceived)
171 void operator()(BaseHandle object)
173 tet_infoline("Verifying TestModelCallback()");
174 Model actor = Model::DownCast(object);
177 mSignalVerified = true;
180 bool& mSignalVerified;
183 struct TestTextActorCallback
185 TestTextActorCallback(bool& signalReceived)
186 : mSignalVerified(signalReceived)
189 void operator()(BaseHandle object)
191 tet_infoline("Verifying TestTextActorCallback()");
192 TextActor actor = TextActor::DownCast(object);
195 mSignalVerified = true;
198 bool& mSignalVerified;
201 struct TestAnimationCallback
203 TestAnimationCallback(bool& signalReceived)
204 : mSignalVerified(signalReceived)
207 void operator()(BaseHandle object)
209 tet_infoline("Verifying TestAnimationCallback()");
210 Animation actor = Animation::DownCast(object);
213 mSignalVerified = true;
216 bool& mSignalVerified;
219 struct TestShaderEffectCallback
221 TestShaderEffectCallback(bool& signalReceived)
222 : mSignalVerified(signalReceived)
225 void operator()(BaseHandle object)
227 tet_infoline("Verifying TestShaderEffectCallback()");
228 ShaderEffect actor = ShaderEffect::DownCast(object);
231 mSignalVerified = true;
234 bool& mSignalVerified;
238 } // anonymous namespace
243 int UtcDaliObjectRegistryGet(void)
245 TestApplication application;
247 ObjectRegistry registry; // like this for ctor code coverage
248 registry= Stage::GetCurrent().GetObjectRegistry();
250 DALI_TEST_CHECK( registry );
256 int UtcDaliObjectRegistrySignalActorCreated(void)
258 tet_infoline("Testing GetObjectRegistry()");
259 TestApplication application;
260 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
261 DALI_TEST_CHECK( registry );
263 bool verified = false;
264 TestActorCallback test(verified);
266 Dali::RefObject* objectPointer = NULL;
267 TestObjectDestroyedCallback test2(verified, objectPointer);
269 registry.ObjectCreatedSignal().Connect(&application, test);
270 registry.ObjectDestroyedSignal().Connect(&application, test2);
273 Actor actor = Actor::New();
274 DALI_TEST_CHECK( test.mSignalVerified );
277 objectPointer = actor.GetObjectPtr();
279 DALI_TEST_CHECK( test.mSignalVerified );
283 int UtcDaliObjectRegistrySignalCameraCreated(void)
285 TestApplication application;
287 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
289 bool verified = false;
290 TestCameraActorCallback test(verified);
292 Dali::RefObject* objectPointer = NULL;
293 TestObjectDestroyedCallback test2(verified, objectPointer);
295 registry.ObjectCreatedSignal().Connect(&application, test);
296 registry.ObjectDestroyedSignal().Connect(&application, test2);
299 CameraActor actor = CameraActor::New();
300 DALI_TEST_CHECK( test.mSignalVerified );
303 objectPointer = actor.GetObjectPtr();
305 DALI_TEST_CHECK( test.mSignalVerified );
309 int UtcDaliObjectRegistrySignalImageActorCreated(void)
311 TestApplication application;
312 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
314 static const char* TestImageFilename = "icon_wrt.png";
315 Image image = ResourceImage::New(TestImageFilename);
317 bool verified = false;
318 TestImageActorCallback test(verified);
320 Dali::RefObject* objectPointer = NULL;
321 TestObjectDestroyedCallback test2(verified, objectPointer);
323 registry.ObjectCreatedSignal().Connect(&application, test);
324 registry.ObjectDestroyedSignal().Connect(&application, test2);
327 ImageActor actor = ImageActor::New(image);
328 DALI_TEST_CHECK( test.mSignalVerified );
331 objectPointer = actor.GetObjectPtr();
333 DALI_TEST_CHECK( test.mSignalVerified );
337 int UtcDaliObjectRegistrySignalLayerCreated(void)
339 TestApplication application;
340 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
342 bool verified = false;
343 TestLayerCallback test(verified);
345 Dali::RefObject* objectPointer = NULL;
346 TestObjectDestroyedCallback test2(verified, objectPointer);
348 registry.ObjectCreatedSignal().Connect(&application, test);
349 registry.ObjectDestroyedSignal().Connect(&application, test2);
352 Layer actor = Layer::New();
353 DALI_TEST_CHECK( test.mSignalVerified );
356 objectPointer = actor.GetObjectPtr();
358 DALI_TEST_CHECK( test.mSignalVerified );
362 int UtcDaliObjectRegistrySignalLightActorCreated(void)
364 TestApplication application;
365 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
367 bool verified = false;
368 TestLightActorCallback test(verified);
370 Dali::RefObject* objectPointer = NULL;
371 TestObjectDestroyedCallback test2(verified, objectPointer);
373 registry.ObjectCreatedSignal().Connect(&application, test);
374 registry.ObjectDestroyedSignal().Connect(&application, test2);
377 LightActor actor = LightActor::New();
378 DALI_TEST_CHECK( test.mSignalVerified );
381 objectPointer = actor.GetObjectPtr();
383 DALI_TEST_CHECK( test.mSignalVerified );
387 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
389 TestApplication application;
390 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
392 bool verified = false;
393 TestMeshActorCallback test(verified);
395 Dali::RefObject* objectPointer = NULL;
396 TestObjectDestroyedCallback test2(verified, objectPointer);
398 registry.ObjectCreatedSignal().Connect(&application, test);
399 registry.ObjectDestroyedSignal().Connect(&application, test2);
401 Mesh mesh = ConstructMesh(60);
404 MeshActor actor = MeshActor::New(mesh);
406 DALI_TEST_CHECK(actor);
407 DALI_TEST_CHECK( test.mSignalVerified );
410 objectPointer = actor.GetObjectPtr();
412 DALI_TEST_CHECK( test.mSignalVerified );
416 int UtcDaliObjectRegistrySignalModelCreated(void)
418 TestApplication application;
419 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
421 bool verified = false;
422 TestModelCallback test(verified);
424 Dali::RefObject* objectPointer = NULL;
425 TestObjectDestroyedCallback test2(verified, objectPointer);
427 registry.ObjectCreatedSignal().Connect(&application, test);
428 registry.ObjectDestroyedSignal().Connect(&application, test2);
431 Model model = Model::New("blah");
432 DALI_TEST_CHECK( test.mSignalVerified );
435 objectPointer = model.GetObjectPtr();
437 DALI_TEST_CHECK( test.mSignalVerified );
441 int UtcDaliObjectRegistrySignalTextActorCreated(void)
443 TestApplication application;
444 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
446 bool verified = false;
447 TestTextActorCallback test(verified);
449 Dali::RefObject* objectPointer = NULL;
450 TestObjectDestroyedCallback test2(verified, objectPointer);
452 registry.ObjectCreatedSignal().Connect(&application, test);
453 registry.ObjectDestroyedSignal().Connect(&application, test2);
456 TextActor actor = TextActor::New("Hello");
457 DALI_TEST_CHECK( test.mSignalVerified );
460 objectPointer = actor.GetObjectPtr();
462 DALI_TEST_CHECK( test.mSignalVerified );
466 int UtcDaliObjectRegistrySignalAnimationCreated(void)
468 TestApplication application;
469 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
471 bool verified = false;
472 TestAnimationCallback test(verified);
474 Dali::RefObject* objectPointer = NULL;
475 TestObjectDestroyedCallback test2(verified, objectPointer);
477 registry.ObjectCreatedSignal().Connect(&application, test);
478 registry.ObjectDestroyedSignal().Connect(&application, test2);
481 Animation animation = Animation::New(1.0f);
482 DALI_TEST_CHECK( test.mSignalVerified );
485 objectPointer = animation.GetObjectPtr();
487 DALI_TEST_CHECK( test.mSignalVerified );
491 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
493 TestApplication application;
494 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
496 static const char* VertexSource =
499 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
500 " vTexCoord = aTexCoord;\n"
503 static const char* FragmentSource =
506 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
509 bool verified = false;
510 TestShaderEffectCallback test(verified);
512 Dali::RefObject* objectPointer = NULL;
513 TestObjectDestroyedCallback test2(verified, objectPointer);
515 registry.ObjectCreatedSignal().Connect(&application, test);
516 registry.ObjectDestroyedSignal().Connect(&application, test2);
519 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
520 DALI_TEST_CHECK( test.mSignalVerified );
523 objectPointer = effect.GetObjectPtr();
525 DALI_TEST_CHECK( test.mSignalVerified );