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 TestAnimationCallback
185 TestAnimationCallback(bool& signalReceived)
186 : mSignalVerified(signalReceived)
189 void operator()(BaseHandle object)
191 tet_infoline("Verifying TestAnimationCallback()");
192 Animation actor = Animation::DownCast(object);
195 mSignalVerified = true;
198 bool& mSignalVerified;
201 struct TestShaderEffectCallback
203 TestShaderEffectCallback(bool& signalReceived)
204 : mSignalVerified(signalReceived)
207 void operator()(BaseHandle object)
209 tet_infoline("Verifying TestShaderEffectCallback()");
210 ShaderEffect actor = ShaderEffect::DownCast(object);
213 mSignalVerified = true;
216 bool& mSignalVerified;
220 } // anonymous namespace
225 int UtcDaliObjectRegistryGet(void)
227 TestApplication application;
229 ObjectRegistry registry; // like this for ctor code coverage
230 registry= Stage::GetCurrent().GetObjectRegistry();
232 DALI_TEST_CHECK( registry );
238 int UtcDaliObjectRegistrySignalActorCreated(void)
240 tet_infoline("Testing GetObjectRegistry()");
241 TestApplication application;
242 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
243 DALI_TEST_CHECK( registry );
245 bool verified = false;
246 TestActorCallback test(verified);
248 Dali::RefObject* objectPointer = NULL;
249 TestObjectDestroyedCallback test2(verified, objectPointer);
251 registry.ObjectCreatedSignal().Connect(&application, test);
252 registry.ObjectDestroyedSignal().Connect(&application, test2);
255 Actor actor = Actor::New();
256 DALI_TEST_CHECK( test.mSignalVerified );
259 objectPointer = actor.GetObjectPtr();
261 DALI_TEST_CHECK( test.mSignalVerified );
265 int UtcDaliObjectRegistrySignalCameraCreated(void)
267 TestApplication application;
269 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
271 bool verified = false;
272 TestCameraActorCallback test(verified);
274 Dali::RefObject* objectPointer = NULL;
275 TestObjectDestroyedCallback test2(verified, objectPointer);
277 registry.ObjectCreatedSignal().Connect(&application, test);
278 registry.ObjectDestroyedSignal().Connect(&application, test2);
281 CameraActor actor = CameraActor::New();
282 DALI_TEST_CHECK( test.mSignalVerified );
285 objectPointer = actor.GetObjectPtr();
287 DALI_TEST_CHECK( test.mSignalVerified );
291 int UtcDaliObjectRegistrySignalImageActorCreated(void)
293 TestApplication application;
294 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
296 static const char* TestImageFilename = "icon_wrt.png";
297 Image image = ResourceImage::New(TestImageFilename);
299 bool verified = false;
300 TestImageActorCallback test(verified);
302 Dali::RefObject* objectPointer = NULL;
303 TestObjectDestroyedCallback test2(verified, objectPointer);
305 registry.ObjectCreatedSignal().Connect(&application, test);
306 registry.ObjectDestroyedSignal().Connect(&application, test2);
309 ImageActor actor = ImageActor::New(image);
310 DALI_TEST_CHECK( test.mSignalVerified );
313 objectPointer = actor.GetObjectPtr();
315 DALI_TEST_CHECK( test.mSignalVerified );
319 int UtcDaliObjectRegistrySignalLayerCreated(void)
321 TestApplication application;
322 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
324 bool verified = false;
325 TestLayerCallback test(verified);
327 Dali::RefObject* objectPointer = NULL;
328 TestObjectDestroyedCallback test2(verified, objectPointer);
330 registry.ObjectCreatedSignal().Connect(&application, test);
331 registry.ObjectDestroyedSignal().Connect(&application, test2);
334 Layer actor = Layer::New();
335 DALI_TEST_CHECK( test.mSignalVerified );
338 objectPointer = actor.GetObjectPtr();
340 DALI_TEST_CHECK( test.mSignalVerified );
344 int UtcDaliObjectRegistrySignalLightActorCreated(void)
346 TestApplication application;
347 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
349 bool verified = false;
350 TestLightActorCallback test(verified);
352 Dali::RefObject* objectPointer = NULL;
353 TestObjectDestroyedCallback test2(verified, objectPointer);
355 registry.ObjectCreatedSignal().Connect(&application, test);
356 registry.ObjectDestroyedSignal().Connect(&application, test2);
359 LightActor actor = LightActor::New();
360 DALI_TEST_CHECK( test.mSignalVerified );
363 objectPointer = actor.GetObjectPtr();
365 DALI_TEST_CHECK( test.mSignalVerified );
369 int UtcDaliObjectRegistrySignalMeshActorCreated(void)
371 TestApplication application;
372 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
374 bool verified = false;
375 TestMeshActorCallback test(verified);
377 Dali::RefObject* objectPointer = NULL;
378 TestObjectDestroyedCallback test2(verified, objectPointer);
380 registry.ObjectCreatedSignal().Connect(&application, test);
381 registry.ObjectDestroyedSignal().Connect(&application, test2);
383 Mesh mesh = ConstructMesh(60);
386 MeshActor actor = MeshActor::New(mesh);
388 DALI_TEST_CHECK(actor);
389 DALI_TEST_CHECK( test.mSignalVerified );
392 objectPointer = actor.GetObjectPtr();
394 DALI_TEST_CHECK( test.mSignalVerified );
398 int UtcDaliObjectRegistrySignalModelCreated(void)
400 TestApplication application;
401 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
403 bool verified = false;
404 TestModelCallback test(verified);
406 Dali::RefObject* objectPointer = NULL;
407 TestObjectDestroyedCallback test2(verified, objectPointer);
409 registry.ObjectCreatedSignal().Connect(&application, test);
410 registry.ObjectDestroyedSignal().Connect(&application, test2);
413 Model model = Model::New("blah");
414 DALI_TEST_CHECK( test.mSignalVerified );
417 objectPointer = model.GetObjectPtr();
419 DALI_TEST_CHECK( test.mSignalVerified );
423 int UtcDaliObjectRegistrySignalAnimationCreated(void)
425 TestApplication application;
426 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
428 bool verified = false;
429 TestAnimationCallback test(verified);
431 Dali::RefObject* objectPointer = NULL;
432 TestObjectDestroyedCallback test2(verified, objectPointer);
434 registry.ObjectCreatedSignal().Connect(&application, test);
435 registry.ObjectDestroyedSignal().Connect(&application, test2);
438 Animation animation = Animation::New(1.0f);
439 DALI_TEST_CHECK( test.mSignalVerified );
442 objectPointer = animation.GetObjectPtr();
444 DALI_TEST_CHECK( test.mSignalVerified );
448 int UtcDaliObjectRegistrySignalShaderEffectCreated(void)
450 TestApplication application;
451 ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
453 static const char* VertexSource =
456 " gl_Position = uProjection * uModelView * vec4(aPosition, 1.0);\n"
457 " vTexCoord = aTexCoord;\n"
460 static const char* FragmentSource =
463 " gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\n"
466 bool verified = false;
467 TestShaderEffectCallback test(verified);
469 Dali::RefObject* objectPointer = NULL;
470 TestObjectDestroyedCallback test2(verified, objectPointer);
472 registry.ObjectCreatedSignal().Connect(&application, test);
473 registry.ObjectDestroyedSignal().Connect(&application, test2);
476 ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
477 DALI_TEST_CHECK( test.mSignalVerified );
480 objectPointer = effect.GetObjectPtr();
482 DALI_TEST_CHECK( test.mSignalVerified );